Skip to content

Add TipTap v3.19.0 rich text editor with tables, slash commands, and custom nodes#20

Closed
akshad-exe with Copilot wants to merge 2 commits into
feature/tiptapfrom
copilot/sub-pr-17-another-one
Closed

Add TipTap v3.19.0 rich text editor with tables, slash commands, and custom nodes#20
akshad-exe with Copilot wants to merge 2 commits into
feature/tiptapfrom
copilot/sub-pr-17-another-one

Conversation

Copilot AI commented Feb 9, 2026

Copy link
Copy Markdown
Contributor

Replaces basic text input with TipTap v3.19.0 editor. Adds slash commands, interactive tables, mention system, and bidirectional Block[] ↔ TipTap JSON conversion.

Core Integration

  • TipTap v3.19.0 with 18 extensions (StarterKit, table suite, text-align, color, highlight, subscript/superscript, emoji, typography)
  • Bidirectional converters - convertBlocksToTipTap() / convertTipTapToBlocks() for lossless round-trip
  • 4 custom extensions - node alignment, background colors, list normalization, UI state management

Features

  • Slash commands - /h1 /table /bullet /todo /code /quote /divider
  • Mention system - @note-title for note linking with real-time filtering
  • Interactive tables - Add/delete rows/columns, merge cells, alignment controls, drag handles, sort, duplicate
  • Custom nodes - Resizable images, stateful todos with checkboxes, asset embeds (image/video/audio)
  • Floating toolbar - Context-aware formatting on text selection

Implementation

  • Icons - 64 custom SVG components (table ops, alignment, lists, formatting)
  • UI components - 53 reusable primitives (buttons, dropdowns, popovers, menus)
  • Table suite - 15 components + 7 hooks for comprehensive table editing
  • Utilities - Suggestion menu base, floating element positioning (Floating UI)

Usage

import { tiptapEditor } from '@/editor/ui/tiptapEditor';
import { convertBlocksToTipTap, convertTipTapToBlocks } from '@/editor/lib';

// Initialize with blocks
const initialContent = convertBlocksToTipTap(note.blocks);

// Editor updates
<TiptapEditor
  content={initialContent}
  onUpdate={(json) => {
    const blocks = convertTipTapToBlocks(json);
    saveNote({ ...note, blocks });
  }}
/>

Testing & Docs

  • 41 tests - 14 E2E (Playwright), 27 unit (converter round-trips, edge cases)
  • 7 guides - Architecture, data flow, migration summary, converter API, codebase index

Stats

  • 322 files, 42.6k insertions
  • 259 TypeScript files
  • Zero TS errors, build clean

💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Copilot AI mentioned this pull request Feb 9, 2026
@akshad-exe akshad-exe marked this pull request as ready for review February 9, 2026 02:38
Copilot AI review requested due to automatic review settings February 9, 2026 02:38

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot wasn't able to review any files in this pull request.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copilot AI changed the title [WIP] Add TipTap UI utilities and editor extensions Add TipTap v3.19.0 rich-text editor with tables, slash commands, and custom nodes Feb 9, 2026
Copilot AI requested a review from akshad-exe February 9, 2026 02:39
Copilot AI changed the title Add TipTap v3.19.0 rich-text editor with tables, slash commands, and custom nodes Add TipTap v3.19.0 rich text editor with tables, slash commands, and custom nodes Feb 9, 2026
@akshad-exe akshad-exe closed this Feb 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants