Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
8a12eba
fix: prosemirror flat list integrated
Palanikannan1437 Dec 3, 2024
76f0c8b
fix: list extension drop behaviour manipulated
Palanikannan1437 Dec 6, 2024
89d2f38
fix: drop cursor above and below added
Palanikannan1437 Dec 10, 2024
649e43e
fix: drop cursor implementation cleaned up
Palanikannan1437 Dec 10, 2024
fc2b3aa
fix: drop cursor optimized
Palanikannan1437 Dec 11, 2024
7147cfd
fix: added nested drop consistently
Palanikannan1437 Dec 12, 2024
ecfc306
fix: css and edge cases while dropping
Palanikannan1437 Dec 12, 2024
62d778f
merge preview into feat/flat-lists
Palanikannan1437 Dec 13, 2024
c89f4b5
fix: remove items from list
Palanikannan1437 Dec 13, 2024
e80d308
style: editor lists
aaryan610 Dec 26, 2024
a530f64
fix: editor lists flickering
aaryan610 Dec 30, 2024
d5a5a24
fix: editor lists flickering
aaryan610 Dec 30, 2024
893fe6c
fix: lists as first node of the editor
aaryan610 Dec 30, 2024
f66cb7c
fix: lists padding
aaryan610 Dec 30, 2024
0cdee27
chore: update css
aaryan610 Dec 30, 2024
8d8df45
fix: css fixes
Palanikannan1437 Dec 31, 2024
723ee1d
fix: optimization of drop cursor
Palanikannan1437 Dec 31, 2024
841d6eb
fix: remove react scan script
Palanikannan1437 Jan 2, 2025
c0e40bc
fix: drop between lists stopped working
Palanikannan1437 Jan 2, 2025
c5fde5f
Merge branch 'preview' into feat/flat-lists
Palanikannan1437 Jan 2, 2025
bace1a0
wip
Palanikannan1437 Jan 2, 2025
5fab502
fix: drop cursor for list stabilized
Palanikannan1437 Jan 2, 2025
f5e28dd
fix: migration script added
Palanikannan1437 Jan 2, 2025
d90bbcd
fix: migration script added and drag drop for all type of nodes
Palanikannan1437 Jan 3, 2025
e2af5b4
fix: insert table inside list
Palanikannan1437 Jan 3, 2025
81796af
fix: add toggle list item in the menu bar
Palanikannan1437 Jan 3, 2025
278a814
wip: migration logic
Palanikannan1437 Jan 3, 2025
f8d8848
fix: loading flat lists before old extensions
Palanikannan1437 Jan 3, 2025
ab02542
fix: keeping old keymaps
Palanikannan1437 Jan 3, 2025
26f3442
fix: add taskItem dependency
Palanikannan1437 Jan 3, 2025
7536a78
chore: remove testing code
Palanikannan1437 Jan 3, 2025
97f3028
removed console logs
Palanikannan1437 Jan 6, 2025
151dc42
fix: type
Palanikannan1437 Jan 6, 2025
e094b49
Merge branch 'preview' into feat/flat-lists
Palanikannan1437 Jan 6, 2025
61ded96
fix: read only extensions and write extensions synced
Palanikannan1437 Jan 6, 2025
8487bb3
fix: remove paragraph tag's hardcoded values
Palanikannan1437 Jan 6, 2025
c48247e
Merge branch 'preview' into feat/flat-lists
Palanikannan1437 Jan 17, 2025
9bca731
Merge branch 'preview' into feat/flat-lists
Palanikannan1437 Jan 27, 2025
e5c4614
fix: add keyboard shortcuts of complex blocks inside lists fixed
Palanikannan1437 Jan 27, 2025
9f6daaf
fix: drop cursor fixed for multiline content in lists
Palanikannan1437 Jan 27, 2025
5e21823
fix: hijacking markdown clipboard
Palanikannan1437 Jan 28, 2025
133091b
Merge branch 'preview' into feat/flat-lists
Palanikannan1437 Jan 29, 2025
e934300
fix: clipboard serialization
Palanikannan1437 Jan 30, 2025
4e2a966
wip: markdown for lists
Palanikannan1437 Feb 5, 2025
fbf299f
wip: markdown
Palanikannan1437 Feb 8, 2025
5fafddd
fix: markdown for mentions fixed
Palanikannan1437 Feb 11, 2025
a1b91a5
fix: copying text in mentions
Palanikannan1437 Feb 11, 2025
4acc598
fix: refactored the component to use the same function
Palanikannan1437 Feb 11, 2025
feab2b2
chore: renamed funcion name
Palanikannan1437 Feb 11, 2025
cdbce9f
add the new copy extension
iam-vipin Feb 25, 2025
324e41b
init working fix
iam-vipin Feb 25, 2025
ec4f4e2
remove useless code
iam-vipin Feb 25, 2025
81e1fb6
improve readibility
iam-vipin Feb 25, 2025
2dea7e8
update node import
iam-vipin Feb 25, 2025
34a18e7
better smaller logic
iam-vipin Feb 25, 2025
27ba1b9
remove log
iam-vipin Feb 25, 2025
f949a85
add open close end handler
iam-vipin Feb 25, 2025
fc6d99d
update readabliity
iam-vipin Feb 25, 2025
c02b5e1
handle tables
iam-vipin Feb 26, 2025
ce19996
handle triple click in cell
iam-vipin Feb 26, 2025
1de79f1
triple tap select current line
iam-vipin Feb 27, 2025
b820a67
handle block and list
iam-vipin Feb 27, 2025
d2a5faf
lists fixed
iam-vipin Feb 27, 2025
e6b9d15
handle all possible cases of copy in table
iam-vipin Feb 27, 2025
157ba6c
update the min elements
iam-vipin Feb 27, 2025
cf41100
handle multi types in table
iam-vipin Feb 27, 2025
e5a5dc4
handle table seletion cases
iam-vipin Feb 27, 2025
6471ca6
handle whole table handler
iam-vipin Feb 28, 2025
a7489eb
feat: all case converd
iam-vipin Feb 28, 2025
c785aac
update markdown handling code
iam-vipin Mar 3, 2025
44296c4
update return statement
iam-vipin Mar 3, 2025
f8ec832
handle using group block
iam-vipin Mar 3, 2025
c8ee874
handle param
iam-vipin Mar 3, 2025
9112b4d
handle multple cell in table
iam-vipin Mar 3, 2025
291898a
handle using recursion
iam-vipin Mar 4, 2025
0eac8a0
add types
iam-vipin Mar 4, 2025
1bdc1e8
fix code rabbit suggestions
iam-vipin Mar 4, 2025
d064517
fix root node bug
iam-vipin Mar 6, 2025
bdce78e
update recursion with loop
iam-vipin Mar 6, 2025
35376d4
update transform copied to false
iam-vipin Mar 17, 2025
44bd3c6
refactor clipboard extension: remove options and integrate MarkdownCl…
iam-vipin Mar 17, 2025
366ed38
fix: header and code handler
iam-vipin Mar 18, 2025
cd146aa
fix: store hooks fixed
Palanikannan1437 Mar 19, 2025
8aa5cbc
Merge branch 'preview' into devin/1734544044-refactor-live-server
Palanikannan1437 Mar 19, 2025
f1db648
fix: mention id
Palanikannan1437 Mar 19, 2025
17b910a
Merge branch 'fix/copying_markdown' into fix-copy_text
iam-vipin Mar 19, 2025
ae6cad2
chore: remove comments
iam-vipin Mar 20, 2025
2983be8
Merge branch 'fix-copy_text' into feat/flat-lists
iam-vipin Mar 20, 2025
ac0c071
feat: minor fixes
iam-vipin Mar 20, 2025
b52ae00
feat: minor fixes
iam-vipin Mar 20, 2025
594fa82
Merge branch 'preview' into feat/flat-lists
Palanikannan1437 Jun 22, 2025
4f13d0a
fix: copy pasting
Palanikannan1437 Jun 22, 2025
917e164
fix: collapsible and tasklist markdown fixed
Palanikannan1437 Jun 23, 2025
81e2906
chore: update editor packages
aaryan610 Jun 24, 2025
b1b174e
Merge branch 'chore/editor-packages' into feat/flat-lists
Palanikannan1437 Jun 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions live/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
"@plane/constants": "*",
"@plane/editor": "*",
"@plane/types": "*",
"@tiptap/core": "2.10.4",
"@tiptap/html": "2.11.0",
"@tiptap/core": "^2.22.3",
"@tiptap/html": "^2.22.3",
"axios": "^1.8.3",
"compression": "^1.7.4",
"cors": "^2.8.5",
Expand Down
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@
"@babel/helpers": "7.26.10",
"@babel/runtime": "7.26.10",
"chokidar": "3.6.0",
"tar-fs": "3.0.9"
"tar-fs": "3.0.9",
"prosemirror-view": "1.40.0"
},
"packageManager": "[email protected]"
}
39 changes: 19 additions & 20 deletions packages/editor/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,32 +39,31 @@
"@plane/types": "*",
"@plane/ui": "*",
"@plane/utils": "*",
"@tiptap/core": "2.10.4",
"@tiptap/extension-blockquote": "2.10.4",
"@tiptap/extension-character-count": "2.11.0",
"@tiptap/extension-collaboration": "2.11.0",
"@tiptap/extension-image": "2.11.0",
"@tiptap/extension-list-item": "2.11.0",
"@tiptap/extension-mention": "2.11.0",
"@tiptap/extension-placeholder": "2.11.0",
"@tiptap/extension-task-item": "2.11.0",
"@tiptap/extension-task-list": "2.11.0",
"@tiptap/extension-text-align": "2.11.0",
"@tiptap/extension-text-style": "2.11.0",
"@tiptap/extension-underline": "2.11.0",
"@tiptap/html": "2.11.0",
"@tiptap/pm": "2.11.0",
"@tiptap/react": "2.11.0",
"@tiptap/starter-kit": "2.11.0",
"@tiptap/suggestion": "2.11.0",
"class-variance-authority": "^0.7.0",
"@tiptap/core": "^2.22.3",
"@tiptap/extension-blockquote": "^2.22.3",
"@tiptap/extension-character-count": "^2.22.3",
"@tiptap/extension-collaboration": "^2.22.3",
"@tiptap/extension-image": "^2.22.3",
"@tiptap/extension-list-item": "^2.22.3",
"@tiptap/extension-mention": "^2.22.3",
"@tiptap/extension-placeholder": "^2.22.3",
"@tiptap/extension-task-item": "^2.22.3",
"@tiptap/extension-task-list": "^2.22.3",
"@tiptap/extension-text-align": "^2.22.3",
"@tiptap/extension-text-style": "^2.22.3",
"@tiptap/extension-underline": "^2.22.3",
"@tiptap/html": "^2.22.3",
"@tiptap/pm": "^2.22.3",
"@tiptap/react": "^2.22.3",
"@tiptap/starter-kit": "^2.22.3",
"@tiptap/suggestion": "^2.22.3",
"highlight.js": "^11.8.0",
"jsx-dom-cjs": "^8.0.3",
"linkifyjs": "^4.1.3",
"lowlight": "^3.0.0",
"lucide-react": "^0.469.0",
"prosemirror-codemark": "^0.4.2",
"prosemirror-utils": "^1.2.2",
"prosemirror-safari-ime-span": "^1.0.2",
"tippy.js": "^6.3.7",
"tiptap-markdown": "^0.8.10",
"uuid": "^10.0.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import {
HeadingFiveItem,
HeadingSixItem,
EditorMenuItem,
ToggleListItem,
} from "@/components/menus";
// types
import { TEditorCommands } from "@/types";
Expand All @@ -42,6 +43,7 @@ export const BubbleMenuNodeSelector: FC<Props> = (props) => {
BulletListItem(editor),
NumberedListItem(editor),
TodoListItem(editor),
ToggleListItem(editor),
QuoteItem(editor),
CodeItem(editor),
];
Expand Down
29 changes: 20 additions & 9 deletions packages/editor/src/core/components/menus/menu-items.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import {
MinusSquare,
Palette,
AlignCenter,
ListCollapse,
} from "lucide-react";
// constants
import { CORE_EXTENSIONS } from "@/constants/extension";
Expand All @@ -35,13 +36,14 @@ import {
toggleBackgroundColor,
toggleBlockquote,
toggleBold,
toggleBulletList,
toggleCodeBlock,
toggleFlatBulletList,
toggleFlatOrderedList,
toggleFlatTaskList,
toggleFlatToggleList,
toggleHeading,
toggleItalic,
toggleOrderedList,
toggleStrike,
toggleTaskList,
toggleTextColor,
toggleUnderline,
} from "@/helpers/editor-commands";
Expand Down Expand Up @@ -136,27 +138,35 @@ export const StrikeThroughItem = (editor: Editor): EditorMenuItem<"strikethrough
export const BulletListItem = (editor: Editor): EditorMenuItem<"bulleted-list"> => ({
key: "bulleted-list",
name: "Bulleted list",
isActive: () => editor?.isActive(CORE_EXTENSIONS.BULLET_LIST),
command: () => toggleBulletList(editor),
isActive: () => editor?.isActive("list", { kind: "bullet" }),
command: () => toggleFlatBulletList(editor),
icon: ListIcon,
});

