From 2cc8acd0a07e214e218fa17a2e635cc3e5a97e5c Mon Sep 17 00:00:00 2001 From: Nick the Sick Date: Thu, 2 Apr 2026 18:59:01 +0200 Subject: [PATCH 1/6] refactor: remove dep on @tiptap/extension-link and linkify --- .github/dependabot.yml | 2 +- packages/core/package.json | 1 - .../managers/ExtensionManager/extensions.ts | 6 +- .../Link/helpers/autolink.ts | 204 +++++ .../Link/helpers/clickHandler.ts | 75 ++ .../Link/helpers/linkDetector.ts | 403 +++++++++ .../Link/helpers/pasteHandler.ts | 52 ++ .../Link/helpers/whitespace.ts | 13 + .../tiptap-extensions/Link/index.ts | 3 + .../tiptap-extensions/Link/link.test.ts | 855 ++++++++++++++++++ .../extensions/tiptap-extensions/Link/link.ts | 529 +++++++++++ pnpm-lock.yaml | 20 - 12 files changed, 2137 insertions(+), 26 deletions(-) create mode 100644 packages/core/src/extensions/tiptap-extensions/Link/helpers/autolink.ts create mode 100644 packages/core/src/extensions/tiptap-extensions/Link/helpers/clickHandler.ts create mode 100644 packages/core/src/extensions/tiptap-extensions/Link/helpers/linkDetector.ts create mode 100644 packages/core/src/extensions/tiptap-extensions/Link/helpers/pasteHandler.ts create mode 100644 packages/core/src/extensions/tiptap-extensions/Link/helpers/whitespace.ts create mode 100644 packages/core/src/extensions/tiptap-extensions/Link/index.ts create mode 100644 packages/core/src/extensions/tiptap-extensions/Link/link.test.ts create mode 100644 packages/core/src/extensions/tiptap-extensions/Link/link.ts diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 4f0f140cad..9d099a8a56 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -21,7 +21,7 @@ updates: - dependency-name: "@tiptap/extension-code" - dependency-name: "@tiptap/extension-horizontal-rule" - dependency-name: "@tiptap/extension-italic" - - dependency-name: "@tiptap/extension-link" + - dependency-name: "@tiptap/extension-paragraph" - dependency-name: "@tiptap/extension-strike" - dependency-name: "@tiptap/extension-text" diff --git a/packages/core/package.json b/packages/core/package.json index da82c80fdf..30dfcef0de 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -98,7 +98,6 @@ "@tiptap/extension-code": "^3.13.0", "@tiptap/extension-horizontal-rule": "^3.13.0", "@tiptap/extension-italic": "^3.13.0", - "@tiptap/extension-link": "^3.22.1", "@tiptap/extension-paragraph": "^3.13.0", "@tiptap/extension-strike": "^3.13.0", "@tiptap/extension-text": "^3.13.0", diff --git a/packages/core/src/editor/managers/ExtensionManager/extensions.ts b/packages/core/src/editor/managers/ExtensionManager/extensions.ts index 3e87553d31..a729045264 100644 --- a/packages/core/src/editor/managers/ExtensionManager/extensions.ts +++ b/packages/core/src/editor/managers/ExtensionManager/extensions.ts @@ -5,7 +5,7 @@ import { Extension as TiptapExtension, } from "@tiptap/core"; import { Gapcursor } from "@tiptap/extensions/gap-cursor"; -import { Link } from "@tiptap/extension-link"; +import { Link } from "../../../extensions/tiptap-extensions/Link/link.js"; import { Text } from "@tiptap/extension-text"; import { createDropFileExtension } from "../../../api/clipboard/fromClipboard/fileDropExtension.js"; import { createPasteFromClipboardExtension } from "../../../api/clipboard/fromClipboard/pasteExtension.js"; @@ -49,7 +49,6 @@ import { import { ExtensionFactoryInstance } from "../../BlockNoteExtension.js"; import { CollaborationExtension } from "../../../extensions/Collaboration/Collaboration.js"; -// TODO remove linkify completely by vendoring the link extension & dropping linkifyjs as a dependency let LINKIFY_INITIALIZED = false; /** @@ -83,8 +82,7 @@ export function getDefaultTiptapExtensions( inclusive: false, }) .extend({ - // Remove the title attribute added in newer versions of @tiptap/extension-link - // to avoid unnecessary null attributes in serialized output + // Remove the title attribute to avoid unnecessary null attributes in serialized output addAttributes() { const attrs = this.parent?.() || {}; delete (attrs as Record).title; diff --git a/packages/core/src/extensions/tiptap-extensions/Link/helpers/autolink.ts b/packages/core/src/extensions/tiptap-extensions/Link/helpers/autolink.ts new file mode 100644 index 0000000000..5e898c6309 --- /dev/null +++ b/packages/core/src/extensions/tiptap-extensions/Link/helpers/autolink.ts @@ -0,0 +1,204 @@ +import type { NodeWithPos } from "@tiptap/core"; +import { + combineTransactionSteps, + findChildrenInRange, + getChangedRanges, + getMarksBetween, +} from "@tiptap/core"; +import type { MarkType } from "@tiptap/pm/model"; +import { Plugin, PluginKey } from "@tiptap/pm/state"; +import type { LinkMatch } from "./linkDetector.js"; +import { tokenizeLink } from "./linkDetector.js"; + +import { + UNICODE_WHITESPACE_REGEX, + UNICODE_WHITESPACE_REGEX_END, +} from "./whitespace.js"; + +/** + * Check if the provided tokens form a valid link structure, which can either be a single link token + * or a link token surrounded by parentheses or square brackets. + * + * This ensures that only complete and valid text is hyperlinked, preventing cases where a valid + * top-level domain (TLD) is immediately followed by an invalid character, like a number. For + * example, with the `find` method from Linkify, entering `example.com1` would result in + * `example.com` being linked and the trailing `1` left as plain text. By using the `tokenize` + * method, we can perform more comprehensive validation on the input text. + */ +function isValidLinkStructure(tokens: LinkMatch[]) { + if (tokens.length === 1) { + return tokens[0].isLink; + } + + if (tokens.length === 3 && tokens[1].isLink) { + return ["()", "[]"].includes(tokens[0].value + tokens[2].value); + } + + return false; +} + +type AutolinkOptions = { + type: MarkType; + defaultProtocol: string; + validate: (url: string) => boolean; + shouldAutoLink: (url: string) => boolean; + protocols: Array<{ scheme: string; optionalSlashes?: boolean } | string>; +}; + +/** + * This plugin allows you to automatically add links to your editor. + * @param options The plugin options + * @returns The plugin instance + */ +export function autolink(options: AutolinkOptions): Plugin { + return new Plugin({ + key: new PluginKey("autolink"), + appendTransaction: (transactions, oldState, newState) => { + /** + * Does the transaction change the document? + */ + const docChanges = + transactions.some((transaction) => transaction.docChanged) && + !oldState.doc.eq(newState.doc); + + /** + * Prevent autolink if the transaction is not a document change or if the transaction has the meta `preventAutolink`. + */ + const preventAutolink = transactions.some((transaction) => + transaction.getMeta("preventAutolink") + ); + + /** + * Prevent autolink if the transaction is not a document change + * or if the transaction has the meta `preventAutolink`. + */ + if (!docChanges || preventAutolink) { + return; + } + + const { tr } = newState; + const transform = combineTransactionSteps(oldState.doc, [ + ...transactions, + ]); + const changes = getChangedRanges(transform); + + changes.forEach(({ newRange }) => { + // Now let's see if we can add new links. + const nodesInChangedRanges = findChildrenInRange( + newState.doc, + newRange, + (node) => node.isTextblock + ); + + let textBlock: NodeWithPos | undefined; + let textBeforeWhitespace: string | undefined; + + if (nodesInChangedRanges.length > 1) { + // Grab the first node within the changed ranges (ex. the first of two paragraphs when hitting enter). + textBlock = nodesInChangedRanges[0]; + textBeforeWhitespace = newState.doc.textBetween( + textBlock.pos, + textBlock.pos + textBlock.node.nodeSize, + undefined, + " " + ); + } else if (nodesInChangedRanges.length) { + const endText = newState.doc.textBetween( + newRange.from, + newRange.to, + " ", + " " + ); + if (!UNICODE_WHITESPACE_REGEX_END.test(endText)) { + return; + } + textBlock = nodesInChangedRanges[0]; + textBeforeWhitespace = newState.doc.textBetween( + textBlock.pos, + newRange.to, + undefined, + " " + ); + } + + if (textBlock && textBeforeWhitespace) { + const wordsBeforeWhitespace = textBeforeWhitespace + .split(UNICODE_WHITESPACE_REGEX) + .filter(Boolean); + + if (wordsBeforeWhitespace.length <= 0) { + return; + } + + const lastWordBeforeSpace = + wordsBeforeWhitespace[wordsBeforeWhitespace.length - 1]; + const lastWordAndBlockOffset = + textBlock.pos + + textBeforeWhitespace.lastIndexOf(lastWordBeforeSpace); + + if (!lastWordBeforeSpace) { + return; + } + + const linksBeforeSpace = tokenizeLink( + lastWordBeforeSpace, + options.defaultProtocol + ); + + if (!isValidLinkStructure(linksBeforeSpace)) { + return; + } + + linksBeforeSpace + .filter((link) => link.isLink) + // Calculate link position. + .map((link) => ({ + ...link, + from: lastWordAndBlockOffset + link.start + 1, + to: lastWordAndBlockOffset + link.end + 1, + })) + // ignore link inside code mark + .filter((link) => { + if (!newState.schema.marks.code) { + return true; + } + + return !newState.doc.rangeHasMark( + link.from, + link.to, + newState.schema.marks.code + ); + }) + // validate link + .filter((link) => options.validate(link.value)) + // check whether should autolink + .filter((link) => options.shouldAutoLink(link.value)) + // Add link mark. + .forEach((link) => { + if ( + getMarksBetween(link.from, link.to, newState.doc).some( + (item) => item.mark.type === options.type + ) + ) { + return; + } + + tr.addMark( + link.from, + link.to, + options.type.create({ + href: link.href, + }) + ); + }); + } + }); + + if (!tr.steps.length) { + return; + } + + return tr; + }, + }); +} diff --git a/packages/core/src/extensions/tiptap-extensions/Link/helpers/clickHandler.ts b/packages/core/src/extensions/tiptap-extensions/Link/helpers/clickHandler.ts new file mode 100644 index 0000000000..9fa248c65a --- /dev/null +++ b/packages/core/src/extensions/tiptap-extensions/Link/helpers/clickHandler.ts @@ -0,0 +1,75 @@ +import type { Editor } from "@tiptap/core"; +import { getAttributes } from "@tiptap/core"; +import type { MarkType } from "@tiptap/pm/model"; +import { Plugin, PluginKey } from "@tiptap/pm/state"; + +type ClickHandlerOptions = { + type: MarkType; + editor: Editor; + openOnClick?: boolean; + enableClickSelection?: boolean; +}; + +export function clickHandler(options: ClickHandlerOptions): Plugin { + return new Plugin({ + key: new PluginKey("handleClickLink"), + props: { + handleClick: (view, _pos, event) => { + if (event.button !== 0) { + return false; + } + + if (!view.editable) { + return false; + } + + let link: HTMLAnchorElement | null = null; + + if (event.target instanceof HTMLAnchorElement) { + link = event.target; + } else { + const target = event.target as HTMLElement | null; + if (!target) { + return false; + } + + const root = options.editor.view.dom; + + // Intentionally limit the lookup to the editor root. + // Using tag names like DIV as boundaries breaks with custom NodeViews, + link = target.closest("a"); + + if (link && !root.contains(link)) { + link = null; + } + } + + if (!link) { + return false; + } + + let handled = false; + + if (options.enableClickSelection) { + const commandResult = options.editor.commands.extendMarkRange( + options.type.name + ); + handled = commandResult; + } + + if (options.openOnClick) { + const attrs = getAttributes(view.state, options.type.name); + const href = link.href ?? attrs.href; + const target = link.target ?? attrs.target; + + if (href) { + window.open(href, target); + handled = true; + } + } + + return handled; + }, + }, + }); +} diff --git a/packages/core/src/extensions/tiptap-extensions/Link/helpers/linkDetector.ts b/packages/core/src/extensions/tiptap-extensions/Link/helpers/linkDetector.ts new file mode 100644 index 0000000000..403b5cce8e --- /dev/null +++ b/packages/core/src/extensions/tiptap-extensions/Link/helpers/linkDetector.ts @@ -0,0 +1,403 @@ +/** + * Lightweight URL detection module replacing linkifyjs. + * + * Provides two functions: + * - findLinks(): find all URLs/emails in arbitrary text (replaces linkifyjs find()) + * - tokenizeLink(): tokenize a single word for autolink validation (replaces linkifyjs tokenize()) + */ + +export interface LinkMatch { + type: string; + value: string; + isLink: boolean; + href: string; + start: number; + end: number; +} + +// --------------------------------------------------------------------------- +// TLD set – used only for schemeless URL validation. +// Protocol URLs (http://, https://, etc.) skip TLD checks. +// --------------------------------------------------------------------------- + +// prettier-ignore +const CC_TLDS = + "ac ad ae af ag ai al am ao aq ar as at au aw ax az ba bb bd be bf bg bh bi bj bm bn bo br bs bt bv bw by bz ca cc cd cf cg ch ci ck cl cm cn co cr cu cv cw cx cy cz de dj dk dm do dz ec ee eg er es et eu fi fj fk fm fo fr ga gb gd ge gf gg gh gi gl gm gn gp gq gr gs gt gu gw gy hk hm hn hr ht hu id ie il im in io iq ir is it je jm jo jp ke kg kh ki km kn kp kr kw ky kz la lb lc li lk lr ls lt lu lv ly ma mc md me mg mh mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nc ne nf ng ni nl no np nr nu nz om pa pe pf pg ph pk pl pm pn pr ps pt pw py qa re ro rs ru rw sa sb sc sd se sg sh si sj sk sl sm sn so sr ss st su sv sx sy sz tc td tf tg th tj tk tl tm tn to tr tt tv tw tz ua ug uk us uy uz va vc ve vg vi vn vu wf ws ye yt za zm zw"; + +// prettier-ignore +const G_TLDS = + "com org net edu gov mil int aero asia biz cat coop info jobs mobi museum name post pro tel travel xxx academy accountant accountants actor adult agency airforce apartments app army associates attorney auction auto band bank bar bargains beer best bet bid bike bingo bio black blog blue boutique broker build builders business buzz cab cafe cam camera camp capital car cards care career careers casa cash casino catering center ceo chat cheap church city claims cleaning click clinic clothing cloud club coach codes coffee college community company computer condos construction consulting contractors cooking cool country coupons courses credit creditcard cruise dad dance date dating day dealer deals degree delivery democrat dental dentist design dev diamonds diet digital direct directory discount doctor dog domains download earth eat education email energy engineer engineering enterprises equipment estate events exchange expert exposed express fail faith family fan fans farm fashion film final finance financial fish fishing fit fitness flights florist flowers fly foo football forex forsale forum foundation fun fund furniture futbol fyi gallery game games garden gift gifts gives glass global gmbh gold golf graphics gratis green gripe group guide guru hair haus health healthcare help hiphop hockey holdings holiday homes horse hospital host hosting hot house how inc industries ink institute insurance insure international investments irish jewelry jetzt jot joy kim kitchen land law lawyer lease legal life lighting limited limo link live llc loan loans lol love ltd luxury maison management map market marketing mba media memorial men menu miami moda mom money monster mortgage movie music navy network new news ninja now observer one online ooo organic page partners parts party pay pet pharmacy photo photography photos pink pizza place plumbing plus poker porn press productions promo properties property pub quest racing radio realestate realty recipes red rehab rent rentals repair report republican rest restaurant review reviews rich rip rocks rodeo run sale salon sarl save school science search security select services sex sexy shoes shop shopping show singles site ski skin social software solar solutions space sport spot srl storage store stream studio style sucks supplies supply support surf surgery systems tax taxi team tech technology tennis theater theatre tips tires today tools top tours town toys trade trading training tube university uno vacations vegas ventures vet video villas vin vip vision vodka vote voyage wang watch webcam website wedding whoswho wiki win wine work works world wtf xyz yoga you zone"; + +const TLD_SET = new Set([...CC_TLDS.split(" "), ...G_TLDS.split(" ")]); + +// Special hostnames recognized without a TLD +const SPECIAL_HOSTS = new Set(["localhost"]); + +// --------------------------------------------------------------------------- +// Regex building blocks +// --------------------------------------------------------------------------- + +// URL-safe characters in path/query/fragment (everything except whitespace) +const URL_BODY = "[^\\s]"; +// Characters that are unlikely to be part of a URL when they appear at the end +const TRAILING_PUNCT = /[.,;:!?"']+$/; + +// Protocol URLs: http:// https:// ftp:// ftps:// +const PROTOCOL_RE = + /(?:https?|ftp|ftps):\/\/[^\s]+/g; + +// Mailto URLs: mailto:... +const MAILTO_RE = /mailto:[^\s]+/g; + +// Bare email addresses: user@domain.tld +const EMAIL_RE = + /[a-zA-Z0-9._%+\-]+@(?:[a-zA-Z0-9](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}/g; + +// Schemeless URLs: domain.tld with optional port and path +// Hostname: one or more labels separated by dots, TLD is alpha-only 2+ chars +const SCHEMELESS_RE = + /(?:[a-zA-Z0-9](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}(?::\d{1,5})?(?:\/[^\s]*)?/g; + +// --------------------------------------------------------------------------- +// Post-processing helpers +// --------------------------------------------------------------------------- + +/** + * Trim trailing punctuation and unbalanced closing brackets from a URL match. + */ +function trimTrailing(value: string): string { + let v = value; + + // Iteratively trim trailing punctuation and unbalanced brackets + let changed = true; + while (changed) { + changed = false; + + // Trim trailing punctuation chars + const before = v; + v = v.replace(TRAILING_PUNCT, ""); + if (v !== before) changed = true; + + // Trim unbalanced closing brackets from the end + for (const [open, close] of [ + ["(", ")"], + ["[", "]"], + ] as const) { + while (v.endsWith(close)) { + const openCount = countChar(v, open); + const closeCount = countChar(v, close); + if (closeCount > openCount) { + v = v.slice(0, -1); + changed = true; + } else { + break; + } + } + } + } + + return v; +} + +function countChar(str: string, ch: string): number { + let count = 0; + for (let i = 0; i < str.length; i++) { + if (str[i] === ch) count++; + } + return count; +} + +/** + * Extract the TLD from a hostname string. + * Returns the last dot-separated segment. + */ +function extractTld(hostname: string): string { + const parts = hostname.split("."); + return parts[parts.length - 1].toLowerCase(); +} + +/** + * Extract hostname from a URL value (no protocol). + */ +function extractHostname(value: string): string { + // Remove protocol if present + let s = value; + const protoIdx = s.indexOf("://"); + if (protoIdx !== -1) { + s = s.slice(protoIdx + 3); + } else if (s.startsWith("mailto:")) { + s = s.slice(7); + } + + // Remove path, query, fragment + s = s.split(/[/?#]/)[0]; + // Remove port + s = s.split(":")[0]; + // Remove userinfo + if (s.includes("@")) { + s = s.split("@").pop()!; + } + + return s; +} + +function isValidTld(hostname: string): boolean { + const tld = extractTld(hostname); + return TLD_SET.has(tld); +} + +/** + * Build the href for a URL value, prepending the default protocol if needed. + */ +function buildHref( + value: string, + type: string, + defaultProtocol: string +): string { + if (type === "email") { + return "mailto:" + value; + } + if (/^[a-zA-Z][a-zA-Z0-9+.\-]*:\/\//.test(value) || /^mailto:/i.test(value)) { + // Already has a protocol + return value; + } + return defaultProtocol + "://" + value; +} + +// --------------------------------------------------------------------------- +// findLinks() +// --------------------------------------------------------------------------- + +export interface FindOptions { + defaultProtocol?: string; +} + +interface RawMatch { + type: string; + value: string; + start: number; + end: number; +} + +/** + * Find all URLs and email addresses in the given text. + * Drop-in replacement for linkifyjs find(). + */ +export function findLinks( + text: string, + options?: FindOptions +): LinkMatch[] { + if (!text) return []; + + const defaultProtocol = options?.defaultProtocol || "http"; + const rawMatches: RawMatch[] = []; + + // 1. Protocol URLs + for (const m of text.matchAll(PROTOCOL_RE)) { + rawMatches.push({ + type: "url", + value: m[0], + start: m.index!, + end: m.index! + m[0].length, + }); + } + + // 2. Mailto URLs + for (const m of text.matchAll(MAILTO_RE)) { + rawMatches.push({ + type: "url", + value: m[0], + start: m.index!, + end: m.index! + m[0].length, + }); + } + + // 3. Bare email addresses + for (const m of text.matchAll(EMAIL_RE)) { + rawMatches.push({ + type: "email", + value: m[0], + start: m.index!, + end: m.index! + m[0].length, + }); + } + + // 4. Schemeless URLs + for (const m of text.matchAll(SCHEMELESS_RE)) { + rawMatches.push({ + type: "url", + value: m[0], + start: m.index!, + end: m.index! + m[0].length, + }); + } + + // Sort by start position + rawMatches.sort((a, b) => a.start - b.start || b.end - a.end); + + // Deduplicate overlapping matches (prefer earlier & longer) + const deduped: RawMatch[] = []; + let lastEnd = -1; + for (const match of rawMatches) { + if (match.start >= lastEnd) { + deduped.push(match); + lastEnd = match.end; + } + } + + // Post-process each match + const results: LinkMatch[] = []; + for (const raw of deduped) { + let value = trimTrailing(raw.value); + if (!value) continue; + + const start = raw.start; + const end = start + value.length; + + // For schemeless URLs, validate TLD + if (raw.type === "url" && !/^[a-zA-Z][a-zA-Z0-9+.\-]*:/.test(value)) { + const hostname = extractHostname(value); + if (!isValidTld(hostname)) continue; + } + + // For emails, validate TLD + if (raw.type === "email") { + const hostname = value.split("@")[1]; + if (!isValidTld(hostname)) continue; + } + + const href = buildHref(value, raw.type, defaultProtocol); + + results.push({ + type: raw.type, + value, + isLink: true, + href, + start, + end, + }); + } + + return results; +} + +// --------------------------------------------------------------------------- +// tokenizeLink() +// --------------------------------------------------------------------------- + +/** + * Tokenize a single word for autolink validation. + * Drop-in replacement for: tokenize(word).map(t => t.toObject(defaultProtocol)) + * + * Returns an array of LinkMatch tokens. The autolink code checks: + * - 1 token with isLink=true → valid single link + * - 3 tokens with middle isLink=true and outer brackets → valid wrapped link + */ +export function tokenizeLink( + text: string, + defaultProtocol = "http" +): LinkMatch[] { + if (!text) { + return [nonLinkToken(text, 0, 0)]; + } + + // Check for bracket wrapping: (url), [url], {url} + const brackets: Array<[string, string]> = [ + ["(", ")"], + ["[", "]"], + ["{", "}"], + ]; + for (const [open, close] of brackets) { + if (text.startsWith(open) && text.endsWith(close) && text.length > 2) { + const inner = text.slice(1, -1); + if (isSingleUrl(inner)) { + return [ + nonLinkToken(open, 0, 1), + linkToken(inner, 1, 1 + inner.length, defaultProtocol), + nonLinkToken(close, 1 + inner.length, text.length), + ]; + } + } + } + + // Check for trailing punctuation (e.g., "example.com." → link + dot) + if (text.endsWith(".") && text.length > 1) { + const withoutDot = text.slice(0, -1); + if (isSingleUrl(withoutDot)) { + return [ + linkToken(withoutDot, 0, withoutDot.length, defaultProtocol), + nonLinkToken(".", withoutDot.length, text.length), + ]; + } + } + + // Check if the whole text is a single URL + if (isSingleUrl(text)) { + return [linkToken(text, 0, text.length, defaultProtocol)]; + } + + // Not a link + return [nonLinkToken(text, 0, text.length)]; +} + +/** + * Check if a string is a single complete URL (no extra chars). + */ +function isSingleUrl(text: string): boolean { + // Protocol URLs + if (/^(?:https?|ftp|ftps):\/\/[^\s]+$/.test(text)) { + return true; + } + + // Mailto URLs + if (/^mailto:[^\s]+$/.test(text)) { + return true; + } + + // Special hosts (e.g., localhost) + if (SPECIAL_HOSTS.has(text.toLowerCase())) { + return true; + } + + // Schemeless URLs: hostname.tld with optional port and path + const schemelessFull = + /^(?:[a-zA-Z0-9](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?\.)+([a-zA-Z]{2,})(?::\d{1,5})?(?:\/[^\s]*)?$/; + const match = text.match(schemelessFull); + if (match) { + const tld = match[1].toLowerCase(); + // TLD must be a-z only (no numbers) and recognized + if (TLD_SET.has(tld)) { + return true; + } + } + + return false; +} + +function linkToken( + value: string, + start: number, + end: number, + defaultProtocol: string +): LinkMatch { + const type = value.includes("@") && !value.includes("://") ? "email" : "url"; + return { + type, + value, + isLink: true, + href: buildHref(value, type, defaultProtocol), + start, + end, + }; +} + +function nonLinkToken(value: string, start: number, end: number): LinkMatch { + return { + type: "text", + value, + isLink: false, + href: value, + start, + end, + }; +} diff --git a/packages/core/src/extensions/tiptap-extensions/Link/helpers/pasteHandler.ts b/packages/core/src/extensions/tiptap-extensions/Link/helpers/pasteHandler.ts new file mode 100644 index 0000000000..2f95bb2d49 --- /dev/null +++ b/packages/core/src/extensions/tiptap-extensions/Link/helpers/pasteHandler.ts @@ -0,0 +1,52 @@ +import type { Editor } from "@tiptap/core"; +import type { MarkType } from "@tiptap/pm/model"; +import { Plugin, PluginKey } from "@tiptap/pm/state"; +import type { LinkOptions } from "../link.js"; +import { findLinks } from "./linkDetector.js"; + +type PasteHandlerOptions = { + editor: Editor; + defaultProtocol: string; + type: MarkType; + shouldAutoLink?: LinkOptions["shouldAutoLink"]; +}; + +export function pasteHandler(options: PasteHandlerOptions): Plugin { + return new Plugin({ + key: new PluginKey("handlePasteLink"), + props: { + handlePaste: (view, _event, slice) => { + const { shouldAutoLink } = options; + const { state } = view; + const { selection } = state; + const { empty } = selection; + + if (empty) { + return false; + } + + let textContent = ""; + + slice.content.forEach((node) => { + textContent += node.textContent; + }); + + const link = findLinks(textContent, { + defaultProtocol: options.defaultProtocol, + }).find((item) => item.isLink && item.value === textContent); + + if ( + !textContent || + !link || + (shouldAutoLink !== undefined && !shouldAutoLink(link.value)) + ) { + return false; + } + + return options.editor.commands.setMark(options.type, { + href: link.href, + }); + }, + }, + }); +} diff --git a/packages/core/src/extensions/tiptap-extensions/Link/helpers/whitespace.ts b/packages/core/src/extensions/tiptap-extensions/Link/helpers/whitespace.ts new file mode 100644 index 0000000000..70d6612ae1 --- /dev/null +++ b/packages/core/src/extensions/tiptap-extensions/Link/helpers/whitespace.ts @@ -0,0 +1,13 @@ +// From DOMPurify +// https://github.com/cure53/DOMPurify/blob/main/src/regexp.ts +export const UNICODE_WHITESPACE_PATTERN = + "[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]"; + +export const UNICODE_WHITESPACE_REGEX = new RegExp(UNICODE_WHITESPACE_PATTERN); +export const UNICODE_WHITESPACE_REGEX_END = new RegExp( + `${UNICODE_WHITESPACE_PATTERN}$` +); +export const UNICODE_WHITESPACE_REGEX_GLOBAL = new RegExp( + UNICODE_WHITESPACE_PATTERN, + "g" +); diff --git a/packages/core/src/extensions/tiptap-extensions/Link/index.ts b/packages/core/src/extensions/tiptap-extensions/Link/index.ts new file mode 100644 index 0000000000..c9bbe60114 --- /dev/null +++ b/packages/core/src/extensions/tiptap-extensions/Link/index.ts @@ -0,0 +1,3 @@ +export { Link } from "./link.js"; +export type { LinkOptions, LinkProtocolOptions } from "./link.js"; +export { isAllowedUri, pasteRegex } from "./link.js"; diff --git a/packages/core/src/extensions/tiptap-extensions/Link/link.test.ts b/packages/core/src/extensions/tiptap-extensions/Link/link.test.ts new file mode 100644 index 0000000000..221f5c74e1 --- /dev/null +++ b/packages/core/src/extensions/tiptap-extensions/Link/link.test.ts @@ -0,0 +1,855 @@ +import { afterEach, describe, expect, it } from "vitest"; + +import { BlockNoteEditor } from "../../../editor/BlockNoteEditor.js"; +import { findLinks, tokenizeLink } from "./helpers/linkDetector.js"; + +/** + * @vitest-environment jsdom + */ + +// ============================================================================ +// Helpers +// ============================================================================ + +/** Wrapper matching the old tokenize().map(t => t.toObject(defaultProtocol)) pattern */ +function tokenizeToObjects(text: string, defaultProtocol = "http") { + return tokenizeLink(text, defaultProtocol); +} + +/** + * Mirrors the isValidLinkStructure function from autolink.ts. + * A valid structure is either: + * - A single link token + * - A link token wrapped in () or [] + */ +function isValidLinkStructure( + tokens: Array<{ isLink: boolean; value: string }> +) { + if (tokens.length === 1) { + return tokens[0].isLink; + } + if (tokens.length === 3 && tokens[1].isLink) { + return ["()", "[]"].includes(tokens[0].value + tokens[2].value); + } + return false; +} + +function createEditor() { + const editor = BlockNoteEditor.create(); + const div = document.createElement("div"); + editor.mount(div); + return editor; +} + +/** + * Insert text at the end of a block, followed by a space to trigger autolink. + * Returns the link marks found in that block afterward. + */ +function typeTextThenSpace( + editor: BlockNoteEditor, + blockId: string, + text: string +) { + editor.setTextCursorPosition(blockId, "end"); + const view = editor._tiptapEditor.view; + const { from } = view.state.selection; + + // Insert the text + view.dispatch(view.state.tr.insertText(text, from)); + + // Now insert a space to trigger autolink + const afterInsert = view.state.selection.from; + view.dispatch(view.state.tr.insertText(" ", afterInsert)); + + return getLinksInDocument(editor); +} + +/** + * Walk the ProseMirror doc and collect all link marks with their text and href. + */ +function getLinksInDocument(editor: BlockNoteEditor) { + const links: Array<{ text: string; href: string; from: number; to: number }> = + []; + const doc = editor._tiptapEditor.state.doc; + const linkType = editor._tiptapEditor.schema.marks.link; + + doc.descendants((node, pos) => { + if (node.isText && node.marks.length > 0) { + const linkMark = node.marks.find((m) => m.type === linkType); + if (linkMark) { + links.push({ + text: node.text || "", + href: linkMark.attrs.href, + from: pos, + to: pos + node.nodeSize, + }); + } + } + }); + return links; +} + +// ============================================================================ +// Level 1: Unit tests for findLinks() and tokenizeLink() +// ============================================================================ + +describe("findLinks() baseline behavior", () => { + describe("basic URL detection", () => { + it("detects https URLs", () => { + const results = findLinks("https://example.com"); + expect(results).toHaveLength(1); + expect(results[0]).toMatchObject({ + isLink: true, + value: "https://example.com", + href: "https://example.com", + start: 0, + end: 19, + }); + }); + + it("detects http URLs", () => { + const results = findLinks("http://example.com"); + expect(results).toHaveLength(1); + expect(results[0]).toMatchObject({ + isLink: true, + value: "http://example.com", + href: "http://example.com", + }); + }); + + it("detects schemeless URLs and prepends default protocol", () => { + const results = findLinks("example.com"); + expect(results).toHaveLength(1); + expect(results[0]).toMatchObject({ + isLink: true, + value: "example.com", + href: "http://example.com", + start: 0, + end: 11, + }); + }); + + it("respects defaultProtocol option", () => { + const results = findLinks("example.com", { defaultProtocol: "https" }); + expect(results).toHaveLength(1); + expect(results[0].href).toBe("https://example.com"); + }); + + it("detects www URLs", () => { + const results = findLinks("www.example.com"); + expect(results).toHaveLength(1); + expect(results[0]).toMatchObject({ + isLink: true, + value: "www.example.com", + href: "http://www.example.com", + }); + }); + }); + + describe("multiple URLs in text", () => { + it("finds multiple URLs with correct positions", () => { + const results = findLinks("Visit https://a.com and https://b.com"); + expect(results).toHaveLength(2); + expect(results[0]).toMatchObject({ + value: "https://a.com", + start: 6, + end: 19, + }); + expect(results[1]).toMatchObject({ + value: "https://b.com", + start: 24, + end: 37, + }); + }); + + it("finds multiple schemeless URLs", () => { + const results = findLinks("Check example.com or test.org"); + expect(results).toHaveLength(2); + expect(results[0].value).toBe("example.com"); + expect(results[1].value).toBe("test.org"); + }); + }); + + describe("URLs with paths, queries, and fragments", () => { + it("includes full path", () => { + const results = findLinks("https://example.com/path/to/page"); + expect(results).toHaveLength(1); + expect(results[0].value).toBe("https://example.com/path/to/page"); + }); + + it("includes query string", () => { + const results = findLinks("https://example.com?q=hello&b=world"); + expect(results).toHaveLength(1); + expect(results[0].value).toBe("https://example.com?q=hello&b=world"); + }); + + it("includes fragment", () => { + const results = findLinks("https://example.com#section"); + expect(results).toHaveLength(1); + expect(results[0].value).toBe("https://example.com#section"); + }); + + it("includes path + query + fragment", () => { + const results = findLinks("https://example.com/path?q=1#frag"); + expect(results).toHaveLength(1); + expect(results[0].value).toBe("https://example.com/path?q=1#frag"); + }); + + it("includes encoded characters", () => { + const results = findLinks("https://example.com/path%20name"); + expect(results).toHaveLength(1); + expect(results[0].value).toBe("https://example.com/path%20name"); + }); + + it("includes trailing slash", () => { + const results = findLinks("https://example.com/"); + expect(results).toHaveLength(1); + expect(results[0].value).toBe("https://example.com/"); + }); + }); + + describe("URLs with ports", () => { + it("detects URL with port", () => { + const results = findLinks("https://example.com:8080"); + expect(results).toHaveLength(1); + expect(results[0].value).toBe("https://example.com:8080"); + }); + + it("detects schemeless URL with port and path", () => { + const results = findLinks("example.com:3000/path"); + expect(results).toHaveLength(1); + expect(results[0]).toMatchObject({ + value: "example.com:3000/path", + href: "http://example.com:3000/path", + }); + }); + }); + + describe("trailing punctuation handling", () => { + it("excludes trailing period", () => { + const results = findLinks("Visit https://example.com."); + expect(results).toHaveLength(1); + expect(results[0].value).toBe("https://example.com"); + }); + + it("excludes trailing comma", () => { + const results = findLinks("See https://example.com, and more"); + expect(results).toHaveLength(1); + expect(results[0].value).toBe("https://example.com"); + }); + + it("excludes surrounding parentheses", () => { + const results = findLinks("(https://example.com)"); + expect(results).toHaveLength(1); + expect(results[0]).toMatchObject({ + value: "https://example.com", + start: 1, + end: 20, + }); + }); + + it("keeps balanced parentheses in path (Wikipedia-style)", () => { + const results = findLinks( + "https://en.wikipedia.org/wiki/Foo_(bar)" + ); + expect(results).toHaveLength(1); + expect(results[0].value).toBe( + "https://en.wikipedia.org/wiki/Foo_(bar)" + ); + }); + }); + + describe("non-links", () => { + it("returns empty for plain text", () => { + expect(findLinks("not a link")).toHaveLength(0); + }); + + it("returns empty for single word", () => { + expect(findLinks("hello")).toHaveLength(0); + }); + + it("returns empty for empty string", () => { + expect(findLinks("")).toHaveLength(0); + }); + + it("returns empty for just a protocol", () => { + expect(findLinks("https://")).toHaveLength(0); + }); + + it("does not detect bare IP addresses", () => { + expect(findLinks("192.168.1.1")).toHaveLength(0); + }); + }); + + describe("domain variations", () => { + it("detects hyphenated domains", () => { + const results = findLinks("my-site.example.com"); + expect(results).toHaveLength(1); + expect(results[0].value).toBe("my-site.example.com"); + }); + + it("detects subdomains", () => { + const results = findLinks("sub.domain.example.com"); + expect(results).toHaveLength(1); + expect(results[0].value).toBe("sub.domain.example.com"); + }); + }); + + describe("URL position in text", () => { + it("detects URL at end of text", () => { + const results = findLinks("go to example.com"); + expect(results).toHaveLength(1); + expect(results[0]).toMatchObject({ + value: "example.com", + start: 6, + end: 17, + }); + }); + + it("detects URL at start of text", () => { + const results = findLinks("example.com is great"); + expect(results).toHaveLength(1); + expect(results[0]).toMatchObject({ + value: "example.com", + start: 0, + end: 11, + }); + }); + }); + + describe("protocol variations", () => { + it("detects ftp URLs", () => { + const results = findLinks("ftp://files.example.com"); + expect(results).toHaveLength(1); + expect(results[0].value).toBe("ftp://files.example.com"); + }); + + it("detects mailto URLs", () => { + const results = findLinks("mailto:user@example.com"); + expect(results).toHaveLength(1); + expect(results[0]).toMatchObject({ + value: "mailto:user@example.com", + href: "mailto:user@example.com", + }); + }); + + it("detects bare email addresses as links", () => { + const results = findLinks("user@example.com"); + expect(results).toHaveLength(1); + expect(results[0]).toMatchObject({ + isLink: true, + value: "user@example.com", + href: "mailto:user@example.com", + }); + }); + }); + + describe("boundary handling", () => { + it("stops at whitespace", () => { + const results = findLinks("https://example.com/path with spaces"); + expect(results).toHaveLength(1); + expect(results[0].value).toBe("https://example.com/path"); + }); + }); +}); + +describe("tokenizeLink() baseline behavior", () => { + describe("single valid links", () => { + it("tokenizes schemeless URL as single link token", () => { + const tokens = tokenizeToObjects("example.com"); + expect(tokens).toHaveLength(1); + expect(tokens[0]).toMatchObject({ + isLink: true, + value: "example.com", + href: "http://example.com", + start: 0, + end: 11, + }); + }); + + it("tokenizes https URL as single link token", () => { + const tokens = tokenizeToObjects("https://example.com"); + expect(tokens).toHaveLength(1); + expect(tokens[0]).toMatchObject({ + isLink: true, + value: "https://example.com", + href: "https://example.com", + }); + }); + + it("tokenizes URL with path as single link token", () => { + const tokens = tokenizeToObjects("example.com/path"); + expect(tokens).toHaveLength(1); + expect(tokens[0]).toMatchObject({ + isLink: true, + value: "example.com/path", + href: "http://example.com/path", + }); + }); + + it("tokenizes www URL as single link token", () => { + const tokens = tokenizeToObjects("www.example.com"); + expect(tokens).toHaveLength(1); + expect(tokens[0]).toMatchObject({ + isLink: true, + value: "www.example.com", + href: "http://www.example.com", + }); + }); + + it("tokenizes URL with https and path as single link token", () => { + const tokens = tokenizeToObjects("https://example.com/path"); + expect(tokens).toHaveLength(1); + expect(tokens[0]).toMatchObject({ + isLink: true, + value: "https://example.com/path", + href: "https://example.com/path", + }); + }); + + it("tokenizes short TLD (2 chars) as link", () => { + const tokens = tokenizeToObjects("test.co"); + expect(tokens).toHaveLength(1); + expect(tokens[0].isLink).toBe(true); + }); + }); + + describe("bracket-wrapped links", () => { + it("tokenizes (url) as 3 tokens with link in middle", () => { + const tokens = tokenizeToObjects("(example.com)"); + expect(tokens).toHaveLength(3); + expect(tokens[0]).toMatchObject({ + isLink: false, + value: "(", + start: 0, + end: 1, + }); + expect(tokens[1]).toMatchObject({ + isLink: true, + value: "example.com", + href: "http://example.com", + start: 1, + end: 12, + }); + expect(tokens[2]).toMatchObject({ + isLink: false, + value: ")", + start: 12, + end: 13, + }); + }); + + it("tokenizes [url] as 3 tokens with link in middle", () => { + const tokens = tokenizeToObjects("[example.com]"); + expect(tokens).toHaveLength(3); + expect(tokens[0]).toMatchObject({ isLink: false, value: "[" }); + expect(tokens[1]).toMatchObject({ + isLink: true, + value: "example.com", + }); + expect(tokens[2]).toMatchObject({ isLink: false, value: "]" }); + }); + + it("tokenizes (https://url) as 3 tokens", () => { + const tokens = tokenizeToObjects("(https://example.com)"); + expect(tokens).toHaveLength(3); + expect(tokens[0]).toMatchObject({ isLink: false, value: "(" }); + expect(tokens[1]).toMatchObject({ + isLink: true, + value: "https://example.com", + href: "https://example.com", + }); + expect(tokens[2]).toMatchObject({ isLink: false, value: ")" }); + }); + }); + + describe("non-links", () => { + it("tokenizes plain word as non-link", () => { + const tokens = tokenizeToObjects("notaurl"); + expect(tokens).toHaveLength(1); + expect(tokens[0].isLink).toBe(false); + }); + + it("tokenizes domain with trailing number as non-link", () => { + // This is a key behavior: example.com1 is NOT a valid link + // because the TLD is "com1" which is not valid + const tokens = tokenizeToObjects("example.com1"); + expect(tokens).toHaveLength(1); + expect(tokens[0].isLink).toBe(false); + }); + + it("tokenizes single-char TLD as non-link", () => { + const tokens = tokenizeToObjects("test.x"); + expect(tokens).toHaveLength(1); + expect(tokens[0].isLink).toBe(false); + }); + + it("tokenizes single-char hostname as non-link", () => { + const tokens = tokenizeToObjects("a.bc"); + expect(tokens).toHaveLength(1); + expect(tokens[0].isLink).toBe(false); + }); + }); + + describe("edge cases", () => { + it("tokenizes IP address as non-link", () => { + const tokens = tokenizeToObjects("192.168.1.1"); + expect(tokens).toHaveLength(1); + expect(tokens[0].isLink).toBe(false); + }); + + it("tokenizes localhost as link (filtered downstream by shouldAutoLink)", () => { + const tokens = tokenizeToObjects("localhost"); + expect(tokens).toHaveLength(1); + expect(tokens[0].isLink).toBe(true); + }); + + it("tokenizes url with trailing dot as url + dot tokens", () => { + const tokens = tokenizeToObjects("example.com."); + expect(tokens).toHaveLength(2); + expect(tokens[0]).toMatchObject({ + isLink: true, + value: "example.com", + }); + expect(tokens[1]).toMatchObject({ + isLink: false, + value: ".", + }); + }); + + it("tokenizes {url} as 3 tokens (curly braces)", () => { + const tokens = tokenizeToObjects("{example.com}"); + expect(tokens).toHaveLength(3); + expect(tokens[0]).toMatchObject({ isLink: false, value: "{" }); + expect(tokens[1]).toMatchObject({ isLink: true, value: "example.com" }); + expect(tokens[2]).toMatchObject({ isLink: false, value: "}" }); + }); + + it("respects defaultProtocol parameter", () => { + const tokens = tokenizeToObjects("example.com", "https"); + expect(tokens[0].href).toBe("https://example.com"); + }); + }); +}); + +describe("isValidLinkStructure baseline", () => { + it("accepts single link token", () => { + const tokens = tokenizeToObjects("example.com"); + expect(isValidLinkStructure(tokens)).toBe(true); + }); + + it("accepts link wrapped in parentheses", () => { + const tokens = tokenizeToObjects("(example.com)"); + expect(isValidLinkStructure(tokens)).toBe(true); + }); + + it("accepts link wrapped in square brackets", () => { + const tokens = tokenizeToObjects("[example.com]"); + expect(isValidLinkStructure(tokens)).toBe(true); + }); + + it("rejects link wrapped in curly braces", () => { + // {url} tokenizes to 3 tokens but {} is not in the accepted list + const tokens = tokenizeToObjects("{example.com}"); + expect(isValidLinkStructure(tokens)).toBe(false); + }); + + it("rejects non-link single token", () => { + const tokens = tokenizeToObjects("notaurl"); + expect(isValidLinkStructure(tokens)).toBe(false); + }); + + it("rejects url with trailing dot (2 tokens)", () => { + const tokens = tokenizeToObjects("example.com."); + expect(isValidLinkStructure(tokens)).toBe(false); + }); + + it("rejects example.com1 (invalid TLD)", () => { + const tokens = tokenizeToObjects("example.com1"); + expect(isValidLinkStructure(tokens)).toBe(false); + }); +}); + +// ============================================================================ +// Level 2: Integration tests through the editor +// ============================================================================ + +describe("Link extension autolink behavior", () => { + let editor: BlockNoteEditor; + + afterEach(() => { + if (editor) { + editor._tiptapEditor.destroy(); + } + }); + + function setupEditorWithBlock(content = "") { + editor = createEditor(); + editor.replaceBlocks(editor.document, [ + { + id: "test-block", + type: "paragraph", + content: content || undefined, + }, + ]); + return editor; + } + + describe("should autolink", () => { + it("autolinks https URL when followed by space", () => { + setupEditorWithBlock(); + const links = typeTextThenSpace(editor, "test-block", "https://example.com"); + expect(links).toHaveLength(1); + expect(links[0].href).toBe("https://example.com"); + expect(links[0].text).toBe("https://example.com"); + }); + + it("autolinks http URL when followed by space", () => { + setupEditorWithBlock(); + const links = typeTextThenSpace(editor, "test-block", "http://example.com"); + expect(links).toHaveLength(1); + expect(links[0].href).toBe("http://example.com"); + }); + + it("autolinks schemeless URL with default protocol (https in BlockNote)", () => { + setupEditorWithBlock(); + const links = typeTextThenSpace(editor, "test-block", "example.com"); + expect(links).toHaveLength(1); + // BlockNote overrides the tiptap default to "https" via DEFAULT_LINK_PROTOCOL + expect(links[0].href).toBe("https://example.com"); + expect(links[0].text).toBe("example.com"); + }); + + it("autolinks www URL", () => { + setupEditorWithBlock(); + const links = typeTextThenSpace(editor, "test-block", "www.example.com"); + expect(links).toHaveLength(1); + expect(links[0].href).toBe("https://www.example.com"); + }); + + it("autolinks URL with path and query", () => { + setupEditorWithBlock(); + const links = typeTextThenSpace( + editor, + "test-block", + "https://example.com/path?q=1" + ); + expect(links).toHaveLength(1); + expect(links[0].href).toBe("https://example.com/path?q=1"); + }); + }); + + describe("should NOT autolink", () => { + it("does not autolink plain text", () => { + setupEditorWithBlock(); + const links = typeTextThenSpace(editor, "test-block", "notaurl"); + expect(links).toHaveLength(0); + }); + + it("does not autolink single word", () => { + setupEditorWithBlock(); + const links = typeTextThenSpace(editor, "test-block", "hello"); + expect(links).toHaveLength(0); + }); + + it("does not autolink IP address without protocol", () => { + setupEditorWithBlock(); + const links = typeTextThenSpace(editor, "test-block", "192.168.1.1"); + expect(links).toHaveLength(0); + }); + + it("does not autolink localhost (single-word hostname)", () => { + setupEditorWithBlock(); + const links = typeTextThenSpace(editor, "test-block", "localhost"); + expect(links).toHaveLength(0); + }); + + it("does not autolink domain with trailing number (invalid TLD)", () => { + setupEditorWithBlock(); + const links = typeTextThenSpace(editor, "test-block", "example.com1"); + expect(links).toHaveLength(0); + }); + }); + + describe("bracket-wrapped URLs", () => { + it("autolinks URL in parentheses, linking only the URL", () => { + setupEditorWithBlock(); + const links = typeTextThenSpace( + editor, + "test-block", + "(https://example.com)" + ); + expect(links).toHaveLength(1); + expect(links[0].href).toBe("https://example.com"); + expect(links[0].text).toBe("https://example.com"); + }); + + it("autolinks URL in square brackets, linking only the URL", () => { + setupEditorWithBlock(); + const links = typeTextThenSpace( + editor, + "test-block", + "[https://example.com]" + ); + expect(links).toHaveLength(1); + expect(links[0].href).toBe("https://example.com"); + expect(links[0].text).toBe("https://example.com"); + }); + }); +}); + +describe("Link extension paste handler behavior", () => { + let editor: BlockNoteEditor; + + afterEach(() => { + if (editor) { + editor._tiptapEditor.destroy(); + } + }); + + it("applies link mark when pasting URL over selected text", () => { + editor = createEditor(); + editor.replaceBlocks(editor.document, [ + { + id: "test-block", + type: "paragraph", + content: "click here", + }, + ]); + + // Select "click here" + editor.setTextCursorPosition("test-block", "start"); + const view = editor._tiptapEditor.view; + const doc = view.state.doc; + + // Find the text node position + let textStart = 0; + let textEnd = 0; + doc.descendants((node, pos) => { + if (node.isText && node.text === "click here") { + textStart = pos; + textEnd = pos + node.nodeSize; + } + }); + + // Create selection over the text + const { TextSelection } = require("@tiptap/pm/state"); + const tr = view.state.tr.setSelection( + TextSelection.create(view.state.doc, textStart, textEnd) + ); + view.dispatch(tr); + + // Simulate paste via the paste handler plugin + const pastePlugin = view.state.plugins.find( + (p) => (p as any).key === "handlePasteLink$" + ); + + if (pastePlugin && pastePlugin.props.handlePaste) { + // Create a minimal slice that looks like pasted URL text + const { Slice, Fragment } = require("@tiptap/pm/model"); + const textNode = view.state.schema.text("https://example.com"); + const slice = new Slice(Fragment.from(textNode), 0, 0); + + const result = (pastePlugin.props.handlePaste as any)( + view, + new ClipboardEvent("paste"), + slice + ); + + if (result) { + // Check that link mark was applied + const links = getLinksInDocument(editor); + expect(links).toHaveLength(1); + expect(links[0].href).toBe("https://example.com"); + expect(links[0].text).toBe("click here"); + } + } + }); + + it("does not apply link when pasting non-URL text over selection", () => { + editor = createEditor(); + editor.replaceBlocks(editor.document, [ + { + id: "test-block", + type: "paragraph", + content: "click here", + }, + ]); + + editor.setTextCursorPosition("test-block", "start"); + const view = editor._tiptapEditor.view; + const doc = view.state.doc; + + let textStart = 0; + let textEnd = 0; + doc.descendants((node, pos) => { + if (node.isText && node.text === "click here") { + textStart = pos; + textEnd = pos + node.nodeSize; + } + }); + + const { TextSelection } = require("@tiptap/pm/state"); + const tr = view.state.tr.setSelection( + TextSelection.create(view.state.doc, textStart, textEnd) + ); + view.dispatch(tr); + + const pastePlugin = view.state.plugins.find( + (p) => (p as any).key === "handlePasteLink$" + ); + + if (pastePlugin && pastePlugin.props.handlePaste) { + const { Slice, Fragment } = require("@tiptap/pm/model"); + const textNode = view.state.schema.text("not a url"); + const slice = new Slice(Fragment.from(textNode), 0, 0); + + const result = (pastePlugin.props.handlePaste as any)( + view, + new ClipboardEvent("paste"), + slice + ); + + // Should return false (not handled) + expect(result).toBe(false); + + // No links should exist + const links = getLinksInDocument(editor); + expect(links).toHaveLength(0); + } + }); + + it("does not apply link when pasting URL with empty selection", () => { + editor = createEditor(); + editor.replaceBlocks(editor.document, [ + { + id: "test-block", + type: "paragraph", + content: "some text", + }, + ]); + + // Place cursor without selection + editor.setTextCursorPosition("test-block", "end"); + const view = editor._tiptapEditor.view; + + const pastePlugin = view.state.plugins.find( + (p) => (p as any).key === "handlePasteLink$" + ); + + if (pastePlugin && pastePlugin.props.handlePaste) { + const { Slice, Fragment } = require("@tiptap/pm/model"); + const textNode = view.state.schema.text("https://example.com"); + const slice = new Slice(Fragment.from(textNode), 0, 0); + + const result = (pastePlugin.props.handlePaste as any)( + view, + new ClipboardEvent("paste"), + slice + ); + + // Should return false because selection is empty + expect(result).toBe(false); + } + }); +}); diff --git a/packages/core/src/extensions/tiptap-extensions/Link/link.ts b/packages/core/src/extensions/tiptap-extensions/Link/link.ts new file mode 100644 index 0000000000..1c879dc78c --- /dev/null +++ b/packages/core/src/extensions/tiptap-extensions/Link/link.ts @@ -0,0 +1,529 @@ +import type { PasteRuleMatch } from "@tiptap/core"; +import { Mark, markPasteRule, mergeAttributes } from "@tiptap/core"; +import type { Plugin } from "@tiptap/pm/state"; +import { autolink } from "./helpers/autolink.js"; +import { findLinks } from "./helpers/linkDetector.js"; +import { clickHandler } from "./helpers/clickHandler.js"; +import { pasteHandler } from "./helpers/pasteHandler.js"; +import { UNICODE_WHITESPACE_REGEX_GLOBAL } from "./helpers/whitespace.js"; + +export interface LinkProtocolOptions { + /** + * The protocol scheme to be registered. + * @default ''' + * @example 'ftp' + * @example 'git' + */ + scheme: string; + + /** + * If enabled, it allows optional slashes after the protocol. + * @default false + * @example true + */ + optionalSlashes?: boolean; +} + +export const pasteRegex = + /https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z]{2,}\b(?:[-a-zA-Z0-9@:%._+~#=?!&/]*)(?:[-a-zA-Z0-9@:%._+~#=?!&/]*)/gi; + +/** + * @deprecated The default behavior is now to open links when the editor is not editable. + */ +type DeprecatedOpenWhenNotEditable = "whenNotEditable"; + +export interface LinkOptions { + /** + * If enabled, the extension will automatically add links as you type. + * @default true + * @example false + */ + autolink: boolean; + + /** + * An array of custom protocols to be recognized by the link detector. + * @default [] + * @example ['ftp', 'git'] + */ + protocols: Array; + + /** + * Default protocol to use when no protocol is specified. + * @default 'http' + */ + defaultProtocol: string; + /** + * If enabled, links will be opened on click. + * @default true + * @example false + */ + openOnClick: boolean | DeprecatedOpenWhenNotEditable; + /** + * If enabled, the link will be selected when clicked. + * @default false + * @example true + */ + enableClickSelection: boolean; + /** + * Adds a link to the current selection if the pasted content only contains an url. + * @default true + * @example false + */ + linkOnPaste: boolean; + + /** + * HTML attributes to add to the link element. + * @default {} + * @example { class: 'foo' } + */ + HTMLAttributes: Record; + + /** + * @deprecated Use the `shouldAutoLink` option instead. + * A validation function that modifies link verification for the auto linker. + * @param url - The url to be validated. + * @returns - True if the url is valid, false otherwise. + */ + validate: (url: string) => boolean; + + /** + * A validation function which is used for configuring link verification for preventing XSS attacks. + * Only modify this if you know what you're doing. + * + * @returns {boolean} `true` if the URL is valid, `false` otherwise. + * + * @example + * isAllowedUri: (url, { defaultValidate, protocols, defaultProtocol }) => { + * return url.startsWith('./') || defaultValidate(url) + * } + */ + isAllowedUri: ( + /** + * The URL to be validated. + */ + url: string, + ctx: { + /** + * The default validation function. + */ + defaultValidate: (url: string) => boolean; + /** + * An array of allowed protocols for the URL (e.g., "http", "https"). As defined in the `protocols` option. + */ + protocols: Array; + /** + * A string that represents the default protocol (e.g., 'http'). As defined in the `defaultProtocol` option. + */ + defaultProtocol: string; + } + ) => boolean; + + /** + * Determines whether a valid link should be automatically linked in the content. + * + * @param {string} url - The URL that has already been validated. + * @returns {boolean} - True if the link should be auto-linked; false if it should not be auto-linked. + */ + shouldAutoLink: (url: string) => boolean; +} + +declare module "@tiptap/core" { + interface Commands { + link: { + /** + * Set a link mark + * @param attributes The link attributes + * @example editor.commands.setLink({ href: 'https://tiptap.dev' }) + */ + setLink: (attributes: { + href: string; + target?: string | null; + rel?: string | null; + class?: string | null; + title?: string | null; + }) => ReturnType; + /** + * Toggle a link mark + * @param attributes The link attributes + * @example editor.commands.toggleLink({ href: 'https://tiptap.dev' }) + */ + toggleLink: (attributes?: { + href: string; + target?: string | null; + rel?: string | null; + class?: string | null; + title?: string | null; + }) => ReturnType; + /** + * Unset a link mark + * @example editor.commands.unsetLink() + */ + unsetLink: () => ReturnType; + }; + } +} + +export function isAllowedUri( + uri: string | undefined, + protocols?: LinkOptions["protocols"] +) { + const allowedProtocols: string[] = [ + "http", + "https", + "ftp", + "ftps", + "mailto", + "tel", + "callto", + "sms", + "cid", + "xmpp", + ]; + + if (protocols) { + protocols.forEach((protocol) => { + const nextProtocol = + typeof protocol === "string" ? protocol : protocol.scheme; + + if (nextProtocol) { + allowedProtocols.push(nextProtocol); + } + }); + } + + return ( + !uri || + uri + .replace(UNICODE_WHITESPACE_REGEX_GLOBAL, "") + .match( + new RegExp( + // eslint-disable-next-line no-useless-escape + `^(?:(?:${allowedProtocols.join("|")}):|[^a-z]|[a-z0-9+.\-]+(?:[^a-z+.\-:]|$))`, + "i" + ) + ) + ); +} + +/** + * This extension allows you to create links. + * @see https://www.tiptap.dev/api/marks/link + */ +export const Link = Mark.create({ + name: "link", + + priority: 1000, + + keepOnSplit: false, + + exitable: true, + + onCreate() { + // TODO: v4 - remove validate option + if (this.options.validate && !this.options.shouldAutoLink) { + // Copy the validate function to the shouldAutoLink option + this.options.shouldAutoLink = this.options.validate; + console.warn( + 'The `validate` option is deprecated. Rename to the `shouldAutoLink` option instead.' + ); + } + }, + + inclusive() { + return this.options.autolink; + }, + + addOptions() { + return { + openOnClick: true, + enableClickSelection: false, + linkOnPaste: true, + autolink: true, + protocols: [], + defaultProtocol: "http", + HTMLAttributes: { + target: "_blank", + rel: "noopener noreferrer nofollow", + class: null, + }, + isAllowedUri: (url, ctx) => !!isAllowedUri(url, ctx.protocols), + validate: (url) => !!url, + shouldAutoLink: (url) => { + // URLs with explicit protocols (e.g., https://) should be auto-linked + // But not if @ appears before :// (that would be userinfo like user:pass@host) + const hasProtocol = /^[a-z][a-z0-9+.-]*:\/\//i.test(url); + const hasMaybeProtocol = /^[a-z][a-z0-9+.-]*:/i.test(url); + + if (hasProtocol || (hasMaybeProtocol && !url.includes("@"))) { + return true; + } + // Strip userinfo (user:pass@) if present, then extract hostname + const urlWithoutUserinfo = url.includes("@") + ? url.split("@").pop()! + : url; + const hostname = urlWithoutUserinfo.split(/[/?#:]/)[0]; + + // Don't auto-link IP addresses without protocol + if (/^\d{1,3}(\.\d{1,3}){3}$/.test(hostname)) { + return false; + } + // Don't auto-link single-word hostnames without TLD (e.g., "localhost") + if (!/\./.test(hostname)) { + return false; + } + return true; + }, + }; + }, + + addAttributes() { + return { + href: { + default: null, + parseHTML(element) { + return element.getAttribute("href"); + }, + }, + target: { + default: this.options.HTMLAttributes.target, + }, + rel: { + default: this.options.HTMLAttributes.rel, + }, + class: { + default: this.options.HTMLAttributes.class, + }, + title: { + default: null, + }, + }; + }, + + parseHTML() { + return [ + { + tag: "a[href]", + getAttrs: (dom) => { + const href = (dom as HTMLElement).getAttribute("href"); + + // prevent XSS attacks + if ( + !href || + !this.options.isAllowedUri(href, { + defaultValidate: (url) => + !!isAllowedUri(url, this.options.protocols), + protocols: this.options.protocols, + defaultProtocol: this.options.defaultProtocol, + }) + ) { + return false; + } + return null; + }, + }, + ]; + }, + + renderHTML({ HTMLAttributes }) { + // prevent XSS attacks + if ( + !this.options.isAllowedUri(HTMLAttributes.href, { + defaultValidate: (href) => + !!isAllowedUri(href, this.options.protocols), + protocols: this.options.protocols, + defaultProtocol: this.options.defaultProtocol, + }) + ) { + // strip out the href + return [ + "a", + mergeAttributes(this.options.HTMLAttributes, { + ...HTMLAttributes, + href: "", + }), + 0, + ]; + } + + return [ + "a", + mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), + 0, + ]; + }, + + markdownTokenName: "link", + + parseMarkdown: (token, helpers) => { + return helpers.applyMark( + "link", + helpers.parseInline(token.tokens || []), + { + href: token.href, + title: token.title || null, + } + ); + }, + + renderMarkdown: (node, h) => { + const href = node.attrs?.href ?? ""; + const title = node.attrs?.title ?? ""; + const text = h.renderChildren(node); + + return title ? `[${text}](${href} "${title}")` : `[${text}](${href})`; + }, + + addCommands() { + return { + setLink: + (attributes) => + ({ chain }) => { + const { href } = attributes; + + if ( + !this.options.isAllowedUri(href, { + defaultValidate: (url) => + !!isAllowedUri(url, this.options.protocols), + protocols: this.options.protocols, + defaultProtocol: this.options.defaultProtocol, + }) + ) { + return false; + } + + return chain() + .setMark(this.name, attributes) + .setMeta("preventAutolink", true) + .run(); + }, + + toggleLink: + (attributes) => + ({ chain }) => { + const { href } = attributes || {}; + + if ( + href && + !this.options.isAllowedUri(href, { + defaultValidate: (url) => + !!isAllowedUri(url, this.options.protocols), + protocols: this.options.protocols, + defaultProtocol: this.options.defaultProtocol, + }) + ) { + return false; + } + + return chain() + .toggleMark(this.name, attributes, { extendEmptyMarkRange: true }) + .setMeta("preventAutolink", true) + .run(); + }, + + unsetLink: + () => + ({ chain }) => { + return chain() + .unsetMark(this.name, { extendEmptyMarkRange: true }) + .setMeta("preventAutolink", true) + .run(); + }, + }; + }, + + addPasteRules() { + return [ + markPasteRule({ + find: (text) => { + const foundLinks: PasteRuleMatch[] = []; + + if (text) { + const { protocols, defaultProtocol } = this.options; + const links = findLinks(text, { defaultProtocol }).filter( + (item) => + item.isLink && + this.options.isAllowedUri(item.value, { + defaultValidate: (href) => + !!isAllowedUri(href, protocols), + protocols, + defaultProtocol, + }) + ); + + if (links.length) { + links.forEach((link) => { + if (!this.options.shouldAutoLink(link.value)) { + return; + } + + foundLinks.push({ + text: link.value, + data: { + href: link.href, + }, + index: link.start, + }); + }); + } + } + + return foundLinks; + }, + type: this.type, + getAttributes: (match) => { + return { + href: match.data?.href, + }; + }, + }), + ]; + }, + + addProseMirrorPlugins() { + const plugins: Plugin[] = []; + const { protocols, defaultProtocol } = this.options; + + if (this.options.autolink) { + plugins.push( + autolink({ + type: this.type, + defaultProtocol: this.options.defaultProtocol, + validate: (url) => + this.options.isAllowedUri(url, { + defaultValidate: (href) => + !!isAllowedUri(href, protocols), + protocols, + defaultProtocol, + }), + shouldAutoLink: this.options.shouldAutoLink, + protocols, + }) + ); + } + + plugins.push( + clickHandler({ + type: this.type, + editor: this.editor, + openOnClick: + this.options.openOnClick === "whenNotEditable" + ? true + : this.options.openOnClick, + enableClickSelection: this.options.enableClickSelection, + }) + ); + + if (this.options.linkOnPaste) { + plugins.push( + pasteHandler({ + editor: this.editor, + defaultProtocol: this.options.defaultProtocol, + type: this.type, + shouldAutoLink: this.options.shouldAutoLink, + }) + ); + } + + return plugins; + }, +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 85730f4c14..22627b6bcd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4694,9 +4694,6 @@ importers: '@tiptap/extension-italic': specifier: ^3.13.0 version: 3.15.3(@tiptap/core@3.22.1(@tiptap/pm@3.22.1)) - '@tiptap/extension-link': - specifier: ^3.22.1 - version: 3.22.1(@tiptap/core@3.22.1(@tiptap/pm@3.22.1))(@tiptap/pm@3.22.1) '@tiptap/extension-paragraph': specifier: ^3.13.0 version: 3.15.3(@tiptap/core@3.22.1(@tiptap/pm@3.22.1)) @@ -10301,12 +10298,6 @@ packages: peerDependencies: '@tiptap/core': ^3.15.3 - '@tiptap/extension-link@3.22.1': - resolution: {integrity: sha512-RHch/Bqv+QDvW3J1CXmiTB54pyrQYNQq8Vfa7is/O209dNPA8tdbkRP44rDjqn8NeDCriC/oJ4avWeXL4qNDVw==} - peerDependencies: - '@tiptap/core': ^3.22.1 - '@tiptap/pm': ^3.22.1 - '@tiptap/extension-paragraph@3.15.3': resolution: {integrity: sha512-lc0Qu/1AgzcEfS67NJMj5tSHHhH6NtA6uUpvppEKGsvJwgE2wKG1onE4isrVXmcGRdxSMiCtyTDemPNMu6/ozQ==} peerDependencies: @@ -13600,9 +13591,6 @@ packages: linkify-it@5.0.0: resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} - linkifyjs@4.3.2: - resolution: {integrity: sha512-NT1CJtq3hHIreOianA8aSXn6Cw0JzYOuDQbOrSPe7gqFnCpKP++MQe3ODgO3oh2GJFORkAAdqredOa60z63GbA==} - loader-runner@4.3.1: resolution: {integrity: sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==} engines: {node: '>=6.11.5'} @@ -21351,12 +21339,6 @@ snapshots: dependencies: '@tiptap/core': 3.22.1(@tiptap/pm@3.22.1) - '@tiptap/extension-link@3.22.1(@tiptap/core@3.22.1(@tiptap/pm@3.22.1))(@tiptap/pm@3.22.1)': - dependencies: - '@tiptap/core': 3.22.1(@tiptap/pm@3.22.1) - '@tiptap/pm': 3.22.1 - linkifyjs: 4.3.2 - '@tiptap/extension-paragraph@3.15.3(@tiptap/core@3.22.1(@tiptap/pm@3.22.1))': dependencies: '@tiptap/core': 3.22.1(@tiptap/pm@3.22.1) @@ -25283,8 +25265,6 @@ snapshots: dependencies: uc.micro: 2.1.0 - linkifyjs@4.3.2: {} - loader-runner@4.3.1: {} locate-path@6.0.0: From 989fb853efee477c754c6282ce526c9e888fee6b Mon Sep 17 00:00:00 2001 From: Nick the Sick Date: Fri, 3 Apr 2026 08:21:35 +0200 Subject: [PATCH 2/6] refactor: simplify inlined Link extension by removing unused tiptap options Strip out carried-over options (openOnClick, enableClickSelection, linkOnPaste, protocols, validate), deprecated types (LinkProtocolOptions, LinkOptions), and verbose JSDoc comments. Inline configuration defaults directly, pre-compile the URI validation regex, and simplify the extension registration in ExtensionManager. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../managers/ExtensionManager/extensions.ts | 25 +- .../Link/helpers/autolink.ts | 27 +- .../Link/helpers/clickHandler.ts | 27 +- .../Link/helpers/linkDetector.ts | 2 - .../Link/helpers/pasteHandler.ts | 3 +- .../tiptap-extensions/Link/index.ts | 3 +- .../extensions/tiptap-extensions/Link/link.ts | 474 ++++-------------- 7 files changed, 97 insertions(+), 464 deletions(-) diff --git a/packages/core/src/editor/managers/ExtensionManager/extensions.ts b/packages/core/src/editor/managers/ExtensionManager/extensions.ts index a729045264..a12c25b199 100644 --- a/packages/core/src/editor/managers/ExtensionManager/extensions.ts +++ b/packages/core/src/editor/managers/ExtensionManager/extensions.ts @@ -26,10 +26,6 @@ import { TableHandlesExtension, TrailingNodeExtension, } from "../../../extensions/index.js"; -import { - DEFAULT_LINK_PROTOCOL, - VALID_LINK_PROTOCOLS, -} from "../../../extensions/LinkToolbar/protocols.js"; import { BackgroundColorExtension, HardBreak, @@ -49,8 +45,6 @@ import { import { ExtensionFactoryInstance } from "../../BlockNoteExtension.js"; import { CollaborationExtension } from "../../../extensions/Collaboration/Collaboration.js"; -let LINKIFY_INITIALIZED = false; - /** * Get all the Tiptap extensions BlockNote is configured with by default */ @@ -78,22 +72,7 @@ export function getDefaultTiptapExtensions( SuggestionAddMark, SuggestionDeleteMark, SuggestionModificationMark, - Link.extend({ - inclusive: false, - }) - .extend({ - // Remove the title attribute to avoid unnecessary null attributes in serialized output - addAttributes() { - const attrs = this.parent?.() || {}; - delete (attrs as Record).title; - return attrs; - }, - }) - .configure({ - defaultProtocol: DEFAULT_LINK_PROTOCOL, - // only call this once if we have multiple editors installed. Or fix https://github.com/ueberdosis/tiptap/issues/5450 - protocols: LINKIFY_INITIALIZED ? [] : VALID_LINK_PROTOCOLS, - }), + Link, ...(Object.values(editor.schema.styleSpecs).map((styleSpec) => { return styleSpec.implementation.mark.configure({ editor: editor, @@ -170,8 +149,6 @@ export function getDefaultTiptapExtensions( createDropFileExtension(editor), ]; - LINKIFY_INITIALIZED = true; - return tiptapExtensions; } diff --git a/packages/core/src/extensions/tiptap-extensions/Link/helpers/autolink.ts b/packages/core/src/extensions/tiptap-extensions/Link/helpers/autolink.ts index 5e898c6309..88ca510c2a 100644 --- a/packages/core/src/extensions/tiptap-extensions/Link/helpers/autolink.ts +++ b/packages/core/src/extensions/tiptap-extensions/Link/helpers/autolink.ts @@ -18,12 +18,6 @@ import { /** * Check if the provided tokens form a valid link structure, which can either be a single link token * or a link token surrounded by parentheses or square brackets. - * - * This ensures that only complete and valid text is hyperlinked, preventing cases where a valid - * top-level domain (TLD) is immediately followed by an invalid character, like a number. For - * example, with the `find` method from Linkify, entering `example.com1` would result in - * `example.com` being linked and the trailing `1` left as plain text. By using the `tokenize` - * method, we can perform more comprehensive validation on the input text. */ function isValidLinkStructure(tokens: LinkMatch[]) { if (tokens.length === 1) { @@ -42,36 +36,23 @@ type AutolinkOptions = { defaultProtocol: string; validate: (url: string) => boolean; shouldAutoLink: (url: string) => boolean; - protocols: Array<{ scheme: string; optionalSlashes?: boolean } | string>; }; /** - * This plugin allows you to automatically add links to your editor. - * @param options The plugin options - * @returns The plugin instance + * Plugin that automatically adds link marks when typing URLs. */ export function autolink(options: AutolinkOptions): Plugin { return new Plugin({ key: new PluginKey("autolink"), appendTransaction: (transactions, oldState, newState) => { - /** - * Does the transaction change the document? - */ const docChanges = transactions.some((transaction) => transaction.docChanged) && !oldState.doc.eq(newState.doc); - /** - * Prevent autolink if the transaction is not a document change or if the transaction has the meta `preventAutolink`. - */ const preventAutolink = transactions.some((transaction) => transaction.getMeta("preventAutolink") ); - /** - * Prevent autolink if the transaction is not a document change - * or if the transaction has the meta `preventAutolink`. - */ if (!docChanges || preventAutolink) { return; } @@ -83,7 +64,6 @@ export function autolink(options: AutolinkOptions): Plugin { const changes = getChangedRanges(transform); changes.forEach(({ newRange }) => { - // Now let's see if we can add new links. const nodesInChangedRanges = findChildrenInRange( newState.doc, newRange, @@ -94,7 +74,6 @@ export function autolink(options: AutolinkOptions): Plugin { let textBeforeWhitespace: string | undefined; if (nodesInChangedRanges.length > 1) { - // Grab the first node within the changed ranges (ex. the first of two paragraphs when hitting enter). textBlock = nodesInChangedRanges[0]; textBeforeWhitespace = newState.doc.textBetween( textBlock.pos, @@ -151,7 +130,6 @@ export function autolink(options: AutolinkOptions): Plugin { linksBeforeSpace .filter((link) => link.isLink) - // Calculate link position. .map((link) => ({ ...link, from: lastWordAndBlockOffset + link.start + 1, @@ -169,11 +147,8 @@ export function autolink(options: AutolinkOptions): Plugin { newState.schema.marks.code ); }) - // validate link .filter((link) => options.validate(link.value)) - // check whether should autolink .filter((link) => options.shouldAutoLink(link.value)) - // Add link mark. .forEach((link) => { if ( getMarksBetween(link.from, link.to, newState.doc).some( diff --git a/packages/core/src/extensions/tiptap-extensions/Link/helpers/clickHandler.ts b/packages/core/src/extensions/tiptap-extensions/Link/helpers/clickHandler.ts index 9fa248c65a..fe31821e77 100644 --- a/packages/core/src/extensions/tiptap-extensions/Link/helpers/clickHandler.ts +++ b/packages/core/src/extensions/tiptap-extensions/Link/helpers/clickHandler.ts @@ -6,8 +6,6 @@ import { Plugin, PluginKey } from "@tiptap/pm/state"; type ClickHandlerOptions = { type: MarkType; editor: Editor; - openOnClick?: boolean; - enableClickSelection?: boolean; }; export function clickHandler(options: ClickHandlerOptions): Plugin { @@ -48,27 +46,16 @@ export function clickHandler(options: ClickHandlerOptions): Plugin { return false; } - let handled = false; + const attrs = getAttributes(view.state, options.type.name); + const href = link.href ?? attrs.href; + const target = link.target ?? attrs.target; - if (options.enableClickSelection) { - const commandResult = options.editor.commands.extendMarkRange( - options.type.name - ); - handled = commandResult; + if (href) { + window.open(href, target); + return true; } - if (options.openOnClick) { - const attrs = getAttributes(view.state, options.type.name); - const href = link.href ?? attrs.href; - const target = link.target ?? attrs.target; - - if (href) { - window.open(href, target); - handled = true; - } - } - - return handled; + return false; }, }, }); diff --git a/packages/core/src/extensions/tiptap-extensions/Link/helpers/linkDetector.ts b/packages/core/src/extensions/tiptap-extensions/Link/helpers/linkDetector.ts index 403b5cce8e..d0e56e31e6 100644 --- a/packages/core/src/extensions/tiptap-extensions/Link/helpers/linkDetector.ts +++ b/packages/core/src/extensions/tiptap-extensions/Link/helpers/linkDetector.ts @@ -37,8 +37,6 @@ const SPECIAL_HOSTS = new Set(["localhost"]); // Regex building blocks // --------------------------------------------------------------------------- -// URL-safe characters in path/query/fragment (everything except whitespace) -const URL_BODY = "[^\\s]"; // Characters that are unlikely to be part of a URL when they appear at the end const TRAILING_PUNCT = /[.,;:!?"']+$/; diff --git a/packages/core/src/extensions/tiptap-extensions/Link/helpers/pasteHandler.ts b/packages/core/src/extensions/tiptap-extensions/Link/helpers/pasteHandler.ts index 2f95bb2d49..947be17e37 100644 --- a/packages/core/src/extensions/tiptap-extensions/Link/helpers/pasteHandler.ts +++ b/packages/core/src/extensions/tiptap-extensions/Link/helpers/pasteHandler.ts @@ -1,14 +1,13 @@ import type { Editor } from "@tiptap/core"; import type { MarkType } from "@tiptap/pm/model"; import { Plugin, PluginKey } from "@tiptap/pm/state"; -import type { LinkOptions } from "../link.js"; import { findLinks } from "./linkDetector.js"; type PasteHandlerOptions = { editor: Editor; defaultProtocol: string; type: MarkType; - shouldAutoLink?: LinkOptions["shouldAutoLink"]; + shouldAutoLink?: (url: string) => boolean; }; export function pasteHandler(options: PasteHandlerOptions): Plugin { diff --git a/packages/core/src/extensions/tiptap-extensions/Link/index.ts b/packages/core/src/extensions/tiptap-extensions/Link/index.ts index c9bbe60114..5324cbbe38 100644 --- a/packages/core/src/extensions/tiptap-extensions/Link/index.ts +++ b/packages/core/src/extensions/tiptap-extensions/Link/index.ts @@ -1,3 +1,2 @@ export { Link } from "./link.js"; -export type { LinkOptions, LinkProtocolOptions } from "./link.js"; -export { isAllowedUri, pasteRegex } from "./link.js"; +export { isAllowedUri } from "./link.js"; diff --git a/packages/core/src/extensions/tiptap-extensions/Link/link.ts b/packages/core/src/extensions/tiptap-extensions/Link/link.ts index 1c879dc78c..15783a12f9 100644 --- a/packages/core/src/extensions/tiptap-extensions/Link/link.ts +++ b/packages/core/src/extensions/tiptap-extensions/Link/link.ts @@ -7,209 +7,66 @@ import { clickHandler } from "./helpers/clickHandler.js"; import { pasteHandler } from "./helpers/pasteHandler.js"; import { UNICODE_WHITESPACE_REGEX_GLOBAL } from "./helpers/whitespace.js"; -export interface LinkProtocolOptions { - /** - * The protocol scheme to be registered. - * @default ''' - * @example 'ftp' - * @example 'git' - */ - scheme: string; - - /** - * If enabled, it allows optional slashes after the protocol. - * @default false - * @example true - */ - optionalSlashes?: boolean; -} +const DEFAULT_PROTOCOL = "https"; -export const pasteRegex = - /https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z]{2,}\b(?:[-a-zA-Z0-9@:%._+~#=?!&/]*)(?:[-a-zA-Z0-9@:%._+~#=?!&/]*)/gi; - -/** - * @deprecated The default behavior is now to open links when the editor is not editable. - */ -type DeprecatedOpenWhenNotEditable = "whenNotEditable"; - -export interface LinkOptions { - /** - * If enabled, the extension will automatically add links as you type. - * @default true - * @example false - */ - autolink: boolean; - - /** - * An array of custom protocols to be recognized by the link detector. - * @default [] - * @example ['ftp', 'git'] - */ - protocols: Array; - - /** - * Default protocol to use when no protocol is specified. - * @default 'http' - */ - defaultProtocol: string; - /** - * If enabled, links will be opened on click. - * @default true - * @example false - */ - openOnClick: boolean | DeprecatedOpenWhenNotEditable; - /** - * If enabled, the link will be selected when clicked. - * @default false - * @example true - */ - enableClickSelection: boolean; - /** - * Adds a link to the current selection if the pasted content only contains an url. - * @default true - * @example false - */ - linkOnPaste: boolean; - - /** - * HTML attributes to add to the link element. - * @default {} - * @example { class: 'foo' } - */ - HTMLAttributes: Record; - - /** - * @deprecated Use the `shouldAutoLink` option instead. - * A validation function that modifies link verification for the auto linker. - * @param url - The url to be validated. - * @returns - True if the url is valid, false otherwise. - */ - validate: (url: string) => boolean; - - /** - * A validation function which is used for configuring link verification for preventing XSS attacks. - * Only modify this if you know what you're doing. - * - * @returns {boolean} `true` if the URL is valid, `false` otherwise. - * - * @example - * isAllowedUri: (url, { defaultValidate, protocols, defaultProtocol }) => { - * return url.startsWith('./') || defaultValidate(url) - * } - */ - isAllowedUri: ( - /** - * The URL to be validated. - */ - url: string, - ctx: { - /** - * The default validation function. - */ - defaultValidate: (url: string) => boolean; - /** - * An array of allowed protocols for the URL (e.g., "http", "https"). As defined in the `protocols` option. - */ - protocols: Array; - /** - * A string that represents the default protocol (e.g., 'http'). As defined in the `defaultProtocol` option. - */ - defaultProtocol: string; - } - ) => boolean; - - /** - * Determines whether a valid link should be automatically linked in the content. - * - * @param {string} url - The URL that has already been validated. - * @returns {boolean} - True if the link should be auto-linked; false if it should not be auto-linked. - */ - shouldAutoLink: (url: string) => boolean; -} +const HTML_ATTRIBUTES = { + target: "_blank", + rel: "noopener noreferrer nofollow", +}; declare module "@tiptap/core" { interface Commands { link: { - /** - * Set a link mark - * @param attributes The link attributes - * @example editor.commands.setLink({ href: 'https://tiptap.dev' }) - */ - setLink: (attributes: { - href: string; - target?: string | null; - rel?: string | null; - class?: string | null; - title?: string | null; - }) => ReturnType; - /** - * Toggle a link mark - * @param attributes The link attributes - * @example editor.commands.toggleLink({ href: 'https://tiptap.dev' }) - */ - toggleLink: (attributes?: { - href: string; - target?: string | null; - rel?: string | null; - class?: string | null; - title?: string | null; - }) => ReturnType; - /** - * Unset a link mark - * @example editor.commands.unsetLink() - */ + setLink: (attributes: { href: string }) => ReturnType; + toggleLink: (attributes?: { href: string }) => ReturnType; unsetLink: () => ReturnType; }; } } -export function isAllowedUri( - uri: string | undefined, - protocols?: LinkOptions["protocols"] -) { - const allowedProtocols: string[] = [ - "http", - "https", - "ftp", - "ftps", - "mailto", - "tel", - "callto", - "sms", - "cid", - "xmpp", - ]; - - if (protocols) { - protocols.forEach((protocol) => { - const nextProtocol = - typeof protocol === "string" ? protocol : protocol.scheme; - - if (nextProtocol) { - allowedProtocols.push(nextProtocol); - } - }); +// Pre-compiled regex for URI protocol validation. +// Allows: http, https, ftp, ftps, mailto, tel, callto, sms, cid, xmpp +const ALLOWED_URI_REGEX = + // eslint-disable-next-line no-useless-escape + /^(?:(?:http|https|ftp|ftps|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z0-9+.\-]+(?:[^a-z+.\-:]|$))/i; + +export function isAllowedUri(uri: string | undefined): boolean { + if (!uri) return true; + const cleaned = uri.replace(UNICODE_WHITESPACE_REGEX_GLOBAL, ""); + return ALLOWED_URI_REGEX.test(cleaned); +} + +/** + * Determine whether a detected URL should be auto-linked. + * URLs with explicit protocols are always auto-linked. + * Bare hostnames must have a TLD (no IP addresses or single words). + */ +function shouldAutoLink(url: string): boolean { + const hasProtocol = /^[a-z][a-z0-9+.-]*:\/\//i.test(url); + const hasMaybeProtocol = /^[a-z][a-z0-9+.-]*:/i.test(url); + + if (hasProtocol || (hasMaybeProtocol && !url.includes("@"))) { + return true; } + // Strip userinfo (user:pass@) if present, then extract hostname + const urlWithoutUserinfo = url.includes("@") ? url.split("@").pop()! : url; + const hostname = urlWithoutUserinfo.split(/[/?#:]/)[0]; - return ( - !uri || - uri - .replace(UNICODE_WHITESPACE_REGEX_GLOBAL, "") - .match( - new RegExp( - // eslint-disable-next-line no-useless-escape - `^(?:(?:${allowedProtocols.join("|")}):|[^a-z]|[a-z0-9+.\-]+(?:[^a-z+.\-:]|$))`, - "i" - ) - ) - ); + // Don't auto-link IP addresses without protocol + if (/^\d{1,3}(\.\d{1,3}){3}$/.test(hostname)) { + return false; + } + // Don't auto-link single-word hostnames without TLD (e.g., "localhost") + if (!/\./.test(hostname)) { + return false; + } + return true; } /** - * This extension allows you to create links. - * @see https://www.tiptap.dev/api/marks/link + * BlockNote Link mark extension. */ -export const Link = Mark.create({ +export const Link = Mark.create({ name: "link", priority: 1000, @@ -218,63 +75,7 @@ export const Link = Mark.create({ exitable: true, - onCreate() { - // TODO: v4 - remove validate option - if (this.options.validate && !this.options.shouldAutoLink) { - // Copy the validate function to the shouldAutoLink option - this.options.shouldAutoLink = this.options.validate; - console.warn( - 'The `validate` option is deprecated. Rename to the `shouldAutoLink` option instead.' - ); - } - }, - - inclusive() { - return this.options.autolink; - }, - - addOptions() { - return { - openOnClick: true, - enableClickSelection: false, - linkOnPaste: true, - autolink: true, - protocols: [], - defaultProtocol: "http", - HTMLAttributes: { - target: "_blank", - rel: "noopener noreferrer nofollow", - class: null, - }, - isAllowedUri: (url, ctx) => !!isAllowedUri(url, ctx.protocols), - validate: (url) => !!url, - shouldAutoLink: (url) => { - // URLs with explicit protocols (e.g., https://) should be auto-linked - // But not if @ appears before :// (that would be userinfo like user:pass@host) - const hasProtocol = /^[a-z][a-z0-9+.-]*:\/\//i.test(url); - const hasMaybeProtocol = /^[a-z][a-z0-9+.-]*:/i.test(url); - - if (hasProtocol || (hasMaybeProtocol && !url.includes("@"))) { - return true; - } - // Strip userinfo (user:pass@) if present, then extract hostname - const urlWithoutUserinfo = url.includes("@") - ? url.split("@").pop()! - : url; - const hostname = urlWithoutUserinfo.split(/[/?#:]/)[0]; - - // Don't auto-link IP addresses without protocol - if (/^\d{1,3}(\.\d{1,3}){3}$/.test(hostname)) { - return false; - } - // Don't auto-link single-word hostnames without TLD (e.g., "localhost") - if (!/\./.test(hostname)) { - return false; - } - return true; - }, - }; - }, + inclusive: false, addAttributes() { return { @@ -285,16 +86,10 @@ export const Link = Mark.create({ }, }, target: { - default: this.options.HTMLAttributes.target, + default: HTML_ATTRIBUTES.target, }, rel: { - default: this.options.HTMLAttributes.rel, - }, - class: { - default: this.options.HTMLAttributes.class, - }, - title: { - default: null, + default: HTML_ATTRIBUTES.rel, }, }; }, @@ -305,17 +100,7 @@ export const Link = Mark.create({ tag: "a[href]", getAttrs: (dom) => { const href = (dom as HTMLElement).getAttribute("href"); - - // prevent XSS attacks - if ( - !href || - !this.options.isAllowedUri(href, { - defaultValidate: (url) => - !!isAllowedUri(url, this.options.protocols), - protocols: this.options.protocols, - defaultProtocol: this.options.defaultProtocol, - }) - ) { + if (!href || !isAllowedUri(href)) { return false; } return null; @@ -325,52 +110,15 @@ export const Link = Mark.create({ }, renderHTML({ HTMLAttributes }) { - // prevent XSS attacks - if ( - !this.options.isAllowedUri(HTMLAttributes.href, { - defaultValidate: (href) => - !!isAllowedUri(href, this.options.protocols), - protocols: this.options.protocols, - defaultProtocol: this.options.defaultProtocol, - }) - ) { - // strip out the href + if (!isAllowedUri(HTMLAttributes.href)) { return [ "a", - mergeAttributes(this.options.HTMLAttributes, { - ...HTMLAttributes, - href: "", - }), + mergeAttributes(HTML_ATTRIBUTES, { ...HTMLAttributes, href: "" }), 0, ]; } - return [ - "a", - mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), - 0, - ]; - }, - - markdownTokenName: "link", - - parseMarkdown: (token, helpers) => { - return helpers.applyMark( - "link", - helpers.parseInline(token.tokens || []), - { - href: token.href, - title: token.title || null, - } - ); - }, - - renderMarkdown: (node, h) => { - const href = node.attrs?.href ?? ""; - const title = node.attrs?.title ?? ""; - const text = h.renderChildren(node); - - return title ? `[${text}](${href} "${title}")` : `[${text}](${href})`; + return ["a", mergeAttributes(HTML_ATTRIBUTES, HTMLAttributes), 0]; }, addCommands() { @@ -378,16 +126,7 @@ export const Link = Mark.create({ setLink: (attributes) => ({ chain }) => { - const { href } = attributes; - - if ( - !this.options.isAllowedUri(href, { - defaultValidate: (url) => - !!isAllowedUri(url, this.options.protocols), - protocols: this.options.protocols, - defaultProtocol: this.options.defaultProtocol, - }) - ) { + if (!isAllowedUri(attributes.href)) { return false; } @@ -400,17 +139,7 @@ export const Link = Mark.create({ toggleLink: (attributes) => ({ chain }) => { - const { href } = attributes || {}; - - if ( - href && - !this.options.isAllowedUri(href, { - defaultValidate: (url) => - !!isAllowedUri(url, this.options.protocols), - protocols: this.options.protocols, - defaultProtocol: this.options.defaultProtocol, - }) - ) { + if (attributes?.href && !isAllowedUri(attributes.href)) { return false; } @@ -438,31 +167,19 @@ export const Link = Mark.create({ const foundLinks: PasteRuleMatch[] = []; if (text) { - const { protocols, defaultProtocol } = this.options; - const links = findLinks(text, { defaultProtocol }).filter( - (item) => - item.isLink && - this.options.isAllowedUri(item.value, { - defaultValidate: (href) => - !!isAllowedUri(href, protocols), - protocols, - defaultProtocol, - }) - ); - - if (links.length) { - links.forEach((link) => { - if (!this.options.shouldAutoLink(link.value)) { - return; - } - - foundLinks.push({ - text: link.value, - data: { - href: link.href, - }, - index: link.start, - }); + const links = findLinks(text, { + defaultProtocol: DEFAULT_PROTOCOL, + }).filter((item) => item.isLink && isAllowedUri(item.value)); + + for (const link of links) { + if (!shouldAutoLink(link.value)) { + continue; + } + + foundLinks.push({ + text: link.value, + data: { href: link.href }, + index: link.start, }); } } @@ -470,59 +187,40 @@ export const Link = Mark.create({ return foundLinks; }, type: this.type, - getAttributes: (match) => { - return { - href: match.data?.href, - }; - }, + getAttributes: (match) => ({ + href: match.data?.href, + }), }), ]; }, addProseMirrorPlugins() { const plugins: Plugin[] = []; - const { protocols, defaultProtocol } = this.options; - - if (this.options.autolink) { - plugins.push( - autolink({ - type: this.type, - defaultProtocol: this.options.defaultProtocol, - validate: (url) => - this.options.isAllowedUri(url, { - defaultValidate: (href) => - !!isAllowedUri(href, protocols), - protocols, - defaultProtocol, - }), - shouldAutoLink: this.options.shouldAutoLink, - protocols, - }) - ); - } + + plugins.push( + autolink({ + type: this.type, + defaultProtocol: DEFAULT_PROTOCOL, + validate: isAllowedUri, + shouldAutoLink, + }) + ); plugins.push( clickHandler({ type: this.type, editor: this.editor, - openOnClick: - this.options.openOnClick === "whenNotEditable" - ? true - : this.options.openOnClick, - enableClickSelection: this.options.enableClickSelection, }) ); - if (this.options.linkOnPaste) { - plugins.push( - pasteHandler({ - editor: this.editor, - defaultProtocol: this.options.defaultProtocol, - type: this.type, - shouldAutoLink: this.options.shouldAutoLink, - }) - ); - } + plugins.push( + pasteHandler({ + editor: this.editor, + defaultProtocol: DEFAULT_PROTOCOL, + type: this.type, + shouldAutoLink, + }) + ); return plugins; }, From 688d767720df80f33ce6b4915192e83c77dc3930 Mon Sep 17 00:00:00 2001 From: Nick the Sick Date: Fri, 3 Apr 2026 15:00:00 +0200 Subject: [PATCH 3/6] =?UTF-8?q?refactor:=20simplify=20link=20API=20?= =?UTF-8?q?=E2=80=94=20move=20operations=20to=20StyleManager,=20rewrite=20?= =?UTF-8?q?conversion=20logic?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove unused setLink/toggleLink/unsetLink TipTap commands from Link mark extension - Move editLink/deleteLink/getLinkMarkAtPos from LinkToolbar into StyleManager, exposing them as public API on BlockNoteEditor - LinkToolbar now delegates to editor API instead of doing raw mark operations - Rewrite contentNodeToInlineContent as a two-pass flatten-then-merge approach, replacing ~200 lines of nested state machine - Simplify linkToNodes in blockToNode.ts Co-Authored-By: Claude Opus 4.6 (1M context) --- .../src/api/nodeConversions/blockToNode.ts | 20 +- .../src/api/nodeConversions/nodeToBlock.ts | 285 +++++++----------- packages/core/src/editor/BlockNoteEditor.ts | 26 ++ .../core/src/editor/managers/StyleManager.ts | 96 +++++- .../src/extensions/LinkToolbar/LinkToolbar.ts | 105 ++----- .../extensions/tiptap-extensions/Link/link.ts | 49 --- .../__snapshots__/agent.test.ts.snap | 238 +++++++-------- .../__snapshots__/changeset.test.ts.snap | 2 - .../nodes/hardbreak/between-links.json | 2 - .../__snapshots__/nodes/hardbreak/link.json | 2 - .../__snapshots__/nodes/link/adjacent.json | 2 - .../__snapshots__/nodes/link/basic.json | 1 - .../__snapshots__/nodes/link/styled.json | 2 - 13 files changed, 380 insertions(+), 450 deletions(-) diff --git a/packages/core/src/api/nodeConversions/blockToNode.ts b/packages/core/src/api/nodeConversions/blockToNode.ts index 206ff8d9fd..1f8a389fd8 100644 --- a/packages/core/src/api/nodeConversions/blockToNode.ts +++ b/packages/core/src/api/nodeConversions/blockToNode.ts @@ -80,28 +80,20 @@ function styledTextToNodes( /** * Converts a Link inline content element to - * prosemirror text nodes with the appropriate marks + * prosemirror text nodes with the link mark applied. */ function linkToNodes( link: PartialLink, schema: Schema, styleSchema: StyleSchema, ): Node[] { - const linkMark = schema.marks.link.create({ - href: link.href, - }); + const linkMark = schema.marks.link.create({ href: link.href }); return styledTextArrayToNodes(link.content, schema, styleSchema).map( - (node) => { - if (node.type.name === "text") { - return node.mark([...node.marks, linkMark]); - } - - if (node.type.name === "hardBreak") { - return node; - } - throw new Error("unexpected node type"); - }, + (node) => + node.type.name === "text" + ? node.mark([...node.marks, linkMark]) + : node, ); } diff --git a/packages/core/src/api/nodeConversions/nodeToBlock.ts b/packages/core/src/api/nodeConversions/nodeToBlock.ts index 5048f91a2b..c2691ae500 100644 --- a/packages/core/src/api/nodeConversions/nodeToBlock.ts +++ b/packages/core/src/api/nodeConversions/nodeToBlock.ts @@ -1,4 +1,4 @@ -import { Mark, Node, Schema, Slice } from "@tiptap/pm/model"; +import { Node, Schema, Slice } from "@tiptap/pm/model"; import type { Block } from "../../blocks/defaultBlocks.js"; import UniqueID from "../../extensions/tiptap-extensions/UniqueID/UniqueID.js"; import type { @@ -135,206 +135,147 @@ export function contentNodeToTableContent< return ret; } +/** + * Extract styles from a PM node's marks, separating link href from style marks. + */ +function extractMarks( + node: Node, + styleSchema: S, +): { styles: Styles; href: string | undefined } { + const styles: Styles = {}; + let href: string | undefined; + + for (const mark of node.marks) { + if (mark.type.name === "link") { + href = mark.attrs.href; + } else { + const config = styleSchema[mark.type.name]; + if (!config) { + if (mark.type.spec.blocknoteIgnore) { + continue; + } + throw new Error(`style ${mark.type.name} not found in styleSchema`); + } + if (config.propSchema === "boolean") { + (styles as any)[config.type] = true; + } else if (config.propSchema === "string") { + (styles as any)[config.type] = mark.attrs.stringValue; + } else { + throw new UnreachableCaseError(config.propSchema); + } + } + } + + return { styles, href }; +} + +// A flattened record representing one PM text node's contribution. +type FlatTextRecord = { + kind: "text"; + text: string; + styles: Styles; + href: string | undefined; +}; + +type FlatRecord = + | FlatTextRecord + | { kind: "custom"; node: Node }; + /** * Converts an internal (prosemirror) content node to a BlockNote InlineContent array. + * + * Two-pass approach: + * 1. Flatten each PM child node into a simple record (text + styles + optional href, or custom node) + * 2. Merge consecutive records with the same href/styles into StyledText or Link objects */ export function contentNodeToInlineContent< I extends InlineContentSchema, S extends StyleSchema, >(contentNode: Node, inlineContentSchema: I, styleSchema: S) { - const content: InlineContent[] = []; - let currentContent: InlineContent | undefined = undefined; + // Pass 1: Flatten PM nodes into records + const records: FlatRecord[] = []; - // Most of the logic below is for handling links because in ProseMirror links are marks - // while in BlockNote links are a type of inline content contentNode.content.forEach((node) => { - // hardBreak nodes do not have an InlineContent equivalent, instead we - // add a newline to the previous node. if (node.type.name === "hardBreak") { - if (currentContent) { - // Current content exists. - if (isStyledTextInlineContent(currentContent)) { - // Current content is text. - currentContent.text += "\n"; - } else if (isLinkInlineContent(currentContent)) { - // Current content is a link. - currentContent.content[currentContent.content.length - 1].text += - "\n"; - } else { - throw new Error("unexpected"); - } + // Append newline to the previous text record, or create one + const last = records[records.length - 1]; + if (last && last.kind === "text") { + last.text += "\n"; } else { - // Current content does not exist. - currentContent = { - type: "text", + records.push({ + kind: "text", text: "\n", - styles: {}, - }; + styles: {} as Styles, + href: undefined, + }); } - return; } - if (node.type.name !== "link" && node.type.name !== "text") { - if (!inlineContentSchema[node.type.name]) { - // eslint-disable-next-line no-console - console.warn("unrecognized inline content type", node.type.name); - return; - } - if (currentContent) { - content.push(currentContent); - currentContent = undefined; - } - - content.push( - nodeToCustomInlineContent(node, inlineContentSchema, styleSchema), - ); + if (node.type.name === "text") { + const { styles, href } = extractMarks(node, styleSchema); + records.push({ kind: "text", text: node.textContent, styles, href }); + return; + } + // Custom inline content node + if (!inlineContentSchema[node.type.name]) { + // eslint-disable-next-line no-console + console.warn("unrecognized inline content type", node.type.name); return; } + records.push({ kind: "custom", node }); + }); - const styles: Styles = {}; - let linkMark: Mark | undefined; + // Pass 2: Merge consecutive text records into StyledText / Link + const content: InlineContent[] = []; - for (const mark of node.marks) { - if (mark.type.name === "link") { - linkMark = mark; - } else { - const config = styleSchema[mark.type.name]; - if (!config) { - if (mark.type.spec.blocknoteIgnore) { - // at this point, we don't want to show certain marks (such as comments) - // in the BlockNote JSON output. These marks should be tagged with "blocknoteIgnore" in the spec - continue; - } - throw new Error(`style ${mark.type.name} not found in styleSchema`); - } - if (config.propSchema === "boolean") { - (styles as any)[config.type] = true; - } else if (config.propSchema === "string") { - (styles as any)[config.type] = mark.attrs.stringValue; - } else { - throw new UnreachableCaseError(config.propSchema); - } - } + for (const record of records) { + if (record.kind === "custom") { + content.push( + nodeToCustomInlineContent(record.node, inlineContentSchema, styleSchema), + ); + continue; } - // Parsing links and text. - // Current content exists. - if (currentContent) { - // Current content is text. - if (isStyledTextInlineContent(currentContent)) { - if (!linkMark) { - // Node is text (same type as current content). - if ( - JSON.stringify(currentContent.styles) === JSON.stringify(styles) - ) { - // Styles are the same. - currentContent.text += node.textContent; - } else { - // Styles are different. - content.push(currentContent); - currentContent = { - type: "text", - text: node.textContent, - styles, - }; - } + const { text, styles, href } = record; + const stylesKey = JSON.stringify(styles); + const last = content[content.length - 1]; + + if (href !== undefined) { + // This text belongs to a link + if ( + last && + isLinkInlineContent(last) && + last.href === href + ) { + // Same link — try to merge with the last StyledText inside it + const lastChild = last.content[last.content.length - 1]; + if (JSON.stringify(lastChild.styles) === stylesKey) { + lastChild.text += text; } else { - // Node is a link (different type to current content). - content.push(currentContent); - currentContent = { - type: "link", - href: linkMark.attrs.href, - content: [ - { - type: "text", - text: node.textContent, - styles, - }, - ], - }; - } - } else if (isLinkInlineContent(currentContent)) { - // Current content is a link. - if (linkMark) { - // Node is a link (same type as current content). - // Link URLs are the same. - if (currentContent.href === linkMark.attrs.href) { - // Styles are the same. - if ( - JSON.stringify( - currentContent.content[currentContent.content.length - 1] - .styles, - ) === JSON.stringify(styles) - ) { - currentContent.content[currentContent.content.length - 1].text += - node.textContent; - } else { - // Styles are different. - currentContent.content.push({ - type: "text", - text: node.textContent, - styles, - }); - } - } else { - // Link URLs are different. - content.push(currentContent); - currentContent = { - type: "link", - href: linkMark.attrs.href, - content: [ - { - type: "text", - text: node.textContent, - styles, - }, - ], - }; - } - } else { - // Node is text (different type to current content). - content.push(currentContent); - currentContent = { - type: "text", - text: node.textContent, - styles, - }; + last.content.push({ type: "text", text, styles }); } } else { - // TODO - } - } - // Current content does not exist. - else { - // Node is text. - if (!linkMark) { - currentContent = { - type: "text", - text: node.textContent, - styles, - }; - } - // Node is a link. - else { - currentContent = { + // New link + content.push({ type: "link", - href: linkMark.attrs.href, - content: [ - { - type: "text", - text: node.textContent, - styles, - }, - ], - }; + href, + content: [{ type: "text", text, styles }], + }); + } + } else { + // Plain text + if ( + last && + isStyledTextInlineContent(last) && + JSON.stringify(last.styles) === stylesKey + ) { + last.text += text; + } else { + content.push({ type: "text", text, styles }); } } - }); - - if (currentContent) { - content.push(currentContent); } return content as InlineContent[]; diff --git a/packages/core/src/editor/BlockNoteEditor.ts b/packages/core/src/editor/BlockNoteEditor.ts index 2a6648f04b..9caf0bf0d2 100644 --- a/packages/core/src/editor/BlockNoteEditor.ts +++ b/packages/core/src/editor/BlockNoteEditor.ts @@ -1093,6 +1093,32 @@ export class BlockNoteEditor< this._styleManager.createLink(url, text); } + /** + * Find the link mark and its range at the given position. + * Returns undefined if there is no link at that position. + */ + public getLinkMarkAtPos(pos: number) { + return this._styleManager.getLinkMarkAtPos(pos); + } + + /** + * Updates the link at the given position with a new URL and text. + * @param url The new link URL. + * @param text The new text to display. + * @param position The position inside the link to edit. Defaults to the current selection anchor. + */ + public editLink(url: string, text: string, position?: number) { + this._styleManager.editLink(url, text, position); + } + + /** + * Removes the link at the given position, keeping the text. + * @param position The position inside the link to remove. Defaults to the current selection anchor. + */ + public deleteLink(position?: number) { + this._styleManager.deleteLink(position); + } + /** * Checks if the block containing the text cursor can be nested. */ diff --git a/packages/core/src/editor/managers/StyleManager.ts b/packages/core/src/editor/managers/StyleManager.ts index e03c46a6d1..6f5c37d462 100644 --- a/packages/core/src/editor/managers/StyleManager.ts +++ b/packages/core/src/editor/managers/StyleManager.ts @@ -1,3 +1,4 @@ +import { getMarkRange } from "@tiptap/core"; import { insertContentAt } from "../../api/blockManipulation/insertContentAt.js"; import { inlineContentToNodes } from "../../api/nodeConversions/blockToNode.js"; import { @@ -12,7 +13,6 @@ import { DefaultInlineContentSchema, DefaultStyleSchema, } from "../../blocks/defaultBlocks.js"; -import { TextSelection } from "@tiptap/pm/state"; import { UnreachableCaseError } from "../../util/typescript.js"; import { BlockNoteEditor } from "../BlockNoteEditor.js"; @@ -146,13 +146,42 @@ export class StyleManager< }); } + /** + * Find the link mark and its range at the given position. + * Returns undefined if there is no link at that position. + */ + public getLinkMarkAtPos(pos: number) { + return this.editor.transact((tr) => { + const resolvedPos = tr.doc.resolve(pos); + const linkMark = resolvedPos + .marks() + .find((mark) => mark.type.name === "link"); + + if (!linkMark) { + return undefined; + } + + const range = getMarkRange(resolvedPos, linkMark.type); + if (!range) { + return undefined; + } + + return { + href: linkMark.attrs.href as string, + from: range.from, + to: range.to, + text: tr.doc.textBetween(range.from, range.to), + }; + }); + } + /** * Gets the URL of the last link in the current selection, or `undefined` if there are no links in the selection. */ public getSelectedLinkUrl() { - return this.editor._tiptapEditor.getAttributes("link").href as - | string - | undefined; + return this.editor.transact((tr) => { + return this.getLinkMarkAtPos(tr.selection.from)?.href; + }); } /** @@ -164,19 +193,66 @@ export class StyleManager< if (url === "") { return; } - const mark = this.editor.pmSchema.mark("link", { href: url }); + this.editor.transact((tr) => { const { from, to } = tr.selection; + const linkMark = this.editor.pmSchema.mark("link", { href: url }); if (text) { - tr.insertText(text, from, to).addMark(from, from + text.length, mark); - } else { - tr.setSelection(TextSelection.create(tr.doc, to)).addMark( + tr.insertText(text, from, to).addMark( from, - to, - mark, + from + text.length, + linkMark, ); + } else { + tr.addMark(from, to, linkMark); } }); } + + /** + * Updates the link at the given position with a new URL and text. + * @param url The new link URL. + * @param text The new text to display. + * @param position The position inside the link to edit. Defaults to the current selection anchor. + */ + public editLink( + url: string, + text: string, + position = this.editor.transact((tr) => tr.selection.anchor), + ) { + this.editor.transact((tr) => { + const linkData = this.getLinkMarkAtPos(position + 1); + const { from, to } = linkData || { + from: tr.selection.from, + to: tr.selection.to, + }; + + const linkMark = this.editor.pmSchema.mark("link", { href: url }); + tr.insertText(text, from, to).addMark(from, from + text.length, linkMark); + }); + this.editor.prosemirrorView.focus(); + } + + /** + * Removes the link at the given position, keeping the text. + * @param position The position inside the link to remove. Defaults to the current selection anchor. + */ + public deleteLink( + position = this.editor.transact((tr) => tr.selection.anchor), + ) { + this.editor.transact((tr) => { + const linkData = this.getLinkMarkAtPos(position + 1); + const { from, to } = linkData || { + from: tr.selection.from, + to: tr.selection.to, + }; + + tr.removeMark(from, to, this.editor.pmSchema.marks["link"]).setMeta( + "preventAutolink", + true, + ); + }); + this.editor.prosemirrorView.focus(); + } } diff --git a/packages/core/src/extensions/LinkToolbar/LinkToolbar.ts b/packages/core/src/extensions/LinkToolbar/LinkToolbar.ts index 1a61d67d44..a4377ab599 100644 --- a/packages/core/src/extensions/LinkToolbar/LinkToolbar.ts +++ b/packages/core/src/extensions/LinkToolbar/LinkToolbar.ts @@ -1,5 +1,4 @@ -import { getMarkRange, posToDOMRect } from "@tiptap/core"; -import { getPmSchema } from "../../api/pmUtil.js"; +import { posToDOMRect } from "@tiptap/core"; import { createExtension } from "../../editor/BlockNoteExtension.js"; export const LinkToolbarExtension = createExtension(({ editor }) => { @@ -14,47 +13,35 @@ export const LinkToolbarExtension = createExtension(({ editor }) => { return null; } - function getMarkAtPos(pos: number, markType: string) { - return editor.transact((tr) => { - const resolvedPos = tr.doc.resolve(pos); - const mark = resolvedPos - .marks() - .find((mark) => mark.type.name === markType); - - if (!mark) { - return; - } - - const markRange = getMarkRange(resolvedPos, mark.type); - if (!markRange) { - return; - } + function getLinkAtPos(pos: number) { + const linkData = editor.getLinkMarkAtPos(pos); + if (!linkData) { + return undefined; + } - return { - range: markRange, - mark, - get text() { - return tr.doc.textBetween(markRange.from, markRange.to); - }, - get position() { - // to minimize re-renders, we convert to JSON, which is the same shape anyway - return posToDOMRect( - editor.prosemirrorView, - markRange.from, - markRange.to, - ).toJSON() as DOMRect; - }, - }; - }); + return { + range: { from: linkData.from, to: linkData.to }, + // Expose mark-like attrs for backward compat with React LinkToolbarController + mark: { attrs: { href: linkData.href } }, + get text() { + return linkData.text; + }, + get position() { + return posToDOMRect( + editor.prosemirrorView, + linkData.from, + linkData.to, + ).toJSON() as DOMRect; + }, + }; } function getLinkAtSelection() { return editor.transact((tr) => { - const selection = tr.selection; - if (!selection.empty) { + if (!tr.selection.empty) { return undefined; } - return getMarkAtPos(selection.anchor, "link"); + return getLinkAtPos(tr.selection.anchor); }); } @@ -63,12 +50,14 @@ export const LinkToolbarExtension = createExtension(({ editor }) => { getLinkAtSelection, getLinkElementAtPos, - getMarkAtPos, + getMarkAtPos(pos: number, _markType: string) { + return getLinkAtPos(pos); + }, getLinkAtElement(element: HTMLElement) { return editor.transact(() => { const posAtElement = editor.prosemirrorView.posAtDOM(element, 0) + 1; - return getMarkAtPos(posAtElement, "link"); + return getLinkAtPos(posAtElement); }); }, @@ -77,45 +66,11 @@ export const LinkToolbarExtension = createExtension(({ editor }) => { text: string, position = editor.transact((tr) => tr.selection.anchor), ) { - editor.transact((tr) => { - const pmSchema = getPmSchema(tr); - const { range } = getMarkAtPos(position + 1, "link") || { - range: { - from: tr.selection.from, - to: tr.selection.to, - }, - }; - if (!range) { - return; - } - tr.insertText(text, range.from, range.to); - tr.addMark( - range.from, - range.from + text.length, - pmSchema.mark("link", { href: url }), - ); - }); - editor.prosemirrorView.focus(); + editor.editLink(url, text, position); }, - deleteLink(position = editor.transact((tr) => tr.selection.anchor)) { - editor.transact((tr) => { - const pmSchema = getPmSchema(tr); - const { range } = getMarkAtPos(position + 1, "link") || { - range: { - from: tr.selection.from, - to: tr.selection.to, - }, - }; - if (!range) { - return; - } - tr.removeMark(range.from, range.to, pmSchema.marks["link"]).setMeta( - "preventAutolink", - true, - ); - }); - editor.prosemirrorView.focus(); + deleteLink(position = editor.transact((tr) => tr.selection.anchor)) { + editor.deleteLink(position); }, } as const; }); diff --git a/packages/core/src/extensions/tiptap-extensions/Link/link.ts b/packages/core/src/extensions/tiptap-extensions/Link/link.ts index 15783a12f9..d83d91d475 100644 --- a/packages/core/src/extensions/tiptap-extensions/Link/link.ts +++ b/packages/core/src/extensions/tiptap-extensions/Link/link.ts @@ -14,16 +14,6 @@ const HTML_ATTRIBUTES = { rel: "noopener noreferrer nofollow", }; -declare module "@tiptap/core" { - interface Commands { - link: { - setLink: (attributes: { href: string }) => ReturnType; - toggleLink: (attributes?: { href: string }) => ReturnType; - unsetLink: () => ReturnType; - }; - } -} - // Pre-compiled regex for URI protocol validation. // Allows: http, https, ftp, ftps, mailto, tel, callto, sms, cid, xmpp const ALLOWED_URI_REGEX = @@ -121,45 +111,6 @@ export const Link = Mark.create({ return ["a", mergeAttributes(HTML_ATTRIBUTES, HTMLAttributes), 0]; }, - addCommands() { - return { - setLink: - (attributes) => - ({ chain }) => { - if (!isAllowedUri(attributes.href)) { - return false; - } - - return chain() - .setMark(this.name, attributes) - .setMeta("preventAutolink", true) - .run(); - }, - - toggleLink: - (attributes) => - ({ chain }) => { - if (attributes?.href && !isAllowedUri(attributes.href)) { - return false; - } - - return chain() - .toggleMark(this.name, attributes, { extendEmptyMarkRange: true }) - .setMeta("preventAutolink", true) - .run(); - }, - - unsetLink: - () => - ({ chain }) => { - return chain() - .unsetMark(this.name, { extendEmptyMarkRange: true }) - .setMeta("preventAutolink", true) - .run(); - }, - }; - }, - addPasteRules() { return [ markPasteRule({ diff --git a/packages/xl-ai/src/prosemirror/__snapshots__/agent.test.ts.snap b/packages/xl-ai/src/prosemirror/__snapshots__/agent.test.ts.snap index e4244ca453..426acde29f 100644 --- a/packages/xl-ai/src/prosemirror/__snapshots__/agent.test.ts.snap +++ b/packages/xl-ai/src/prosemirror/__snapshots__/agent.test.ts.snap @@ -9,29 +9,29 @@ exports[`agentStepToTr > Update > clear block formatting 1`] = ` exports[`agentStepToTr > Update > drop mark and link 1`] = ` [ - "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"Bold text. "},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"Bold text. "},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"Bold text. "},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}},{"type":"deletion","attrs":{"id":null}}],"text":"Link."},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Link."}]}]}]}]}", + "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"Bold text. "},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"Bold text. "},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"Bold text. "},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}},{"type":"deletion","attrs":{"id":null}}],"text":"Link."},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Link."}]}]}]}]}", ] `; exports[`agentStepToTr > Update > drop mark and link and change text within mark 1`] = ` [ - "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"H"},{"type":"text","text":", world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Hi"},{"type":"text","text":", world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Hi"},{"type":"text","text":", world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Hi"},{"type":"text","text":", world! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"Bold"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Bold"},{"type":"text","marks":[{"type":"bold"}],"text":" text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Hi"},{"type":"text","text":", world! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"Bold"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Bold"},{"type":"text","marks":[{"type":"bold"}],"text":" text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Hi"},{"type":"text","text":", world! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"Bold"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Bold "},{"type":"text","marks":[{"type":"bold"}],"text":" text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Hi"},{"type":"text","text":", world! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"Bold"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Bold t"},{"type":"text","marks":[{"type":"bold"}],"text":" text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Hi"},{"type":"text","text":", world! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"Bold"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Bold th"},{"type":"text","marks":[{"type":"bold"}],"text":" text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Hi"},{"type":"text","text":", world! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"Bold"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Bold the"},{"type":"text","marks":[{"type":"bold"}],"text":" text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Hi"},{"type":"text","text":", world! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"Bold"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Bold the"},{"type":"text","marks":[{"type":"bold"}],"text":" text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Hi"},{"type":"text","text":", world! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"Bold"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Bold the"},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":" text. "},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Hi"},{"type":"text","text":", world! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"Bold"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Bold the"},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":" text. "},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Hi"},{"type":"text","text":", world! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"Bold"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Bold the"},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":" text. "},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}},{"type":"deletion","attrs":{"id":null}}],"text":"Link."},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Link."}]}]}]}]}", + "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"H"},{"type":"text","text":", world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Hi"},{"type":"text","text":", world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Hi"},{"type":"text","text":", world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Hi"},{"type":"text","text":", world! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"Bold"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Bold"},{"type":"text","marks":[{"type":"bold"}],"text":" text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Hi"},{"type":"text","text":", world! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"Bold"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Bold"},{"type":"text","marks":[{"type":"bold"}],"text":" text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Hi"},{"type":"text","text":", world! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"Bold"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Bold "},{"type":"text","marks":[{"type":"bold"}],"text":" text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Hi"},{"type":"text","text":", world! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"Bold"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Bold t"},{"type":"text","marks":[{"type":"bold"}],"text":" text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Hi"},{"type":"text","text":", world! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"Bold"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Bold th"},{"type":"text","marks":[{"type":"bold"}],"text":" text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Hi"},{"type":"text","text":", world! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"Bold"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Bold the"},{"type":"text","marks":[{"type":"bold"}],"text":" text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Hi"},{"type":"text","text":", world! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"Bold"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Bold the"},{"type":"text","marks":[{"type":"bold"}],"text":" text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Hi"},{"type":"text","text":", world! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"Bold"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Bold the"},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":" text. "},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Hi"},{"type":"text","text":", world! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"Bold"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Bold the"},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":" text. "},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Hi"},{"type":"text","text":", world! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"Bold"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Bold the"},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":" text. "},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}},{"type":"deletion","attrs":{"id":null}}],"text":"Link."},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Link."}]}]}]}]}", ] `; @@ -73,128 +73,128 @@ exports[`agentStepToTr > Update > modify parent content 1`] = ` exports[`agentStepToTr > Update > plain source block, add mention 1`] = ` [ - "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"world"},{"type":"mention","attrs":{"user":"Jane Doe"},"marks":[{"type":"insertion","attrs":{"id":null}}]},{"type":"text","text":"!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", + "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"world"},{"type":"mention","attrs":{"user":"Jane Doe"},"marks":[{"type":"insertion","attrs":{"id":null}}]},{"type":"text","text":"!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", ] `; exports[`agentStepToTr > Update > standard update 1`] = ` [ - "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"world"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"W"},{"type":"text","text":"!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"world"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"We"},{"type":"text","text":"!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"world"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Wel"},{"type":"text","text":"!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"world"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Welt"},{"type":"text","text":"!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", + "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"world"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"W"},{"type":"text","text":"!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"world"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"We"},{"type":"text","text":"!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"world"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Wel"},{"type":"text","text":"!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"world"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Welt"},{"type":"text","text":"!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", ] `; exports[`agentStepToTr > Update > styles + ic in source block, remove mark 1`] = ` [ - "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", + "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", ] `; exports[`agentStepToTr > Update > styles + ic in source block, remove mention 1`] = ` [ - "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":", "},{"type":"mention","attrs":{"user":"John Doe"},"marks":[{"type":"deletion","attrs":{"id":null}}]},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", + "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":", "},{"type":"mention","attrs":{"user":"John Doe"},"marks":[{"type":"deletion","attrs":{"id":null}}]},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", ] `; exports[`agentStepToTr > Update > styles + ic in source block, replace content 1`] = ` [ - "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"},"marks":[{"type":"deletion","attrs":{"id":null}}]},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text is blue!"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"u"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"},"marks":[{"type":"deletion","attrs":{"id":null}}]},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text is blue!"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"up"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"},"marks":[{"type":"deletion","attrs":{"id":null}}]},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text is blue!"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"upd"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"},"marks":[{"type":"deletion","attrs":{"id":null}}]},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text is blue!"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"upda"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"},"marks":[{"type":"deletion","attrs":{"id":null}}]},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text is blue!"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"updat"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"},"marks":[{"type":"deletion","attrs":{"id":null}}]},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text is blue!"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"update"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"},"marks":[{"type":"deletion","attrs":{"id":null}}]},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text is blue!"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"updated"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"},"marks":[{"type":"deletion","attrs":{"id":null}}]},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text is blue!"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"updated "}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"},"marks":[{"type":"deletion","attrs":{"id":null}}]},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text is blue!"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"updated c"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"},"marks":[{"type":"deletion","attrs":{"id":null}}]},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text is blue!"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"updated co"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"},"marks":[{"type":"deletion","attrs":{"id":null}}]},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text is blue!"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"updated con"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"},"marks":[{"type":"deletion","attrs":{"id":null}}]},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text is blue!"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"updated cont"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"},"marks":[{"type":"deletion","attrs":{"id":null}}]},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text is blue!"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"updated conte"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"},"marks":[{"type":"deletion","attrs":{"id":null}}]},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text is blue!"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"updated conten"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"},"marks":[{"type":"deletion","attrs":{"id":null}}]},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text is blue!"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"updated content"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", + "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"},"marks":[{"type":"deletion","attrs":{"id":null}}]},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text is blue!"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"u"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"},"marks":[{"type":"deletion","attrs":{"id":null}}]},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text is blue!"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"up"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"},"marks":[{"type":"deletion","attrs":{"id":null}}]},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text is blue!"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"upd"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"},"marks":[{"type":"deletion","attrs":{"id":null}}]},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text is blue!"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"upda"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"},"marks":[{"type":"deletion","attrs":{"id":null}}]},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text is blue!"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"updat"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"},"marks":[{"type":"deletion","attrs":{"id":null}}]},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text is blue!"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"update"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"},"marks":[{"type":"deletion","attrs":{"id":null}}]},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text is blue!"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"updated"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"},"marks":[{"type":"deletion","attrs":{"id":null}}]},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text is blue!"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"updated "}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"},"marks":[{"type":"deletion","attrs":{"id":null}}]},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text is blue!"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"updated c"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"},"marks":[{"type":"deletion","attrs":{"id":null}}]},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text is blue!"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"updated co"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"},"marks":[{"type":"deletion","attrs":{"id":null}}]},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text is blue!"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"updated con"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"},"marks":[{"type":"deletion","attrs":{"id":null}}]},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text is blue!"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"updated cont"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"},"marks":[{"type":"deletion","attrs":{"id":null}}]},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text is blue!"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"updated conte"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"},"marks":[{"type":"deletion","attrs":{"id":null}}]},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text is blue!"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"updated conten"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"},"marks":[{"type":"deletion","attrs":{"id":null}}]},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text is blue!"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"updated content"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", ] `; exports[`agentStepToTr > Update > styles + ic in source block, update mention prop 1`] = ` [ - "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"},"marks":[{"type":"deletion","attrs":{"id":null}}]},{"type":"mention","attrs":{"user":"Jane Doe"},"marks":[{"type":"insertion","attrs":{"id":null}}]},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", + "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"},"marks":[{"type":"deletion","attrs":{"id":null}}]},{"type":"mention","attrs":{"user":"Jane Doe"},"marks":[{"type":"insertion","attrs":{"id":null}}]},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", ] `; exports[`agentStepToTr > Update > styles + ic in source block, update text 1`] = ` [ - "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"W"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wi"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie g"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie ge"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geh"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht e"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es d"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es di"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"D"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Di"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Die"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Dies"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Diese"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Dieser"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Dieser "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Dieser T"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Dieser Te"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Dieser Tex"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Dieser Text"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Dieser Text"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Dieser Text"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"is blue"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"i"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Dieser Text"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"is blue"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"is"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Dieser Text"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"is blue"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"ist"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Dieser Text"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"is blue"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"ist "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Dieser Text"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"is blue"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"ist b"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Dieser Text"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"is blue"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"ist bl"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Dieser Text"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"is blue"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"ist bla"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Dieser Text"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"is blue"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"ist blau"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", + "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"W"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wi"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie g"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie ge"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geh"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht e"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es d"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es di"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"D"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Di"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Die"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Dies"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Diese"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Dieser"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Dieser "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Dieser T"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Dieser Te"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Dieser Tex"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Dieser Text"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Dieser Text"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Dieser Text"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"is blue"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"i"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Dieser Text"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"is blue"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"is"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Dieser Text"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"is blue"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"ist"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Dieser Text"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"is blue"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"ist "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Dieser Text"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"is blue"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"ist b"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Dieser Text"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"is blue"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"ist bl"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Dieser Text"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"is blue"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"ist bla"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"},{"type":"deletion","attrs":{"id":null}}],"text":"How are you doing?"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"This text"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Wie geht es dir?"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"Dieser Text"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"deletion","attrs":{"id":null}}],"text":"is blue"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}},{"type":"insertion","attrs":{"id":null}}],"text":"ist blau"},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", ] `; exports[`agentStepToTr > Update > styles + ic in target block, add mark (paragraph) 1`] = ` [ - "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello, world!"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", + "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello, world!"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", ] `; exports[`agentStepToTr > Update > styles + ic in target block, add mark (word) 1`] = ` [ - "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"world!"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", + "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"world!"},{"type":"text","marks":[{"type":"bold"},{"type":"insertion","attrs":{"id":null}}],"text":"world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", ] `; exports[`agentStepToTr > Update > translate selection 1`] = ` [ - "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", + "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world!"}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"H"},{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"e"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"a"},{"type":"text","text":"llo, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", ] `; @@ -207,45 +207,45 @@ exports[`agentStepToTr > Update > turn paragraphs into list 1`] = ` exports[`agentStepToTr > Update > update block prop 1`] = ` [ - "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"right"},"content":[{"type":"text","text":"Hello, world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"textAlignment","previousValue":"left","newValue":"right"}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", + "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"right"},"content":[{"type":"text","text":"Hello, world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"textAlignment","previousValue":"left","newValue":"right"}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", ] `; exports[`agentStepToTr > Update > update block prop and content 1`] = ` [ - "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"right"},"content":[{"type":"text","text":"Hello, world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"textAlignment","previousValue":"left","newValue":"right"}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"right"},"content":[{"type":"text","text":"Hello, world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"textAlignment","previousValue":"left","newValue":"right"}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"right"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"W"},{"type":"text","text":", world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"textAlignment","previousValue":"left","newValue":"right"}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"right"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Wh"},{"type":"text","text":", world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"textAlignment","previousValue":"left","newValue":"right"}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"right"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Wha"},{"type":"text","text":", world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"textAlignment","previousValue":"left","newValue":"right"}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"right"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"What"},{"type":"text","text":", world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"textAlignment","previousValue":"left","newValue":"right"}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"right"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"What'"},{"type":"text","text":", world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"textAlignment","previousValue":"left","newValue":"right"}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"right"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"What's"},{"type":"text","text":", world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"textAlignment","previousValue":"left","newValue":"right"}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"right"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"What's "},{"type":"text","text":", world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"textAlignment","previousValue":"left","newValue":"right"}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"right"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"What's u"},{"type":"text","text":", world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"textAlignment","previousValue":"left","newValue":"right"}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"right"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"What's up"},{"type":"text","text":", world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"textAlignment","previousValue":"left","newValue":"right"}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", + "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"right"},"content":[{"type":"text","text":"Hello, world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"textAlignment","previousValue":"left","newValue":"right"}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"right"},"content":[{"type":"text","text":"Hello, world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"textAlignment","previousValue":"left","newValue":"right"}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"right"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"W"},{"type":"text","text":", world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"textAlignment","previousValue":"left","newValue":"right"}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"right"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Wh"},{"type":"text","text":", world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"textAlignment","previousValue":"left","newValue":"right"}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"right"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Wha"},{"type":"text","text":", world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"textAlignment","previousValue":"left","newValue":"right"}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"right"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"What"},{"type":"text","text":", world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"textAlignment","previousValue":"left","newValue":"right"}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"right"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"What'"},{"type":"text","text":", world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"textAlignment","previousValue":"left","newValue":"right"}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"right"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"What's"},{"type":"text","text":", world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"textAlignment","previousValue":"left","newValue":"right"}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"right"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"What's "},{"type":"text","text":", world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"textAlignment","previousValue":"left","newValue":"right"}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"right"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"What's u"},{"type":"text","text":", world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"textAlignment","previousValue":"left","newValue":"right"}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"right"},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"What's up"},{"type":"text","text":", world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"textAlignment","previousValue":"left","newValue":"right"}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", ] `; exports[`agentStepToTr > Update > update block type 1`] = ` [ - "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"heading","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left","level":1,"isToggleable":false},"content":[{"type":"text","text":"Hello, world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"nodeType","attrName":null,"previousValue":"paragraph","newValue":"heading"}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"level","previousValue":null,"newValue":1}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"isToggleable","previousValue":null,"newValue":false}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", + "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"heading","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left","level":1,"isToggleable":false},"content":[{"type":"text","text":"Hello, world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"nodeType","attrName":null,"previousValue":"paragraph","newValue":"heading"}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"level","previousValue":null,"newValue":1}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"isToggleable","previousValue":null,"newValue":false}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", ] `; exports[`agentStepToTr > Update > update block type and content 1`] = ` [ - "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"heading","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left","level":1,"isToggleable":false},"content":[{"type":"text","text":"Hello, world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"nodeType","attrName":null,"previousValue":"paragraph","newValue":"heading"}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"level","previousValue":null,"newValue":1}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"isToggleable","previousValue":null,"newValue":false}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"heading","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left","level":1,"isToggleable":false},"content":[{"type":"text","text":"Hello, world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"nodeType","attrName":null,"previousValue":"paragraph","newValue":"heading"}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"level","previousValue":null,"newValue":1}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"isToggleable","previousValue":null,"newValue":false}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"heading","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left","level":1,"isToggleable":false},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"W"},{"type":"text","text":", world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"nodeType","attrName":null,"previousValue":"paragraph","newValue":"heading"}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"level","previousValue":null,"newValue":1}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"isToggleable","previousValue":null,"newValue":false}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"heading","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left","level":1,"isToggleable":false},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Wh"},{"type":"text","text":", world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"nodeType","attrName":null,"previousValue":"paragraph","newValue":"heading"}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"level","previousValue":null,"newValue":1}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"isToggleable","previousValue":null,"newValue":false}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"heading","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left","level":1,"isToggleable":false},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Wha"},{"type":"text","text":", world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"nodeType","attrName":null,"previousValue":"paragraph","newValue":"heading"}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"level","previousValue":null,"newValue":1}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"isToggleable","previousValue":null,"newValue":false}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"heading","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left","level":1,"isToggleable":false},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"What"},{"type":"text","text":", world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"nodeType","attrName":null,"previousValue":"paragraph","newValue":"heading"}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"level","previousValue":null,"newValue":1}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"isToggleable","previousValue":null,"newValue":false}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"heading","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left","level":1,"isToggleable":false},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"What'"},{"type":"text","text":", world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"nodeType","attrName":null,"previousValue":"paragraph","newValue":"heading"}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"level","previousValue":null,"newValue":1}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"isToggleable","previousValue":null,"newValue":false}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"heading","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left","level":1,"isToggleable":false},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"What's"},{"type":"text","text":", world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"nodeType","attrName":null,"previousValue":"paragraph","newValue":"heading"}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"level","previousValue":null,"newValue":1}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"isToggleable","previousValue":null,"newValue":false}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"heading","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left","level":1,"isToggleable":false},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"What's "},{"type":"text","text":", world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"nodeType","attrName":null,"previousValue":"paragraph","newValue":"heading"}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"level","previousValue":null,"newValue":1}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"isToggleable","previousValue":null,"newValue":false}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"heading","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left","level":1,"isToggleable":false},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"What's u"},{"type":"text","text":", world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"nodeType","attrName":null,"previousValue":"paragraph","newValue":"heading"}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"level","previousValue":null,"newValue":1}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"isToggleable","previousValue":null,"newValue":false}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", - "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"heading","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left","level":1,"isToggleable":false},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"What's up"},{"type":"text","text":", world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"nodeType","attrName":null,"previousValue":"paragraph","newValue":"heading"}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"level","previousValue":null,"newValue":1}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"isToggleable","previousValue":null,"newValue":false}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow","class":null}}],"text":"Link."}]}]}]}]}", + "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"heading","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left","level":1,"isToggleable":false},"content":[{"type":"text","text":"Hello, world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"nodeType","attrName":null,"previousValue":"paragraph","newValue":"heading"}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"level","previousValue":null,"newValue":1}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"isToggleable","previousValue":null,"newValue":false}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "S {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"heading","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left","level":1,"isToggleable":false},"content":[{"type":"text","text":"Hello, world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"nodeType","attrName":null,"previousValue":"paragraph","newValue":"heading"}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"level","previousValue":null,"newValue":1}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"isToggleable","previousValue":null,"newValue":false}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "R {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"heading","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left","level":1,"isToggleable":false},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"W"},{"type":"text","text":", world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"nodeType","attrName":null,"previousValue":"paragraph","newValue":"heading"}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"level","previousValue":null,"newValue":1}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"isToggleable","previousValue":null,"newValue":false}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"heading","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left","level":1,"isToggleable":false},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Wh"},{"type":"text","text":", world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"nodeType","attrName":null,"previousValue":"paragraph","newValue":"heading"}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"level","previousValue":null,"newValue":1}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"isToggleable","previousValue":null,"newValue":false}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"heading","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left","level":1,"isToggleable":false},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"Wha"},{"type":"text","text":", world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"nodeType","attrName":null,"previousValue":"paragraph","newValue":"heading"}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"level","previousValue":null,"newValue":1}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"isToggleable","previousValue":null,"newValue":false}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"heading","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left","level":1,"isToggleable":false},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"What"},{"type":"text","text":", world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"nodeType","attrName":null,"previousValue":"paragraph","newValue":"heading"}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"level","previousValue":null,"newValue":1}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"isToggleable","previousValue":null,"newValue":false}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"heading","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left","level":1,"isToggleable":false},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"What'"},{"type":"text","text":", world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"nodeType","attrName":null,"previousValue":"paragraph","newValue":"heading"}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"level","previousValue":null,"newValue":1}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"isToggleable","previousValue":null,"newValue":false}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"heading","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left","level":1,"isToggleable":false},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"What's"},{"type":"text","text":", world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"nodeType","attrName":null,"previousValue":"paragraph","newValue":"heading"}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"level","previousValue":null,"newValue":1}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"isToggleable","previousValue":null,"newValue":false}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"heading","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left","level":1,"isToggleable":false},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"What's "},{"type":"text","text":", world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"nodeType","attrName":null,"previousValue":"paragraph","newValue":"heading"}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"level","previousValue":null,"newValue":1}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"isToggleable","previousValue":null,"newValue":false}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"heading","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left","level":1,"isToggleable":false},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"What's u"},{"type":"text","text":", world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"nodeType","attrName":null,"previousValue":"paragraph","newValue":"heading"}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"level","previousValue":null,"newValue":1}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"isToggleable","previousValue":null,"newValue":false}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", + "I {"type":"doc","content":[{"type":"blockGroup","content":[{"type":"blockContainer","attrs":{"id":"ref1"},"content":[{"type":"heading","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left","level":1,"isToggleable":false},"content":[{"type":"text","marks":[{"type":"deletion","attrs":{"id":null}}],"text":"Hello"},{"type":"text","marks":[{"type":"insertion","attrs":{"id":null}}],"text":"What's up"},{"type":"text","text":", world!"}],"marks":[{"type":"modification","attrs":{"id":null,"type":"nodeType","attrName":null,"previousValue":"paragraph","newValue":"heading"}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"level","previousValue":null,"newValue":1}},{"type":"modification","attrs":{"id":null,"type":"attr","attrName":"isToggleable","previousValue":null,"newValue":false}}]}]},{"type":"blockContainer","attrs":{"id":"ref2"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, "},{"type":"mention","attrs":{"user":"John Doe"}},{"type":"text","text":"! "},{"type":"text","marks":[{"type":"bold"}],"text":"How are you doing?"},{"type":"text","text":" "},{"type":"text","marks":[{"type":"textColor","attrs":{"stringValue":"blue"}}],"text":"This text is blue!"}]}]},{"type":"blockContainer","attrs":{"id":"ref3"},"content":[{"type":"paragraph","attrs":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Hello, world! "},{"type":"text","marks":[{"type":"bold"}],"text":"Bold text. "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.google.com","target":"_blank","rel":"noopener noreferrer nofollow"}}],"text":"Link."}]}]}]}]}", ] `; diff --git a/packages/xl-ai/src/prosemirror/__snapshots__/changeset.test.ts.snap b/packages/xl-ai/src/prosemirror/__snapshots__/changeset.test.ts.snap index a2f632d849..2e6d6ea8f4 100644 --- a/packages/xl-ai/src/prosemirror/__snapshots__/changeset.test.ts.snap +++ b/packages/xl-ai/src/prosemirror/__snapshots__/changeset.test.ts.snap @@ -115,7 +115,6 @@ exports[`drop mark and link 1`] = ` "marks": [ { "attrs": { - "class": null, "href": "https://www.google.com", "rel": "noopener noreferrer nofollow", "target": "_blank", @@ -249,7 +248,6 @@ exports[`drop mark and link and change text within mark 1`] = ` "marks": [ { "attrs": { - "class": null, "href": "https://www.google.com", "rel": "noopener noreferrer nofollow", "target": "_blank", diff --git a/tests/src/unit/core/formatConversion/export/__snapshots__/nodes/hardbreak/between-links.json b/tests/src/unit/core/formatConversion/export/__snapshots__/nodes/hardbreak/between-links.json index 174eeecd5b..ec5babf930 100644 --- a/tests/src/unit/core/formatConversion/export/__snapshots__/nodes/hardbreak/between-links.json +++ b/tests/src/unit/core/formatConversion/export/__snapshots__/nodes/hardbreak/between-links.json @@ -15,7 +15,6 @@ "marks": [ { "attrs": { - "class": null, "href": "https://www.website.com", "rel": "noopener noreferrer nofollow", "target": "_blank", @@ -33,7 +32,6 @@ "marks": [ { "attrs": { - "class": null, "href": "https://www.website2.com", "rel": "noopener noreferrer nofollow", "target": "_blank", diff --git a/tests/src/unit/core/formatConversion/export/__snapshots__/nodes/hardbreak/link.json b/tests/src/unit/core/formatConversion/export/__snapshots__/nodes/hardbreak/link.json index 4ae3cc342b..33be9006e7 100644 --- a/tests/src/unit/core/formatConversion/export/__snapshots__/nodes/hardbreak/link.json +++ b/tests/src/unit/core/formatConversion/export/__snapshots__/nodes/hardbreak/link.json @@ -15,7 +15,6 @@ "marks": [ { "attrs": { - "class": null, "href": "https://www.website.com", "rel": "noopener noreferrer nofollow", "target": "_blank", @@ -33,7 +32,6 @@ "marks": [ { "attrs": { - "class": null, "href": "https://www.website.com", "rel": "noopener noreferrer nofollow", "target": "_blank", diff --git a/tests/src/unit/core/formatConversion/export/__snapshots__/nodes/link/adjacent.json b/tests/src/unit/core/formatConversion/export/__snapshots__/nodes/link/adjacent.json index d546271743..928b37b152 100644 --- a/tests/src/unit/core/formatConversion/export/__snapshots__/nodes/link/adjacent.json +++ b/tests/src/unit/core/formatConversion/export/__snapshots__/nodes/link/adjacent.json @@ -15,7 +15,6 @@ "marks": [ { "attrs": { - "class": null, "href": "https://www.website.com", "rel": "noopener noreferrer nofollow", "target": "_blank", @@ -30,7 +29,6 @@ "marks": [ { "attrs": { - "class": null, "href": "https://www.website2.com", "rel": "noopener noreferrer nofollow", "target": "_blank", diff --git a/tests/src/unit/core/formatConversion/export/__snapshots__/nodes/link/basic.json b/tests/src/unit/core/formatConversion/export/__snapshots__/nodes/link/basic.json index 3964520c13..f2bc979545 100644 --- a/tests/src/unit/core/formatConversion/export/__snapshots__/nodes/link/basic.json +++ b/tests/src/unit/core/formatConversion/export/__snapshots__/nodes/link/basic.json @@ -15,7 +15,6 @@ "marks": [ { "attrs": { - "class": null, "href": "https://www.website.com", "rel": "noopener noreferrer nofollow", "target": "_blank", diff --git a/tests/src/unit/core/formatConversion/export/__snapshots__/nodes/link/styled.json b/tests/src/unit/core/formatConversion/export/__snapshots__/nodes/link/styled.json index 84c3a57c95..e55e628ec4 100644 --- a/tests/src/unit/core/formatConversion/export/__snapshots__/nodes/link/styled.json +++ b/tests/src/unit/core/formatConversion/export/__snapshots__/nodes/link/styled.json @@ -18,7 +18,6 @@ }, { "attrs": { - "class": null, "href": "https://www.website.com", "rel": "noopener noreferrer nofollow", "target": "_blank", @@ -33,7 +32,6 @@ "marks": [ { "attrs": { - "class": null, "href": "https://www.website.com", "rel": "noopener noreferrer nofollow", "target": "_blank", From 9079aa8759000568db3e97086e8dab47fdfa5b8a Mon Sep 17 00:00:00 2001 From: Nick the Sick Date: Fri, 3 Apr 2026 15:17:59 +0200 Subject: [PATCH 4/6] fix: resolve lint errors in Link extension files - Fix no-useless-escape warnings in linkDetector.ts regex patterns - Fix curly brace requirements in linkDetector.ts and link.ts - Fix prefer-const in linkDetector.ts - Replace require() with ES imports in link.test.ts - Fix jest/no-conditional-expect by using view.someProp for paste tests Co-Authored-By: Claude Opus 4.6 (1M context) --- .../Link/helpers/linkDetector.ts | 36 +++++--- .../tiptap-extensions/Link/link.test.ts | 92 +++++++------------ .../extensions/tiptap-extensions/Link/link.ts | 4 +- 3 files changed, 59 insertions(+), 73 deletions(-) diff --git a/packages/core/src/extensions/tiptap-extensions/Link/helpers/linkDetector.ts b/packages/core/src/extensions/tiptap-extensions/Link/helpers/linkDetector.ts index d0e56e31e6..72de06415b 100644 --- a/packages/core/src/extensions/tiptap-extensions/Link/helpers/linkDetector.ts +++ b/packages/core/src/extensions/tiptap-extensions/Link/helpers/linkDetector.ts @@ -49,12 +49,12 @@ const MAILTO_RE = /mailto:[^\s]+/g; // Bare email addresses: user@domain.tld const EMAIL_RE = - /[a-zA-Z0-9._%+\-]+@(?:[a-zA-Z0-9](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}/g; + /[a-zA-Z0-9._%+-]+@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}/g; // Schemeless URLs: domain.tld with optional port and path // Hostname: one or more labels separated by dots, TLD is alpha-only 2+ chars const SCHEMELESS_RE = - /(?:[a-zA-Z0-9](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}(?::\d{1,5})?(?:\/[^\s]*)?/g; + /(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}(?::\d{1,5})?(?:\/[^\s]*)?/g; // --------------------------------------------------------------------------- // Post-processing helpers @@ -74,7 +74,9 @@ function trimTrailing(value: string): string { // Trim trailing punctuation chars const before = v; v = v.replace(TRAILING_PUNCT, ""); - if (v !== before) changed = true; + if (v !== before) { + changed = true; + } // Trim unbalanced closing brackets from the end for (const [open, close] of [ @@ -100,7 +102,9 @@ function trimTrailing(value: string): string { function countChar(str: string, ch: string): number { let count = 0; for (let i = 0; i < str.length; i++) { - if (str[i] === ch) count++; + if (str[i] === ch) { + count++; + } } return count; } @@ -155,7 +159,7 @@ function buildHref( if (type === "email") { return "mailto:" + value; } - if (/^[a-zA-Z][a-zA-Z0-9+.\-]*:\/\//.test(value) || /^mailto:/i.test(value)) { + if (/^[a-zA-Z][a-zA-Z0-9+.-]*:\/\//.test(value) || /^mailto:/i.test(value)) { // Already has a protocol return value; } @@ -185,7 +189,9 @@ export function findLinks( text: string, options?: FindOptions ): LinkMatch[] { - if (!text) return []; + if (!text) { + return []; + } const defaultProtocol = options?.defaultProtocol || "http"; const rawMatches: RawMatch[] = []; @@ -246,22 +252,28 @@ export function findLinks( // Post-process each match const results: LinkMatch[] = []; for (const raw of deduped) { - let value = trimTrailing(raw.value); - if (!value) continue; + const value = trimTrailing(raw.value); + if (!value) { + continue; + } const start = raw.start; const end = start + value.length; // For schemeless URLs, validate TLD - if (raw.type === "url" && !/^[a-zA-Z][a-zA-Z0-9+.\-]*:/.test(value)) { + if (raw.type === "url" && !/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(value)) { const hostname = extractHostname(value); - if (!isValidTld(hostname)) continue; + if (!isValidTld(hostname)) { + continue; + } } // For emails, validate TLD if (raw.type === "email") { const hostname = value.split("@")[1]; - if (!isValidTld(hostname)) continue; + if (!isValidTld(hostname)) { + continue; + } } const href = buildHref(value, raw.type, defaultProtocol); @@ -359,7 +371,7 @@ function isSingleUrl(text: string): boolean { // Schemeless URLs: hostname.tld with optional port and path const schemelessFull = - /^(?:[a-zA-Z0-9](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?\.)+([a-zA-Z]{2,})(?::\d{1,5})?(?:\/[^\s]*)?$/; + /^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+([a-zA-Z]{2,})(?::\d{1,5})?(?:\/[^\s]*)?$/; const match = text.match(schemelessFull); if (match) { const tld = match[1].toLowerCase(); diff --git a/packages/core/src/extensions/tiptap-extensions/Link/link.test.ts b/packages/core/src/extensions/tiptap-extensions/Link/link.test.ts index 221f5c74e1..ea6925eab0 100644 --- a/packages/core/src/extensions/tiptap-extensions/Link/link.test.ts +++ b/packages/core/src/extensions/tiptap-extensions/Link/link.test.ts @@ -1,4 +1,6 @@ import { afterEach, describe, expect, it } from "vitest"; +import { TextSelection } from "@tiptap/pm/state"; +import { Slice, Fragment } from "@tiptap/pm/model"; import { BlockNoteEditor } from "../../../editor/BlockNoteEditor.js"; import { findLinks, tokenizeLink } from "./helpers/linkDetector.js"; @@ -733,37 +735,26 @@ describe("Link extension paste handler behavior", () => { }); // Create selection over the text - const { TextSelection } = require("@tiptap/pm/state"); const tr = view.state.tr.setSelection( TextSelection.create(view.state.doc, textStart, textEnd) ); view.dispatch(tr); - // Simulate paste via the paste handler plugin - const pastePlugin = view.state.plugins.find( - (p) => (p as any).key === "handlePasteLink$" - ); - - if (pastePlugin && pastePlugin.props.handlePaste) { - // Create a minimal slice that looks like pasted URL text - const { Slice, Fragment } = require("@tiptap/pm/model"); - const textNode = view.state.schema.text("https://example.com"); - const slice = new Slice(Fragment.from(textNode), 0, 0); + // Create a minimal slice that looks like pasted URL text + const textNode = view.state.schema.text("https://example.com"); + const slice = new Slice(Fragment.from(textNode), 0, 0); - const result = (pastePlugin.props.handlePaste as any)( - view, - new ClipboardEvent("paste"), - slice - ); + // Dispatch paste through the editor view + const handled = view.someProp("handlePaste", (f) => + f(view, new ClipboardEvent("paste"), slice) + ); - if (result) { - // Check that link mark was applied - const links = getLinksInDocument(editor); - expect(links).toHaveLength(1); - expect(links[0].href).toBe("https://example.com"); - expect(links[0].text).toBe("click here"); - } - } + expect(handled).toBeTruthy(); + // Check that link mark was applied + const links = getLinksInDocument(editor); + expect(links).toHaveLength(1); + expect(links[0].href).toBe("https://example.com"); + expect(links[0].text).toBe("click here"); }); it("does not apply link when pasting non-URL text over selection", () => { @@ -789,34 +780,24 @@ describe("Link extension paste handler behavior", () => { } }); - const { TextSelection } = require("@tiptap/pm/state"); const tr = view.state.tr.setSelection( TextSelection.create(view.state.doc, textStart, textEnd) ); view.dispatch(tr); - const pastePlugin = view.state.plugins.find( - (p) => (p as any).key === "handlePasteLink$" - ); - - if (pastePlugin && pastePlugin.props.handlePaste) { - const { Slice, Fragment } = require("@tiptap/pm/model"); - const textNode = view.state.schema.text("not a url"); - const slice = new Slice(Fragment.from(textNode), 0, 0); + const textNode = view.state.schema.text("not a url"); + const slice = new Slice(Fragment.from(textNode), 0, 0); - const result = (pastePlugin.props.handlePaste as any)( - view, - new ClipboardEvent("paste"), - slice - ); + const handled = view.someProp("handlePaste", (f) => + f(view, new ClipboardEvent("paste"), slice) + ); - // Should return false (not handled) - expect(result).toBe(false); + // Should not be handled (not a URL) + expect(handled).toBeFalsy(); - // No links should exist - const links = getLinksInDocument(editor); - expect(links).toHaveLength(0); - } + // No links should exist + const links = getLinksInDocument(editor); + expect(links).toHaveLength(0); }); it("does not apply link when pasting URL with empty selection", () => { @@ -833,23 +814,14 @@ describe("Link extension paste handler behavior", () => { editor.setTextCursorPosition("test-block", "end"); const view = editor._tiptapEditor.view; - const pastePlugin = view.state.plugins.find( - (p) => (p as any).key === "handlePasteLink$" - ); - - if (pastePlugin && pastePlugin.props.handlePaste) { - const { Slice, Fragment } = require("@tiptap/pm/model"); - const textNode = view.state.schema.text("https://example.com"); - const slice = new Slice(Fragment.from(textNode), 0, 0); + const textNode = view.state.schema.text("https://example.com"); + const slice = new Slice(Fragment.from(textNode), 0, 0); - const result = (pastePlugin.props.handlePaste as any)( - view, - new ClipboardEvent("paste"), - slice - ); + const handled = view.someProp("handlePaste", (f) => + f(view, new ClipboardEvent("paste"), slice) + ); - // Should return false because selection is empty - expect(result).toBe(false); - } + // Should not be handled because selection is empty + expect(handled).toBeFalsy(); }); }); diff --git a/packages/core/src/extensions/tiptap-extensions/Link/link.ts b/packages/core/src/extensions/tiptap-extensions/Link/link.ts index d83d91d475..c0c1811d4f 100644 --- a/packages/core/src/extensions/tiptap-extensions/Link/link.ts +++ b/packages/core/src/extensions/tiptap-extensions/Link/link.ts @@ -21,7 +21,9 @@ const ALLOWED_URI_REGEX = /^(?:(?:http|https|ftp|ftps|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z0-9+.\-]+(?:[^a-z+.\-:]|$))/i; export function isAllowedUri(uri: string | undefined): boolean { - if (!uri) return true; + if (!uri) { + return true; + } const cleaned = uri.replace(UNICODE_WHITESPACE_REGEX_GLOBAL, ""); return ALLOWED_URI_REGEX.test(cleaned); } From 1e7e92cac89ae02b2ed7c1c0065ab38ad90237e3 Mon Sep 17 00:00:00 2001 From: Nick the Sick Date: Fri, 3 Apr 2026 15:25:45 +0200 Subject: [PATCH 5/6] fix: address CodeRabbit review feedback in linkDetector MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fix double mailto: prefix for mailto: URLs in linkToken() — values starting with "mailto:" are now classified as "url" not "email" - Support schemeless URLs with ? or # suffixes (e.g. example.com?x=1, example.com#frag) in both SCHEMELESS_RE and isSingleUrl() Co-Authored-By: Claude Opus 4.6 (1M context) --- .../tiptap-extensions/Link/helpers/linkDetector.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/core/src/extensions/tiptap-extensions/Link/helpers/linkDetector.ts b/packages/core/src/extensions/tiptap-extensions/Link/helpers/linkDetector.ts index 72de06415b..e678a44c50 100644 --- a/packages/core/src/extensions/tiptap-extensions/Link/helpers/linkDetector.ts +++ b/packages/core/src/extensions/tiptap-extensions/Link/helpers/linkDetector.ts @@ -54,7 +54,7 @@ const EMAIL_RE = // Schemeless URLs: domain.tld with optional port and path // Hostname: one or more labels separated by dots, TLD is alpha-only 2+ chars const SCHEMELESS_RE = - /(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}(?::\d{1,5})?(?:\/[^\s]*)?/g; + /(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}(?::\d{1,5})?(?:[/?#][^\s]*)?/g; // --------------------------------------------------------------------------- // Post-processing helpers @@ -371,7 +371,7 @@ function isSingleUrl(text: string): boolean { // Schemeless URLs: hostname.tld with optional port and path const schemelessFull = - /^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+([a-zA-Z]{2,})(?::\d{1,5})?(?:\/[^\s]*)?$/; + /^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+([a-zA-Z]{2,})(?::\d{1,5})?(?:[/?#][^\s]*)?$/; const match = text.match(schemelessFull); if (match) { const tld = match[1].toLowerCase(); @@ -390,7 +390,10 @@ function linkToken( end: number, defaultProtocol: string ): LinkMatch { - const type = value.includes("@") && !value.includes("://") ? "email" : "url"; + const type = + value.includes("@") && !value.includes("://") && !value.startsWith("mailto:") + ? "email" + : "url"; return { type, value, From 28b2a44101f53c279220619bbb85120766e457e1 Mon Sep 17 00:00:00 2001 From: Nick the Sick Date: Sat, 4 Apr 2026 12:21:17 +0200 Subject: [PATCH 6/6] fix: pin better-auth to ~1.4.x to fix build:site The ^1.4.15 specifier allowed better-auth 1.5.6 to be installed, which removed the createAuthMiddleware export and broke the docs build. Co-Authored-By: Claude Opus 4.6 (1M context) --- docs/package.json | 2 +- pnpm-lock.yaml | 158 +++++++++++----------------------------------- 2 files changed, 37 insertions(+), 123 deletions(-) diff --git a/docs/package.json b/docs/package.json index d29fcc0ff4..0ef70eacfa 100644 --- a/docs/package.json +++ b/docs/package.json @@ -72,7 +72,7 @@ "@vercel/analytics": "^1.6.1", "@y-sweet/react": "^0.6.3", "ai": "^6.0.5", - "better-auth": "^1.4.15", + "better-auth": "~1.4.15", "better-sqlite3": "^12.6.2", "class-variance-authority": "^0.7.1", "framer-motion": "^12.26.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 22627b6bcd..85904bfb09 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -161,7 +161,7 @@ importers: version: 3.1.18 '@polar-sh/better-auth': specifier: ^1.6.4 - version: 1.8.3(@polar-sh/sdk@0.42.5)(@stripe/react-stripe-js@4.0.2(@stripe/stripe-js@7.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@stripe/stripe-js@7.9.0)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(better-auth@1.5.6(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(next@16.2.2(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(@playwright/test@1.51.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(pg@8.20.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(vitest@2.1.9(@types/node@25.5.0)(jsdom@25.0.1(canvas@2.11.2))(lightningcss@1.32.0)(msw@2.11.5(@types/node@25.5.0)(typescript@5.9.3))(terser@5.46.1)))(react-dom@19.2.4(react@19.2.4))(react-is@19.2.4)(react@19.2.4)(redux@5.0.1)(zod@4.3.6) + version: 1.8.3(@polar-sh/sdk@0.42.5)(@stripe/react-stripe-js@4.0.2(@stripe/stripe-js@7.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@stripe/stripe-js@7.9.0)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(better-auth@1.4.22(better-sqlite3@12.8.0)(next@16.2.2(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(@playwright/test@1.51.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(pg@8.20.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(vitest@2.1.9(@types/node@25.5.0)(jsdom@25.0.1(canvas@2.11.2))(lightningcss@1.32.0)(msw@2.11.5(@types/node@25.5.0)(typescript@5.9.3))(terser@5.46.1)))(react-dom@19.2.4(react@19.2.4))(react-is@19.2.4)(react@19.2.4)(redux@5.0.1)(zod@4.3.6) '@polar-sh/sdk': specifier: ^0.42.2 version: 0.42.5 @@ -238,8 +238,8 @@ importers: specifier: 6.0.5 version: 6.0.5(zod@4.3.6) better-auth: - specifier: ^1.4.15 - version: 1.5.6(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(next@16.2.2(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(@playwright/test@1.51.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(pg@8.20.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(vitest@2.1.9(@types/node@25.5.0)(jsdom@25.0.1(canvas@2.11.2))(lightningcss@1.32.0)(msw@2.11.5(@types/node@25.5.0)(typescript@5.9.3))(terser@5.46.1)) + specifier: ~1.4.15 + version: 1.4.22(better-sqlite3@12.8.0)(next@16.2.2(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(@playwright/test@1.51.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(pg@8.20.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(vitest@2.1.9(@types/node@25.5.0)(jsdom@25.0.1(canvas@2.11.2))(lightningcss@1.32.0)(msw@2.11.5(@types/node@25.5.0)(typescript@5.9.3))(terser@5.46.1)) better-sqlite3: specifier: ^12.6.2 version: 12.8.0 @@ -6907,74 +6907,23 @@ packages: '@base2/pretty-print-object@1.0.2': resolution: {integrity: sha512-rBha0UDfV7EmBRjWrGG7Cpwxg8WomPlo0q+R2so47ZFf9wy4YKJzLuHcVa0UGFjdcLZj/4F/1FNC46GIQhe7sA==} - '@better-auth/core@1.5.6': - resolution: {integrity: sha512-Ez9DZdIMFyxHremmoLz1emFPGNQomDC1jqqBPnZ6Ci+6TiGN3R9w/Y03cJn6I8r1ycKgOzeVMZtJ/erOZ27Gsw==} + '@better-auth/core@1.4.22': + resolution: {integrity: sha512-l20Ia10lI9iGL+bkjggamQP9lQuiAeB/EYfEx5EQ4AcPrLojG6Doc0UDw5VZM66VXcMGs3bgC8P7WiaJv4Walg==} peerDependencies: - '@better-auth/utils': 0.3.1 + '@better-auth/utils': 0.3.0 '@better-fetch/fetch': 1.1.21 - '@cloudflare/workers-types': '>=4' - '@opentelemetry/api': ^1.9.0 - better-call: 1.3.2 + better-call: 1.1.8 jose: ^6.1.0 kysely: ^0.28.5 nanostores: ^1.0.1 - peerDependenciesMeta: - '@cloudflare/workers-types': - optional: true - - '@better-auth/drizzle-adapter@1.5.6': - resolution: {integrity: sha512-VfFFmaoFw3ug12SiSuIwzrMoHyIVmkMGWm9gZ4sXdYYVX4HboCL4m3fjzOhppcmK5OGatRuU+N1UX6wxCITcXw==} - peerDependencies: - '@better-auth/core': 1.5.6 - '@better-auth/utils': ^0.3.0 - drizzle-orm: '>=0.41.0' - peerDependenciesMeta: - drizzle-orm: - optional: true - - '@better-auth/kysely-adapter@1.5.6': - resolution: {integrity: sha512-Fnf+h8WVKtw6lEOmVmiVVzDf3shJtM60AYf9XTnbdCeUd6MxN/KnaJZpkgtYnRs7a+nwtkVB+fg4lGETebGFXQ==} - peerDependencies: - '@better-auth/core': 1.5.6 - '@better-auth/utils': ^0.3.0 - kysely: ^0.27.0 || ^0.28.0 - peerDependenciesMeta: - kysely: - optional: true - '@better-auth/memory-adapter@1.5.6': - resolution: {integrity: sha512-rS7ZsrIl5uvloUgNN0u9LOZJMMXnsZXVdUZ3MrTBKWM2KpoJjzPr9yN3Szyma5+0V7SltnzSGHPkYj2bEzzmlA==} + '@better-auth/telemetry@1.4.22': + resolution: {integrity: sha512-ltoRysWQIbVlSgmVvn2EiFDkmLmtLAs9IVBvvwavGNFAklE7UcSlzR4BM5fllx5Vax927sou9MvZgUhgHRI62A==} peerDependencies: - '@better-auth/core': 1.5.6 - '@better-auth/utils': ^0.3.0 - - '@better-auth/mongo-adapter@1.5.6': - resolution: {integrity: sha512-6+M3MS2mor8fTUV3EI1FBLP0cs6QfbN+Ovx9+XxR/GdfKIBoNFzmPEPRbdGt+ft6PvrITsUm+T70+kkHgVSP6w==} - peerDependencies: - '@better-auth/core': 1.5.6 - '@better-auth/utils': ^0.3.0 - mongodb: ^6.0.0 || ^7.0.0 - peerDependenciesMeta: - mongodb: - optional: true - - '@better-auth/prisma-adapter@1.5.6': - resolution: {integrity: sha512-UxY9vQJs1Tt+O+T2YQnseDMlWmUSQvFZSBb5YiFRg7zcm+TEzujh4iX2/csA0YiZptLheovIuVWTP9nriewEBA==} - peerDependencies: - '@better-auth/core': 1.5.6 - '@better-auth/utils': ^0.3.0 - '@prisma/client': ^5.0.0 || ^6.0.0 || ^7.0.0 - prisma: ^5.0.0 || ^6.0.0 || ^7.0.0 - peerDependenciesMeta: - '@prisma/client': - optional: true - prisma: - optional: true + '@better-auth/core': 1.4.22 - '@better-auth/telemetry@1.5.6': - resolution: {integrity: sha512-yXC7NSxnIFlxDkGdpD7KA+J9nqIQAPCJKe77GoaC5bWoe/DALo1MYorZfTgOafS7wrslNtsPT4feV/LJi1ubqQ==} - peerDependencies: - '@better-auth/core': 1.5.6 + '@better-auth/utils@0.3.0': + resolution: {integrity: sha512-W+Adw6ZA6mgvnSnhOki270rwJ42t4XzSK6YWGF//BbVXL6SwCLWfyzBc1lN2m/4RM28KubdBKQ4X5VMoLRNPQw==} '@better-auth/utils@0.3.1': resolution: {integrity: sha512-+CGp4UmZSUrHHnpHhLPYu6cV+wSUSvVbZbNykxhUDocpVNTo9uFFxw/NqJlh1iC4wQ9HKKWGCKuZ5wUgS0v6Kg==} @@ -11353,8 +11302,8 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - better-auth@1.5.6: - resolution: {integrity: sha512-QSpJTqaT1XVfWRQe/fm3PgeuwOIlz1nWX/Dx7nsHStJ382bLzmDbQk2u7IT0IJ6wS5SRxfqEE1Ev9TXontgyAQ==} + better-auth@1.4.22: + resolution: {integrity: sha512-CXQ7ZLDkf/I9iaVTNuejJ7FlWal50hRPIv1n0lqMipvthEoMx+2RQyNXUvzGRjltSe5d9rcZPI3IxdtS1A5+YA==} peerDependencies: '@lynx-js/react': '*' '@prisma/client': ^5.0.0 || ^6.0.0 || ^7.0.0 @@ -11415,8 +11364,8 @@ packages: vue: optional: true - better-call@1.3.2: - resolution: {integrity: sha512-4cZIfrerDsNTn3cm+MhLbUePN0gdwkhSXEuG7r/zuQ8c/H7iU0/jSK5TD3FW7U0MgKHce/8jGpPYNO4Ve+4NBw==} + better-call@1.1.8: + resolution: {integrity: sha512-XMQ2rs6FNXasGNfMjzbyroSwKwYbZ/T3IxruSS6U2MJRsSYh3wYtG3o6H00ZlKZ/C/UPOAD97tqgQJNsxyeTXw==} peerDependencies: zod: ^4.0.0 peerDependenciesMeta: @@ -15230,8 +15179,8 @@ packages: set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - set-cookie-parser@3.1.0: - resolution: {integrity: sha512-kjnC1DXBHcxaOaOXBHBeRtltsDG2nUiUni+jP92M9gYdW12rsmx92UsfpH7o5tDRs7I1ZZPSQJQGv3UaRfCiuw==} + set-cookie-parser@2.7.2: + resolution: {integrity: sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==} set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} @@ -17842,52 +17791,25 @@ snapshots: '@base2/pretty-print-object@1.0.2': {} - '@better-auth/core@1.5.6(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0)': + '@better-auth/core@1.4.22(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.21)(better-call@1.1.8(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0)': dependencies: - '@better-auth/utils': 0.3.1 + '@better-auth/utils': 0.3.0 '@better-fetch/fetch': 1.1.21 - '@opentelemetry/api': 1.9.1 - '@opentelemetry/semantic-conventions': 1.40.0 '@standard-schema/spec': 1.1.0 - better-call: 1.3.2(zod@4.3.6) + better-call: 1.1.8(zod@4.3.6) jose: 6.2.2 kysely: 0.28.15 nanostores: 1.2.0 zod: 4.3.6 - '@better-auth/drizzle-adapter@1.5.6(@better-auth/core@1.5.6(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0))(@better-auth/utils@0.3.1)': - dependencies: - '@better-auth/core': 1.5.6(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0) - '@better-auth/utils': 0.3.1 - - '@better-auth/kysely-adapter@1.5.6(@better-auth/core@1.5.6(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0))(@better-auth/utils@0.3.1)(kysely@0.28.15)': - dependencies: - '@better-auth/core': 1.5.6(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0) - '@better-auth/utils': 0.3.1 - optionalDependencies: - kysely: 0.28.15 - - '@better-auth/memory-adapter@1.5.6(@better-auth/core@1.5.6(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0))(@better-auth/utils@0.3.1)': + '@better-auth/telemetry@1.4.22(@better-auth/core@1.4.22(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.21)(better-call@1.1.8(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0))': dependencies: - '@better-auth/core': 1.5.6(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0) - '@better-auth/utils': 0.3.1 - - '@better-auth/mongo-adapter@1.5.6(@better-auth/core@1.5.6(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0))(@better-auth/utils@0.3.1)': - dependencies: - '@better-auth/core': 1.5.6(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0) - '@better-auth/utils': 0.3.1 - - '@better-auth/prisma-adapter@1.5.6(@better-auth/core@1.5.6(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0))(@better-auth/utils@0.3.1)': - dependencies: - '@better-auth/core': 1.5.6(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0) - '@better-auth/utils': 0.3.1 - - '@better-auth/telemetry@1.5.6(@better-auth/core@1.5.6(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0))': - dependencies: - '@better-auth/core': 1.5.6(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0) - '@better-auth/utils': 0.3.1 + '@better-auth/core': 1.4.22(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.21)(better-call@1.1.8(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0) + '@better-auth/utils': 0.3.0 '@better-fetch/fetch': 1.1.21 + '@better-auth/utils@0.3.0': {} + '@better-auth/utils@0.3.1': {} '@better-fetch/fetch@1.1.21': {} @@ -19489,11 +19411,11 @@ snapshots: dependencies: playwright: 1.51.1 - '@polar-sh/better-auth@1.8.3(@polar-sh/sdk@0.42.5)(@stripe/react-stripe-js@4.0.2(@stripe/stripe-js@7.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@stripe/stripe-js@7.9.0)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(better-auth@1.5.6(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(next@16.2.2(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(@playwright/test@1.51.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(pg@8.20.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(vitest@2.1.9(@types/node@25.5.0)(jsdom@25.0.1(canvas@2.11.2))(lightningcss@1.32.0)(msw@2.11.5(@types/node@25.5.0)(typescript@5.9.3))(terser@5.46.1)))(react-dom@19.2.4(react@19.2.4))(react-is@19.2.4)(react@19.2.4)(redux@5.0.1)(zod@4.3.6)': + '@polar-sh/better-auth@1.8.3(@polar-sh/sdk@0.42.5)(@stripe/react-stripe-js@4.0.2(@stripe/stripe-js@7.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@stripe/stripe-js@7.9.0)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(better-auth@1.4.22(better-sqlite3@12.8.0)(next@16.2.2(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(@playwright/test@1.51.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(pg@8.20.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(vitest@2.1.9(@types/node@25.5.0)(jsdom@25.0.1(canvas@2.11.2))(lightningcss@1.32.0)(msw@2.11.5(@types/node@25.5.0)(typescript@5.9.3))(terser@5.46.1)))(react-dom@19.2.4(react@19.2.4))(react-is@19.2.4)(react@19.2.4)(redux@5.0.1)(zod@4.3.6)': dependencies: '@polar-sh/checkout': 0.2.0(@stripe/react-stripe-js@4.0.2(@stripe/stripe-js@7.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@stripe/stripe-js@7.9.0)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react-is@19.2.4)(react@19.2.4)(redux@5.0.1) '@polar-sh/sdk': 0.42.5 - better-auth: 1.5.6(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(next@16.2.2(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(@playwright/test@1.51.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(pg@8.20.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(vitest@2.1.9(@types/node@25.5.0)(jsdom@25.0.1(canvas@2.11.2))(lightningcss@1.32.0)(msw@2.11.5(@types/node@25.5.0)(typescript@5.9.3))(terser@5.46.1)) + better-auth: 1.4.22(better-sqlite3@12.8.0)(next@16.2.2(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(@playwright/test@1.51.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(pg@8.20.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(vitest@2.1.9(@types/node@25.5.0)(jsdom@25.0.1(canvas@2.11.2))(lightningcss@1.32.0)(msw@2.11.5(@types/node@25.5.0)(typescript@5.9.3))(terser@5.46.1)) zod: 4.3.6 transitivePeerDependencies: - '@stripe/react-stripe-js' @@ -22595,20 +22517,15 @@ snapshots: baseline-browser-mapping@2.10.13: {} - better-auth@1.5.6(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(next@16.2.2(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(@playwright/test@1.51.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(pg@8.20.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(vitest@2.1.9(@types/node@25.5.0)(jsdom@25.0.1(canvas@2.11.2))(lightningcss@1.32.0)(msw@2.11.5(@types/node@25.5.0)(typescript@5.9.3))(terser@5.46.1)): + better-auth@1.4.22(better-sqlite3@12.8.0)(next@16.2.2(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(@playwright/test@1.51.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(pg@8.20.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(vitest@2.1.9(@types/node@25.5.0)(jsdom@25.0.1(canvas@2.11.2))(lightningcss@1.32.0)(msw@2.11.5(@types/node@25.5.0)(typescript@5.9.3))(terser@5.46.1)): dependencies: - '@better-auth/core': 1.5.6(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0) - '@better-auth/drizzle-adapter': 1.5.6(@better-auth/core@1.5.6(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0))(@better-auth/utils@0.3.1) - '@better-auth/kysely-adapter': 1.5.6(@better-auth/core@1.5.6(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0))(@better-auth/utils@0.3.1)(kysely@0.28.15) - '@better-auth/memory-adapter': 1.5.6(@better-auth/core@1.5.6(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0))(@better-auth/utils@0.3.1) - '@better-auth/mongo-adapter': 1.5.6(@better-auth/core@1.5.6(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0))(@better-auth/utils@0.3.1) - '@better-auth/prisma-adapter': 1.5.6(@better-auth/core@1.5.6(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0))(@better-auth/utils@0.3.1) - '@better-auth/telemetry': 1.5.6(@better-auth/core@1.5.6(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(better-call@1.3.2(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0)) - '@better-auth/utils': 0.3.1 + '@better-auth/core': 1.4.22(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.21)(better-call@1.1.8(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0) + '@better-auth/telemetry': 1.4.22(@better-auth/core@1.4.22(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.21)(better-call@1.1.8(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0)) + '@better-auth/utils': 0.3.0 '@better-fetch/fetch': 1.1.21 '@noble/ciphers': 2.1.1 '@noble/hashes': 2.0.1 - better-call: 1.3.2(zod@4.3.6) + better-call: 1.1.8(zod@4.3.6) defu: 6.1.6 jose: 6.2.2 kysely: 0.28.15 @@ -22621,16 +22538,13 @@ snapshots: react: 19.2.4 react-dom: 19.2.4(react@19.2.4) vitest: 2.1.9(@types/node@25.5.0)(jsdom@25.0.1(canvas@2.11.2))(lightningcss@1.32.0)(msw@2.11.5(@types/node@25.5.0)(typescript@5.9.3))(terser@5.46.1) - transitivePeerDependencies: - - '@cloudflare/workers-types' - - '@opentelemetry/api' - better-call@1.3.2(zod@4.3.6): + better-call@1.1.8(zod@4.3.6): dependencies: '@better-auth/utils': 0.3.1 '@better-fetch/fetch': 1.1.21 rou3: 0.7.12 - set-cookie-parser: 3.1.0 + set-cookie-parser: 2.7.2 optionalDependencies: zod: 4.3.6 @@ -27324,7 +27238,7 @@ snapshots: set-blocking@2.0.0: optional: true - set-cookie-parser@3.1.0: {} + set-cookie-parser@2.7.2: {} set-function-length@1.2.2: dependencies: