* feat: added tab index support to navigate using Tab key in all the editors
* chore: changed the name of Table of Contents in Pages
* chore: file formatting
---------
Co-authored-by: sriram veeraghanta <veeraghanta.sriram@gmail.com>
* fix: horizontal rule no more causes issues on last node
* fixed the mismatched transaction by using native tiptap stuff
* added support to add new line onclick at bottom if last node is an image
TODO: blockquote at last node
* fix: simplified adding node at end of the document logic
* feat: rewrite entire logic handling all cases
* feat: arrow down and arrow up keys add empty node at top and bottom of doc from first/last row's cells
* feat: added arrow up and down key support to images too
* remove unnecessary console logs
* chore: formatting components
* fix: reduced bottom padding to increase onclick area
---------
Co-authored-by: sriram veeraghanta <veeraghanta.sriram@gmail.com>
* fix: z index issues with modals and on hover color in table item picker menu
* feat: added text indicators inside the table colors to give a gist of how text would look
* fix: inline codes now exitable with right arrow key and inclusive
* regression: toggle inline code on bubble menu selection
* feat: added different code block behaviour on selection and not selection
* fix: blockquote toggling and isActive state fixed
This fix adds support for hiding the drag handle when the cursor leaves the editor container. It improves the user experience by providing a cleaner interface and removing unnecessary visual elements especially while scrolling.
- Add `hideDragHandle` prop to `EditorContainer` component in `editor-container.tsx`.
- Implement `onMouseLeave` event handler in `EditorContainer` to invoke `hideDragHandle` function.
- Update `DragAndDrop` extension in `drag-drop.tsx` to accept a `setHideDragHandle` function as an optional parameter.
- Pass the `setHideDragHandle` function from `RichTextEditor` component to `DragAndDrop` extension in `RichTextEditorExtensions` function in `index.tsx`.
- Set `hideDragHandleOnMouseLeave` state in `RichTextEditor` component to store the `hideDragHandlerFromDragDrop` function.
- Create `setHideDragHandleFunction` callback function in `RichTextEditor` to update the `hideDragHandleOnMouseLeave` state.
- Pass `hideDragHandleOnMouseLeave` as `hideDragHandle` prop to `EditorContainer` component in `RichTextEditor`.
* fix: removed backticks in inline code blocks
* added better error handling while cancelling uploads
* fix: inline code blocks, code blocks and links have saner behaviour
- Inline code blocks are now exitable, don't have backticks, have better padding vertically and better regex matching
- Code blocks on the top and bottom of the document are now exitable via Up and Down Arrow keys
- Links are now exitable while being autolinkable via a custom re-write of the tiptap-link-extension
* fix: more robust link checking
error of table not being defined while getting getBoundingClientRect()
and solve other TS issues
- Added ResolvedPos import from @tiptap/pm/model
- Updated setCellsBackgroundColor function parameter type to string
- Declared ToolboxItem type for toolbox items
- Modified columnsToolboxItems and rowsToolboxItems to use the ToolboxItem type
- Updated createToolbox function parameters to specify Element or null for triggerButton and ToolboxItem[] for items
- Added ts-expect-error comment above the toolbox variable declaration
- Updated update method parameter type to readonly Decoration[]
- Changed destructuring assignment of hoveredTable and hoveredCell in updateControls method to use Object.values and reduce method
- Added null check for this.table in updateControls method
- Wrapped the code that updates columnsControl and rowsControl with null checks for each control
- Replaced ts-ignore comments with proper dispatch calls in selectColumn and selectRow methods
Co-authored-by: sriram veeraghanta <veeraghanta.sriram@gmail.com>
* 🔧 chore: Update revalidate option and add useEffect hook in PageDetailsPage component
- Set the `revalidate` option to `false` in the `commonSwrOptions` object.
- Add an `useEffect` hook that calls the `mutatePageDetails` function with specific options.
- Inside the `useEffect` hook, set `revalidate` to `true`, `populateCache` to `true`, and define a rollback function for error handling.
- If an error occurs during the rollback, display an error alert message using the `actionCompleteAlert` function.
- In the `updatePage` function, ensure that `workspaceSlug`, `projectId`, and `pageId` are all defined before proceeding.
* ♻️ refactor: Update code styling for inline code in CoreEditorExtensions
In the `packages/editor/core/src/ui/extensions/index.tsx` file, the code for inline code styling in the CoreEditorExtensions component has been updated. Previously, it was set to `false`, but now it is defined as an object with specific HTML attributes. The code styling includes a rounded-md background, custom primary color, margin, padding, font styling, and disabling spellcheck. This change improves the visual appearance and readability of inline code elements in the editor.
* Fix position bug in the UploadImagesPlugin widget decoration and adjust transaction to correctly insert image node and set meta data for image removal.
* Update CSS styles in editor.css to remove margin top and bottom on images and img placeholders and adjust the margin on the table in the editor container.
* Better typescript support for images extension.
Update the `Command` extension in `slash-commands.tsx` to include a `SlashCommandOptions` type for better TS support and allow spaces in the suggestion options and modify the `image` suggestion's search terms to include "img" in addition to "photo", "picture", and "media".
* removed relative imports from editor core
* Update issue widget file paths and imports to use kebab case instead of camel case, to align with coding conventions and improve consistency.
* Update Tiptap core and extensions versions to 2.1.13 and Tiptap React version to 2.1.13. Update Tiptap table imports to use the new location in package @tiptap/pm/tables. Update AlertLabel component to use the new type definition for LucideIcon.
* updated lock file
* removed default exports from editor/core
* fixed injecting css into the core package itself
* seperated css code to have single source of origin wrt to the package
* removed default imports from document editor
* all instances using index as key while mapping fixed
* Update Lite Text Editor package.json to remove @plane/editor-types as a dependency.
Update Lite Text Editor index.ts to update the import of IMentionSuggestion and IMentionHighlight from @plane/editor-types to @plane/editor-core.
Update Lite Text Editor ui/index.tsx to update the import of UploadImage, DeleteImage, IMentionSuggestion, and RestoreImage from @plane/editor-types to @plane/editor-core.
Update Lite Text Editor ui/menus/fixed-menu/index.tsx to update the import of UploadImage from @plane/editor-types to @plane/editor-core.
Update turbo.json to remove @plane/editor-types#build as a dependency for @plane/lite-text-editor#build, @plane/rich-text-editor#build, and @plane/document-editor#build.
* Remove deprecated import and adjust tippy.js usage in the slash-commands.tsx file of the editor extensions package.
* Update dependencies in `rich-text-editor/package.json`, remove `@plane/editor-types` and add `@plane/editor-core` in `rich-text-editor/src/index.ts`, and update imports in `rich-text-editor/src/ui/extensions/index.tsx` and `rich-text-editor/src/ui/index.tsx` to use `@plane/editor-core` instead of `@plane/editor-types`.
* Update package.json dependencies and add new types for image deletion, upload, restore, mention highlight, mention suggestion, and slash command item.
* Update import statements in various files to use the new package "@plane/editor-core" instead of "@plane/editor-types".
* fixed document editor to follow conventions
* Refactor imports in the Rich Text Editor package to use relative paths instead of absolute paths.
- Updated imports in `index.ts`, `ui/index.tsx`, and `ui/menus/bubble-menu/index.tsx` to use relative paths.
- Updated `tsconfig.json` to include the `baseUrl` compiler option and adjust the `include` and `exclude` paths.
* Refactor Lite Text Editor code to use relative import paths instead of absolute import paths.
* Added LucideIconType to the exports in index.ts for use in other files.
Created a new file lucide-icon.ts which contains the type LucideIconType.
Updated the icon type in HeadingOneItem in menu-items/index.tsx to use LucideIconType.
Updated the Icon type in AlertLabel in alert-label.tsx to use LucideIconType.
Updated the Icon type in VerticalDropdownItemProps in vertical-dropdown-menu.tsx to use LucideIconType.
Updated the Icon type in BubbleMenuItem in fixed-menu/index.tsx to use LucideIconType.
Deleted the file tooltip.tsx since it is no longer used.
Updated the Icon type in BubbleMenuItem in bubble-menu/index.tsx to use LucideIconType.
* ♻️ refactor: simplify rendering logic in slash-commands.tsx
The rendering logic in the file "slash-commands.tsx" has been simplified. Previously, the code used inline positioning for the popup, but it has now been removed. Instead of appending the popup to the document body, it is now appended to the element with the ID "tiptap-container". The "flip" option has also been removed. These changes have improved the readability and maintainability of the code.
* fixed build errors caused due to core's internal imports
* regression: fixed pages not saving issue and not duplicating with proper content issue
* build: Update @tiptap dependencies
Updated the @tiptap dependencies in the package.json files of `document-editor`, `extensions`, and `rich-text-editor` packages to version 2.1.13.
* 🚑 fix: Correct appendTo selector in slash-commands.tsx
Update the `appendTo` function call in `slash-commands.tsx` to use the correct selector `#editor-container` instead of `#tiptap-container`. This ensures that the component is appended to the appropriate container in the editor extension.
Note: The commit message assumes that the change is a fix for an issue or error. If it's not a fix, please provide more context so that an appropriate commit type can be determined.
* chore: format all files in the project
* fix: removing @types/react from dependencies
* fix: adding prettier and eslint config
* chore: format files
* fix: upgrading turbo version
* chore: ignoring warnings and adding todos
* fix: updated the type of bubble menu item in the document editor
* chore: format files
---------
Co-authored-by: Aaryan Khandelwal <aaryankhandu123@gmail.com>
* feat: added heading 3 in the editor summary markings
* feat: fixed editor and summary bar sizing
* feat: added `issue-embed` extension
* feat: exposed issue embed extension
* feat: added main embed config configuration to document editor body
* feat: added peek overview and issue embed fetch function
* feat: enabled slash commands to take additonal suggestions from editors
* chore: replaced `IssueEmbedWidget` into widget extension
* chore: removed issue embed from previous places
* feat: added issue embed suggestion extension
* feat: added issue embed suggestion renderer
* feat: added issue embed suggestions into extensions module
* feat: added issues in issueEmbedConfiguration in document editor
* chore: package fixes
* chore: removed log statements
* feat: added title updation logic into document editor
* fix: issue suggestion items, not rendering issue widget on enter
* feat: added error card for issue widget
* feat: improved focus logic for issue search and navigate
* feat: appended transactionid for issueWidgetTransaction
* chore: packages update
* feat: disabled editing of title in readonly mode
* feat: added issueEmbedConfig in readonly editor
* fix: issue suggestions not loading after structure changed to object
* feat: added toast messages for success/error messages from doc editor
* fix: issue suggestions sorting issue
* fix: formatting errors resolved
* fix: infinite reloading of the readonly document editor
* fix: css in avatar of issue widget card
* feat: added show alert on pages reload
* feat: added saving state for the pages editor
* fix: issue with heading 3 in side bar view
* style: updated issue suggestions dropdown ui
* fix: Pages intiliazation and mutation with updated MobX store
* fixed image uploads being cancelled on refocus due to swr
* fix: issue with same description rerendering empty content fixed
* fix: scroll in issue suggestion view
* fix: added submission prop
* fix: Updated the comment update to take issue id in inbox issues
* feat:changed date representation in IssueEmbedCard
* fix: page details mutation with optimistic updates using swr
* fix: menu options in read only editor with auth fixed
* fix: add error handling for title and page desc
* fixed yarn.lock
* fix: read-only editor title wrapping
* fix: build error with rich text editor
---------
Co-authored-by: Aaryan Khandelwal <aaryankhandu123@gmail.com>
Co-authored-by: Palanikannan1437 <73993394+Palanikannan1437@users.noreply.github.com>
* added image min width and height programatically
* fixed editor initialization for peek view and inbox issues
* fixed ts issues with issue id in inbox
* image restoration fixed (marks an image to be deleted after a week)
* removed clgs
* added image constraints
* formatted editor-core package using yarn format
* lite-text-editor nothing to format
* rich-text-editor nothing to format
* formatted document-editor with prettier
* modified file service to follow api change
* fixed more formatting in document editor
* fixed all instances of types with that from the package
* fixed delete to work consistently (minor optimizations turned off)
* stop duplicate images inside editor
* restore image on editor creation
say if user A deletes image number 2, user B was also in the same issue and in their screen the image was there, if user B makes certain changes and that gets saved in backend, according to user B image 2 should exist but since user A deleted it, it'll not get restored and get deleted in 7 days, hence I've added a check such that whenever a issue loads we restore all images by default
* added restore image function with types
* replaced all instances to have restore image logic
* fixed issue detail for peek view
* disabled option to insert table inside a table
* image can't be inserted inside table
Now we've diabled image icon from showing up if the cursor is inside a table node or if a table cell is selected
* added drag drop support for document editor
* fixed missing dependencies
* better variable names and comments
* drag drop migrated
* custom horizontal rule created
* init transaction hijack
* fixed code block with better contrast, keyboard tripple enter press disabled and syntax highlighting
* fixed link selector closing on open behaviour
* added better keymaps and syntax highlights
* made drag and drop working for code blocks
* fixed drag drop for code blocks
* moved drag drop only to rich text editor
* fixed drag and drop only for description
* enabled drag handles for peek overview and main issues
* got images to old state
* fixed task lists to be smaller
* removed validate image functions and uncessary imports
* table icons svg attributes fixed
* custom list keymap extension added
* more uncessary imports of validate image removed
* removed console logs
* fixed drag-handle styles
* space styles updated for the editor
* removed showing quotes from blockquotes
* removed validateImage for now
* added better comments and improved redundant renders
* removed uncessary console logs
* created util for creating the drag handle element
* fixed file names
* better variable names and comments
* drag drop migrated
* custom horizontal rule created
* init transaction hijack
* fixed code block with better contrast, keyboard tripple enter press disabled and syntax highlighting
* fixed link selector closing on open behaviour
* added better keymaps and syntax highlights
* made drag and drop working for code blocks
* fixed drag drop for code blocks
* moved drag drop only to rich text editor
* fixed drag and drop only for description
* enabled drag handles for peek overview and main issues
* got images to old state
* migrated table to new project structure
* fixed range errors while deleting table nodes with no nodes below and removed console logs
* fixed css for rendering table menu
* removed old table menu
* added support for read only editors as well
* text-black removed
* added design colors
---------
Co-authored-by: sriram veeraghanta <veeraghanta.sriram@gmail.com>
* fix: removed text color in peek view
* fix: fixed list view UI bugs and node view colors
* feat: update imports in suggestions for mentionSuggestion type
* fix: updated mention list css
* fix: updated mention node UI according to the design provided
* style: update the mentions dropdown UI
* style: mentioned users UI in the editor
---------
Co-authored-by: Aaryan Khandelwal <aaryankhandu123@gmail.com>
* feat: created custom mention component
* feat: added mention suggestions and suggestion highlights
* feat: created mention suggestion list for displaying mention suggestions
* feat: created custom mention text component, for handling click event
* feat: exposed mention component
* feat: integrated and exposed `mentions` componenet with `editor-core`
* feat: integrated mentions extension with the core editor package
* feat: exposed suggestion types from mentions
* feat: added `mention-suggestion` parameters in `r-t-e` and `l-t-e`
* feat: added `IssueMention` model in apiserver models
* chore: updated activities background job and added bs4 in requirements
* feat: added mention removal logic in issue_activity
* chore: exposed mention types from `r-t-e` and `l-t-e`
* feat: integrated mentions in side peek view description form
* feat: added mentions in issue modal form
* feat: created custom react-hook for editor suggestions
* feat: integrated mention suggestions block in RichTextEditor
* feat: added `mentions` integration in `lite-text-editor` instances
* fix: tailwind loading nodemodules from packages
* feat: added styles for the mention suggestion list
* fix: update module import to resolve build failure
* feat: added mentions as an issue filter
* feat: added UI Changes to Implement `mention` filters
* feat: added `mentions` as a filter option in the header
* feat: added mentions in the filter list options
* feat: added mentions in default display filter options
* feat: added filters in applied and issue params in store
* feat: modified types for adding mentions as a filter option
* feat: modified `notification-card` to display message when it exists in object
* feat: rewrote user mention management upon the changes made in develop
* chore: merged debounce PR with the current PR for tracing changes
* fix: mentions_filters updated with the new setup
* feat: updated requirements for bs4
* feat: modified `mentions-filter` to remove many to many dependency
* feat: implemented list manipulation instead of for loop
* feat: added readonly functionality in `read-only` editor core
* feat: added UI Changes for read-only mode
* feat: added mentions store in web Root Store
* chore: renamed `use-editor-suggestions` hook
* feat: UI Improvements for conditional highlights w.r.t readonly in mentionNode
* fix: removed mentions from `filter_set` parameters
* fix: minor merge fixes
* fix: package lock updates
---------
Co-authored-by: sriram veeraghanta <veeraghanta.sriram@gmail.com>
When using a boolean attribute in JSX, you can set the attribute value to true or omit the value. This helps to keep consistency in code.
Co-authored-by: deepsource-autofix[bot] <62050782+deepsource-autofix[bot]@users.noreply.github.com>