export const NumberedListItem = (editor: Editor): EditorMenuItem<"numbered-list"> => ({
key: "numbered-list",
name: "Numbered list",
isActive: () => editor?.isActive(CORE_EXTENSIONS.ORDERED_LIST),
command: () => toggleOrderedList(editor),
isActive: () => editor?.isActive("list", { kind: "ordered" }),
command: () => toggleFlatOrderedList(editor),
icon: ListOrderedIcon,
});

export const TodoListItem = (editor: Editor): EditorMenuItem<"to-do-list"> => ({
key: "to-do-list",
name: "To-do list",
isActive: () => editor.isActive(CORE_EXTENSIONS.TASK_ITEM),
command: () => toggleTaskList(editor),
isActive: () => editor?.isActive("list", { kind: "task" }),
command: () => toggleFlatTaskList(editor),
icon: CheckSquare,
});

export const ToggleListItem = (editor: Editor): EditorMenuItem<"toggle-list"> => ({
key: "toggle-list",
name: "Toggle list",
isActive: () => editor?.isActive("list", { kind: "toggle" }),
command: () => toggleFlatToggleList(editor),
icon: ListCollapse,
});

export const QuoteItem = (editor: Editor): EditorMenuItem<"quote"> => ({
key: "quote",
name: "Quote",
Expand Down Expand Up @@ -248,6 +258,7 @@ export const getEditorMenuItems = (editor: Editor | null): EditorMenuItem<TEdito
StrikeThroughItem(editor),
BulletListItem(editor),
TodoListItem(editor),
ToggleListItem(editor),
CodeItem(editor),
NumberedListItem(editor),
QuoteItem(editor),
Expand Down
1 change: 1 addition & 0 deletions packages/editor/src/core/constants/extension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,4 +41,5 @@ export enum CORE_EXTENSIONS {
UNDERLINE = "underline",
UTILITY = "utility",
WORK_ITEM_EMBED = "issue-embed-component",
LIST = "list",
}
4 changes: 2 additions & 2 deletions packages/editor/src/core/extensions/callout/block.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@ import { EAttributeNames, TCalloutBlockAttributes } from "./types";
// utils
import { updateStoredBackgroundColor } from "./utils";

type Props = NodeViewProps & {
export type CustomCalloutNodeViewProps = NodeViewProps & {
node: NodeViewProps["node"] & {
attrs: TCalloutBlockAttributes;
};
updateAttributes: (attrs: Partial<TCalloutBlockAttributes>) => void;
};

export const CustomCalloutBlock: React.FC<Props> = (props) => {
export const CustomCalloutBlock: React.FC<CustomCalloutNodeViewProps> = (props) => {
const { editor, node, updateAttributes } = props;
// states
const [isEmojiPickerOpen, setIsEmojiPickerOpen] = useState(false);
Expand Down
6 changes: 4 additions & 2 deletions packages/editor/src/core/extensions/callout/extension.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { findParentNodeClosestToPos, Predicate, ReactNodeViewRenderer } from "@tiptap/react";
// extensions
import { CustomCalloutBlock } from "@/extensions";
import { CustomCalloutBlock, CustomCalloutNodeViewProps } from "@/extensions/callout";
// helpers
import { insertEmptyParagraphAtNodeBoundaries } from "@/helpers/insert-empty-paragraph-at-node-boundary";
// config
Expand Down Expand Up @@ -63,6 +63,8 @@ export const CustomCalloutExtension = CustomCalloutExtensionConfig.extend({
},

addNodeView() {
return ReactNodeViewRenderer(CustomCalloutBlock);
return ReactNodeViewRenderer((props) => (
<CustomCalloutBlock {...props} node={props.node as CustomCalloutNodeViewProps["node"]} />
));
},
});
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { ReactNodeViewRenderer } from "@tiptap/react";
// extensions
import { CustomCalloutBlock } from "@/extensions";
import { CustomCalloutBlock, CustomCalloutNodeViewProps } from "@/extensions/callout";
// config
import { CustomCalloutExtensionConfig } from "./extension-config";

Expand All @@ -9,6 +9,8 @@ export const CustomCalloutReadOnlyExtension = CustomCalloutExtensionConfig.exten
draggable: false,

addNodeView() {
return ReactNodeViewRenderer(CustomCalloutBlock);
return ReactNodeViewRenderer((props) => (
<CustomCalloutBlock {...props} node={props.node as CustomCalloutNodeViewProps["node"]} />
));
},
});
Loading