wysiwyg-editor-3lab 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,32 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.1.0] - 2025-01-20
9
+
10
+ ### Added
11
+ - **ChatEditor** — новый компактный компонент для чатов и мессенджеров
12
+ - Минимальный тулбар с компактными кнопками (28x28px)
13
+ - Поддержка форматирования: жирный, курсив, подчёркивание, зачёркивание
14
+ - Цвет текста и фона с палитрой из 24 цветов
15
+ - Вставка ссылок через модальное окно
16
+ - Вставка изображений (загрузка файла или кастомный handler)
17
+ - Вставка видео YouTube/Vimeo через модальное окно
18
+ - Вставка таблиц с выбором строк/столбцов
19
+ - Эмодзи пикер
20
+ - Блок кода
21
+ - Отправка по Ctrl+Enter или Enter
22
+ - Кастомизация через props (включение/отключение функций)
23
+
24
+ ### Changed
25
+ - **PreviewPanel** — убраны хардкодные стили, теперь наследует тему
26
+ - **CSS Variables** — применяются локально к каждому редактору, а не глобально
27
+ - Тёмная тема по умолчанию
28
+
29
+ ### Fixed
30
+ - Исправлено применение CSS переменных в React (использование setProperty)
31
+ - Исправлены z-index для всплывающих окон (цвета, эмодзи)
32
+ - Модальные окна теперь открываются поверх всего контента
33
+
8
34
  ## [1.0.0] - 2025-01-19
9
35
 
10
36
  ### Added
package/README.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Pro WYSIWYG Editor
2
2
 
3
+ [![npm version](https://img.shields.io/npm/v/wysiwyg-editor-3lab)](https://www.npmjs.com/package/wysiwyg-editor-3lab)
4
+ [![npm downloads](https://img.shields.io/npm/dm/wysiwyg-editor-3lab)](https://www.npmjs.com/package/wysiwyg-editor-3lab)
5
+ [![bundle size](https://img.shields.io/bundlephobia/minzip/wysiwyg-editor-3lab)](https://bundlephobia.com/package/wysiwyg-editor-3lab)
6
+ [![license](https://img.shields.io/npm/l/wysiwyg-editor-3lab)](https://github.com/3lab/wysiwyg-editor/blob/main/LICENSE)
7
+ [![TypeScript](https://img.shields.io/badge/TypeScript-Ready-blue)](https://www.typescriptlang.org/)
8
+
3
9
  Профессиональный WYSIWYG редактор для React с headless архитектурой. Полный набор функций для создания богатого текстового контента.
4
10
 
5
11
  ## ✨ Особенности
@@ -14,15 +20,16 @@
14
20
  - 🎨 **Полная кастомизация** — настройка через props
15
21
  - 📦 **Без зависимостей** — только React peer dependency
16
22
  - 💻 **Автоопределение кода** — автоматическая подсветка синтаксиса при вставке кода
23
+ - 💬 **ChatEditor** — компактный редактор для чатов и мессенджеров
17
24
 
18
25
  ## 📦 Установка
19
26
 
20
27
  ```bash
21
- npm install @3lab/wysiwyg-editor
28
+ npm install wysiwyg-editor-3lab
22
29
  # или
23
- yarn add @3lab/wysiwyg-editor
30
+ yarn add wysiwyg-editor-3lab
24
31
  # или
25
- pnpm add @3lab/wysiwyg-editor
32
+ pnpm add wysiwyg-editor-3lab
26
33
  ```
27
34
 
28
35
  **Важно:** Добавьте Font Awesome в ваш проект:
@@ -36,7 +43,8 @@ pnpm add @3lab/wysiwyg-editor
36
43
  ### Базовое использование
37
44
 
38
45
  ```tsx
39
- import { WysiwygEditor } from '@3lab/wysiwyg-editor';
46
+ import { WysiwygEditor } from 'wysiwyg-editor-3lab';
47
+ import 'wysiwyg-editor-3lab/style.css';
40
48
 
41
49
  function App() {
42
50
  return <WysiwygEditor placeholder="Начните печатать..." />;
@@ -47,7 +55,8 @@ function App() {
47
55
 
48
56
  ```tsx
49
57
  import { useState } from 'react';
50
- import { WysiwygEditor, EditorMeta } from '@3lab/wysiwyg-editor';
58
+ import { WysiwygEditor, EditorMeta } from 'wysiwyg-editor-3lab';
59
+ import 'wysiwyg-editor-3lab/style.css';
51
60
 
52
61
  function App() {
53
62
  const [html, setHtml] = useState('');
@@ -70,7 +79,8 @@ function App() {
70
79
  ### Uncontrolled с автосохранением
71
80
 
72
81
  ```tsx
73
- import { WysiwygEditor } from '@3lab/wysiwyg-editor';
82
+ import { WysiwygEditor } from 'wysiwyg-editor-3lab';
83
+ import 'wysiwyg-editor-3lab/style.css';
74
84
 
75
85
  function App() {
76
86
  return (
@@ -84,6 +94,108 @@ function App() {
84
94
  }
85
95
  ```
86
96
 
97
+ ## 💬 ChatEditor — компактный редактор для чатов
98
+
99
+ Специальный компонент для мессенджеров и чатов с минимальным интерфейсом:
100
+
101
+ ```tsx
102
+ import { ChatEditor } from 'wysiwyg-editor-3lab';
103
+ import 'wysiwyg-editor-3lab/style.css';
104
+
105
+ function Chat() {
106
+ return (
107
+ <ChatEditor
108
+ placeholder="Введите сообщение..."
109
+ onSubmit={(html) => {
110
+ console.log('Отправлено:', html);
111
+ // Отправка на сервер
112
+ }}
113
+ submitOnCtrlEnter={true}
114
+ enableEmoji={true}
115
+ enableBold={true}
116
+ enableItalic={true}
117
+ enableCode={true}
118
+ enableLink={true}
119
+ enableTextColor={true}
120
+ enableBgColor={true}
121
+ enableImage={true}
122
+ enableVideo={true}
123
+ enableTable={true}
124
+ maxHeight={150}
125
+ />
126
+ );
127
+ }
128
+ ```
129
+
130
+ ### ChatEditor Props
131
+
132
+ | Prop | Type | Default | Описание |
133
+ |------|------|---------|----------|
134
+ | `value` | `string` | - | HTML контент (controlled) |
135
+ | `defaultValue` | `string` | - | Начальный HTML (uncontrolled) |
136
+ | `onChange` | `(html: string, meta: EditorMeta) => void` | - | Callback при изменении |
137
+ | `onSubmit` | `(html: string) => void` | - | Callback при отправке |
138
+ | `placeholder` | `string` | `"Введите сообщение..."` | Placeholder текст |
139
+ | `theme` | `"dark" \| "light"` | `"dark"` | Тема оформления |
140
+ | `maxHeight` | `number \| string` | `200` | Максимальная высота |
141
+ | `minHeight` | `number \| string` | `40` | Минимальная высота |
142
+ | `enableEmoji` | `boolean` | `true` | Эмодзи пикер |
143
+ | `enableBold` | `boolean` | `true` | Жирный текст |
144
+ | `enableItalic` | `boolean` | `true` | Курсив |
145
+ | `enableUnderline` | `boolean` | `false` | Подчёркивание |
146
+ | `enableStrike` | `boolean` | `false` | Зачёркивание |
147
+ | `enableLink` | `boolean` | `true` | Вставка ссылок |
148
+ | `enableCode` | `boolean` | `true` | Блок кода |
149
+ | `enableList` | `boolean` | `false` | Списки |
150
+ | `enableTextColor` | `boolean` | `false` | Цвет текста |
151
+ | `enableBgColor` | `boolean` | `false` | Цвет фона |
152
+ | `enableImage` | `boolean` | `false` | Вставка изображений |
153
+ | `enableVideo` | `boolean` | `false` | Вставка видео |
154
+ | `enableTable` | `boolean` | `false` | Вставка таблиц |
155
+ | `onImageUpload` | `(file: File) => Promise<string>` | - | Кастомный загрузчик изображений |
156
+ | `submitOnEnter` | `boolean` | `false` | Отправка по Enter |
157
+ | `submitOnCtrlEnter` | `boolean` | `true` | Отправка по Ctrl+Enter |
158
+ | `submitButtonText` | `string` | `"Отправить"` | Текст кнопки |
159
+ | `showSubmitButton` | `boolean` | `true` | Показать кнопку отправки |
160
+
161
+ ## 🎨 Кастомизация
162
+
163
+ ### Встроенные темы
164
+
165
+ ```tsx
166
+ <WysiwygEditor themeName="dark" /> // Темная тема
167
+ <WysiwygEditor themeName="light" /> // Светлая тема
168
+ <WysiwygEditor themeName="minimal" /> // Минималистичная
169
+ <WysiwygEditor themeName="colorful" /> // Яркая
170
+ ```
171
+
172
+ ### Пользовательские цвета
173
+
174
+ ```tsx
175
+ <WysiwygEditor
176
+ themeName="custom"
177
+ customTheme={{
178
+ primary: '#ff6b6b',
179
+ bgPrimary: '#fff5f5',
180
+ textPrimary: '#2d3748',
181
+ borderRadius: '8px',
182
+ }}
183
+ />
184
+ ```
185
+
186
+ ### Управление панелью предпросмотра
187
+
188
+ ```tsx
189
+ <WysiwygEditor
190
+ enablePreviewPanel={true}
191
+ previewPosition="right" // 'right' | 'bottom' | 'none'
192
+ previewWidth={400}
193
+ previewHeight={600}
194
+ />
195
+ ```
196
+
197
+ Подробнее в [CUSTOMIZATION_GUIDE.md](./CUSTOMIZATION_GUIDE.md) и [INTEGRATION_EXAMPLES.md](./INTEGRATION_EXAMPLES.md)
198
+
87
199
  ## 📖 API
88
200
 
89
201
  ### WysiwygEditor Props