feat: colonnes multi-colonnes (layout côte à côte style Notion)
Some checks failed
CI / Lint, Unit Tests & Build (push) Failing after 1m26s
CI / Deploy production (on server) (push) Has been skipped

- Architecture nested nodes: columns container → column children
- CSS seamless (pas de bordures, fin séparateur vertical entre colonnes)
- isolating: true sur les deux nœuds (curseur reste dans sa colonne)
- Commands addColumnBefore/addColumnAfter/deleteColumn
- Slash menu + drag handle + raccourci Mod+Shift+L
- i18n FR/EN complet
This commit is contained in:
Antigravity
2026-06-14 18:49:15 +00:00
parent d5b409c1ac
commit 7fedfa8f50
6 changed files with 223 additions and 3 deletions

View File

@@ -14,12 +14,14 @@ import {
Heading1, Heading2, Heading3, List, ListOrdered,
CheckSquare, Quote, CodeXml, Database,
ArrowUp, ArrowDown, AlignLeft, ClipboardCopy, Sparkles,
ChevronsRightLeft, MessageSquareWarning, ListTree,
ChevronsRightLeft, MessageSquareWarning, ListTree, Columns3,
Plus, Minus,
} from 'lucide-react'
import { replaceBlockWithStructuredView } from '@/components/tiptap-structured-view-block-extension'
import { insertToggleBlock, turnIntoToggleBlock } from '@/components/tiptap-toggle-extension'
import { turnIntoCalloutBlock } from '@/components/tiptap-callout-extension'
import { insertOutlineBlock } from '@/components/tiptap-outline-extension'
import { insertColumnsBlock } from '@/components/tiptap-columns-extension'
interface BlockActionMenuProps {
editor: Editor
@@ -391,6 +393,12 @@ export function BlockActionMenu({
<span>{t('richTextEditor.slashOutline')}</span>
</button>
{/* Colonnes */}
<button type="button" className="block-action-item" onClick={() => { insertColumnsBlock(editor, 2); onClose() }}>
<Columns3 size={16} />
<span>{t('richTextEditor.slashColumns')}</span>
</button>
<div className="block-action-separator" />
{/* Création de diagramme */}