* Tiptap3 migration - WIP * fix collaboration * remove unused code * fix flicker * disable duplicate extensions * update tiptap version * Switch to useEditorState - Set shouldRerenderOnTransaction to false * fix editable state * add tippyoptions for reference * merge main * tiptap 3.6.1 * fix bubble menu * fix converter * fix menus * fix collaboration caret css * fix: Set `isInitialized` to force immediate react node view rendering * feat: Migrate tippy.js menus to Floating UI * feat: Update collaboration connection for HocusPocus v3 * fix: Connect/disconnect websocketProvider * cleanup * cleanup * feat: Improved placeholder and upload handling for images * feat: Improved placeholder and upload handling for videos * refactor: Image node and view clean-up * feat: Improved placeholder and upload handling for attachments * fix: Video view styles * fix: Transaction handling on asset upload * fix: Use imageDimensionsFromStream * feat: Multiple file upload, improved placeholders, local previews * fix: Drag & drop, paste upload * fix: Allow media as attachment * * add skeleton pulse animation * add translation strings * fix attachment view responsiveness * fix collab connection status display * Tiptap v3.17.0 * fix suggestion menu exit bug * fix search shortcut * fix history editor css * tiptap 3.17.1 --------- Co-authored-by: Arek Nawo <areknawo@areknawo.com>
43 lines
1.3 KiB
TypeScript
43 lines
1.3 KiB
TypeScript
import { TableCell as TiptapTableCell } from "@tiptap/extension-table";
|
|
|
|
export const TableCell = TiptapTableCell.extend({
|
|
name: "tableCell",
|
|
content:
|
|
"(paragraph | heading | bulletList | orderedList | taskList | blockquote | callout | image | video | attachment | mathBlock | details | codeBlock)+",
|
|
|
|
addAttributes() {
|
|
return {
|
|
...this.parent?.(),
|
|
backgroundColor: {
|
|
default: null,
|
|
parseHTML: (element) =>
|
|
element.style.backgroundColor ||
|
|
element.getAttribute("data-background-color") ||
|
|
null,
|
|
renderHTML: (attributes) => {
|
|
if (!attributes.backgroundColor) {
|
|
return {};
|
|
}
|
|
return {
|
|
style: `background-color: ${attributes.backgroundColor}`,
|
|
"data-background-color": attributes.backgroundColor,
|
|
};
|
|
},
|
|
},
|
|
backgroundColorName: {
|
|
default: null,
|
|
parseHTML: (element) =>
|
|
element.getAttribute("data-background-color-name") || null,
|
|
renderHTML: (attributes) => {
|
|
if (!attributes.backgroundColorName) {
|
|
return {};
|
|
}
|
|
return {
|
|
"data-background-color-name":
|
|
attributes.backgroundColorName.toLowerCase(),
|
|
};
|
|
},
|
|
},
|
|
};
|
|
},
|
|
});
|