diff --git a/package-lock.json b/package-lock.json
index bcce7f4..dc64872 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -45,6 +45,7 @@
"@tiptap/extension-table-cell": "^3.14.0",
"@tiptap/extension-table-header": "^3.14.0",
"@tiptap/extension-table-row": "^3.14.0",
+ "@tiptap/extension-text-align": "^3.14.0",
"@tiptap/react": "^3.13.0",
"@tiptap/starter-kit": "^3.13.0",
"class-variance-authority": "^0.7.1",
@@ -3267,6 +3268,19 @@
"@tiptap/core": "^3.13.0"
}
},
+ "node_modules/@tiptap/extension-text-align": {
+ "version": "3.14.0",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-text-align/-/extension-text-align-3.14.0.tgz",
+ "integrity": "sha512-CaxxlbAvfofZZ7KPL28Kg8xuMv8t4rvt5GPwZAqE+jd3rwrucpovpX/SdgclYDc75xs0t8qeoxDFe9HQmG5XZA==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/ueberdosis"
+ },
+ "peerDependencies": {
+ "@tiptap/core": "^3.14.0"
+ }
+ },
"node_modules/@tiptap/extension-underline": {
"version": "3.13.0",
"resolved": "https://registry.npmjs.org/@tiptap/extension-underline/-/extension-underline-3.13.0.tgz",
diff --git a/package.json b/package.json
index e990cc3..3ae6c54 100644
--- a/package.json
+++ b/package.json
@@ -48,6 +48,7 @@
"@tiptap/extension-table-cell": "^3.14.0",
"@tiptap/extension-table-header": "^3.14.0",
"@tiptap/extension-table-row": "^3.14.0",
+ "@tiptap/extension-text-align": "^3.14.0",
"@tiptap/react": "^3.13.0",
"@tiptap/starter-kit": "^3.13.0",
"class-variance-authority": "^0.7.1",
diff --git a/src/components/RichTextEditor.tsx b/src/components/RichTextEditor.tsx
index 57a504c..4b2d118 100644
--- a/src/components/RichTextEditor.tsx
+++ b/src/components/RichTextEditor.tsx
@@ -3,12 +3,13 @@ import StarterKit from '@tiptap/starter-kit';
import Link from '@tiptap/extension-link';
import Image from '@tiptap/extension-image';
import Placeholder from '@tiptap/extension-placeholder';
+import TextAlign from '@tiptap/extension-text-align';
import { Node } from '@tiptap/core';
import { Button } from '@/components/ui/button';
import {
Bold, Italic, List, ListOrdered, Quote, Link as LinkIcon,
Image as ImageIcon, Heading1, Heading2, Undo, Redo,
- Maximize2, Minimize2, MousePointer, Square
+ Maximize2, Minimize2, MousePointer, Square, AlignLeft, AlignCenter, AlignRight, AlignJustify, MoreVertical, Minus
} from 'lucide-react';
import { cn } from '@/lib/utils';
import { useCallback, useEffect, useState } from 'react';
@@ -243,7 +244,15 @@ export function RichTextEditor({ content, onChange, placeholder = 'Tulis konten.
const editor = useEditor({
extensions: [
- StarterKit,
+ StarterKit.configure({
+ heading: {
+ levels: [1, 2, 3],
+ },
+ horizontalRule: true,
+ }),
+ TextAlign.configure({
+ types: ['heading', 'paragraph'],
+ }),
Link.configure({
openOnClick: false,
HTMLAttributes: {
@@ -517,6 +526,63 @@ export function RichTextEditor({ content, onChange, placeholder = 'Tulis konten.