@flogeez/angular-tiptap-editor 2.1.0 → 2.1.2

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,48 +5,69 @@ All notable changes to `@flogeez/angular-tiptap-editor` will be documented in th
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
+ ## [2.1.2] - 2026-01-21
9
+
10
+ ### Fixed
11
+
12
+ - **Editable State Synchronization**: Fixed an issue where the `editable` state from the `[config]` input was ignored in favor of the standalone `[editable]` input. Both are now correctly merged, with `config.editable` taking precedence.
13
+
14
+ ## [2.1.1] - 2026-01-20
15
+
16
+ ### Fixed
17
+
18
+ - **Height Units**: Fixed a bug where `minHeight` would result in a double "px" unit (e.g., `200pxpx`) in the DOM.
19
+ - **Character Count Styling**: Improved the footer readability by adding padding to the character/word count area.
20
+
8
21
  ## [2.1.0] - 2026-01-20
9
22
 
10
23
  ### Added
24
+
11
25
  - **Unified Configuration**: Introduced `AteEditorConfig`, a single flatter interface to manage all editor settings (fundamentals, display options, and modules) via a new `[config]` input.
12
26
  - **Enhanced Image Upload Config**: Restructured image upload settings with dedicated `AteImageUploadConfig`, supporting quality, dimensions, max size (in MB), and allowed types.
13
27
  - **Menu Visibility Controls**: Added root-level boolean flags to toggle specific bubble menus (`showBubbleMenu`, `showTableMenu`, `showCellMenu`, `showImageBubbleMenu`) and slash commands (`enableSlashCommands`).
14
28
  - **Improved Developer Experience**: Updated the demo's code generator to produce consolidated `AteEditorConfig` boilerplate, making it easier for developers to copy-paste configurations.
15
29
 
16
30
  ### Changed
31
+
17
32
  - **Configuration Precedence**: Standardized the merging logic across all components, ensuring individual inputs correctly override global configuration values while maintaining sensible defaults.
18
33
  - **Public API**: Exported `AteEditorConfig` in the public API for better type safety in host applications.
19
34
 
20
35
  ## [2.0.3] - 2026-01-19
21
36
 
22
37
  ### Added
38
+
23
39
  - **Edit Toggle**: Added an optional toggle button to switch between editable and view-only modes.
24
40
  - **Design Tokens Improvements**: Refined menu border-radius and image styling for a more consistent visual experience.
25
41
 
26
42
  ## [2.0.2] - 2026-01-18
27
43
 
28
44
  ### Added
45
+
29
46
  - **Peer Dependencies Optimization**: Added `@tiptap/pm` to `peerDependencies`. This ensures a single shared instance of ProseMirror across the application.
30
47
 
31
48
  ### Fixed
32
- - **Slash Commands**: Migrated internal ProseMirror imports (`state`, `view`) to the official `@tiptap/pm` bridge. This aligns the library with Tiptap's recommended architecture and improves compatibility with modern bundlers.
33
49
 
50
+ - **Slash Commands**: Migrated internal ProseMirror imports (`state`, `view`) to the official `@tiptap/pm` bridge. This aligns the library with Tiptap's recommended architecture and improves compatibility with modern bundlers.
34
51
 
35
52
  ## [2.0.1] - 2026-01-17
36
53
 
37
54
  ### Added
55
+
38
56
  - **Global Footer Toggle**: Added `[showFooter]` input to easily toggle the entire editor footer (counters and limits).
39
57
 
40
58
  ### Changed
59
+
41
60
  - **Enhanced Slash Commands**: Complete visual overhaul of the slash command menu with improved padding and consistent token-based styling.
42
61
 
43
62
  ## [2.0.0] - 2026-01-17
63
+
44
64
  🚀 **Major Release**
45
65
 
46
66
  > **Note:** I decided to skip v1.0.0 to align the version number with **Tiptap v2**.
47
67
  > This structure prepares the project for the upcoming migration to **Tiptap v3** (which will correspond to my v3.0.0).
48
68
 
49
69
  ### Added
70
+
50
71
  - **Extensible I18n**: The translation system is now open. You can add any language (e.g., `es`, `it`) via `addTranslations()`, and the `SupportedLocale` type now accepts any string with autocomplete for default languages.
51
72
  - **Per-Instance I18n Override**: Added ability to define a specific language for a given editor instance via the `[locale]` input, without affecting the global language of other editors.
52
73
  - **Global I18n Singleton**: The translation service is now a global singleton (`providedIn: 'root'`), allowing for application-wide language switching with a single call.
@@ -57,18 +78,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
57
78
  - **Precise Inline Code**: Separated "Inline Code" and "Code Block" in menus and translations for better clarity.
58
79
 
59
80
  ### Fixed
81
+
60
82
  - **Inline Code Toggle**: Fixed a reactivity bug where the "Code" button in the toolbar became disabled when already inside a code mark, preventing it from being toggled off.
61
83
 
62
84
  ### Changed
85
+
63
86
  - **Service Isolation**: `EditorCommandsService`, `LinkService`, `ColorPickerService`, and `ImageService` are no longer global (`root`). They are now provided at the component level for each editor instance, ensuring perfect isolation in multi-editor scenarios.
64
87
  - **Internal Refactoring**: Systemic use of `currentTranslations` (computed signal) across all internal components for perfect reactivity to language changes.
65
88
 
66
89
  ### Breaking Changes
90
+
67
91
  - **Service Injection**: If you were injecting `EditorCommandsService` (or other internal services) directly into your own global services/components, it will no longer work. You must now interact with the editor via its public API (`@ViewChild`).
68
92
 
69
93
  ## [0.6.0] - 2026-01-14
70
94
 
71
95
  ### Added
96
+
72
97
  - **Reactive State Management**: New "Snapshot & Signal" architecture with optimized change detection (OnPush).
73
98
  - **Custom Extension Tracking**: Automatic state tracking for custom Tiptap Marks and Nodes (zero-config).
74
99
  - **Extensible State**: New `stateCalculators` input to inject custom logic into the reactive editor state.
@@ -80,6 +105,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
80
105
  - **Danger Button Variant**: New `danger` variant for actions like "Reset Color" or "Remove Link", providing clear visual feedback for destructive operations.
81
106
 
82
107
  ### Fixed
108
+
83
109
  - **Multi-instance Support**: Full service isolation, allowing multiple editors on the same page without shared state.
84
110
  - **Bubble Menu Conflicts**: Fixed overlapping menus by implementing a strict priority system (specialized menus now hide the main text menu).
85
111
  - **Image Bubble Menu Persistence**: Corrected Tippy.js behavior to prevent menus from disappearing when re-clicking an already-selected image.
@@ -88,6 +114,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
88
114
  - **Atomic Image Replacement**: Refactored image service to perform atomic updates, fixing the "extra space" bug and preventing layout shifts during asynchronous uploads.
89
115
 
90
116
  ### Changed
117
+
91
118
  - **Architectural Refactoring**: `EditorCommandsService` is now a clean facade/proxy for specialized services (`ImageService`, `ColorPickerService`, `LinkService`).
92
119
  - **Optimized State Performance**: Refactored state calculators (notably `MarksCalculator`) to minimize DOM access and avoid unnecessary layout recalculations (reflow).
93
120
  - **Centralized Color Utilities**: Consolidated color normalization, luminance, and contrast calculations into a shared utility for perfect consistency.
@@ -97,10 +124,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
97
124
  ## [0.5.5] - 2026-01-09
98
125
 
99
126
  ### Added
127
+
100
128
  - **Bubble Menus Confinement**: Menus now properly respect the editor's boundaries and are clipped by the container when scrolling, specifically optimized for `fillContainer` mode.
101
129
  - **Unified Command Execution**: Centralized all editor operations within `EditorCommandsService`, ensuring consistent behavior between the toolbar and bubble menus.
102
130
 
103
131
  ### Fixed
132
+
104
133
  - **Bubble Menus Positionning**: Refactored positioning logic for all bubble menus (Text, Image, Table, Cell, Slash) using Tippy's `sticky` plugin for real-time tracking during resizing and scrolling.
105
134
  - **Bubble Menus Performances**: Significant performance boost in `getImageRect` and `getTableRect` using direct ProseMirror DOM lookups.
106
135
  - **Performance Optimization**: Implemented `ChangeDetectionStrategy.OnPush` across all library components to minimize change detection cycles. Improved resource management by enabling Tippy's sticky polling only while menus are visible.
@@ -108,12 +137,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
108
137
  ## [0.5.4] - 2026-01-08
109
138
 
110
139
  ### Added
140
+
111
141
  - **Enhanced Color Pickers**: Refactored text and highlight pickers with a curated palette of predefined colors for faster styling.
112
142
  - **Intelligent Bubble Menus**: Automatic hiding when approaching the toolbar and smart restoration when leaving, ensuring a non-obstructive editing experience.
113
143
 
114
144
  ## [0.5.3] - 2026-01-08
115
145
 
116
146
  ### Added
147
+
117
148
  - **Unified Color Picker**: Refactored text and highlight color pickers into a single, generic `TiptapColorPickerComponent` for better maintainability (DRY).
118
149
  - **Advanced Highlight Picker**: The highlight button now displays the selected color as its background, with automatic icon contrast (black/white) for perfect visibility.
119
150
  - **Improved Text Color Picker**: Added an adaptive contrast background to the text color button when a very light color is selected, ensuring the icon remains visible.
@@ -123,6 +154,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
123
154
  ## [0.5.2] - 2026-01-07
124
155
 
125
156
  ### Added
157
+
126
158
  - **Word Count Toggle**: Added `showWordCount` input to independently control the visibility of the word counter.
127
159
  - **Character Limit**: Added `maxCharacters` support with visual feedback and dynamic blocking.
128
160
  - **Footer Configuration Section**: New section in the demo to manage counters and limits with a design consistent with other panels.
@@ -130,101 +162,119 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
130
162
  ## [0.5.1] - 2026-01-07
131
163
 
132
164
  ### Fixed
165
+
133
166
  - **Library Dependencies**: Added missing `@tiptap/extension-color` and `@tiptap/extension-text-style` to peerDependencies.
134
167
 
135
168
  ## [0.5.0] - 2026-01-07
136
169
 
137
170
  ### Added
171
+
138
172
  - **Full Theming System**: Introduced a complete set of CSS variables (`--ate-*`) for deep editor customization.
139
173
  - **Dark Mode Support**: Native support for dark mode via `.dark` class or `[data-theme="dark"]` attribute on the editor component.
140
174
  - **Theme Customizer**: New interactive panel in the demo application to customize and export CSS themes in real-time.
141
175
  - **Improved Slash Menu**: Refactored slash menu with better UI, keyboard navigation, and easier command filtering.
142
176
 
143
177
  ### Breaking Changes
178
+
144
179
  - **Slash Commands API**: The `slashCommands` input now takes a `SlashCommandsConfig` object (a set of boolean flags) to toggle default commands, instead of a list of command items.
145
180
  - **Custom Slash Commands**: To provide your own commands, you must now use the new `customSlashCommands` input.
146
181
  - **CSS Variables**: The editor now relies heavily on CSS variables. If you had deep CSS overrides, you might need to update them to use the new `--ate-*` tokens.
147
182
 
148
183
  ### Fixed
184
+
149
185
  - **Text Color Picker**: Improved initial color detection using computed styles and refined UI behavior to accurately reflect text color even when using theme defaults.
150
186
 
151
187
  ### Changed
188
+
152
189
  - Renamed several internal components and services for better consistency.
153
190
 
154
191
  ## [0.4.0] - 2026-01-07
155
192
 
156
193
  ### Added
194
+
157
195
  - Text color picker extension (PR #6 by @nicolashimmelmann)
158
196
  - Integrated color picker into the main toolbar and bubble menu
159
- - New `tiptapExtensions` and `tiptapOptions` inputs for deeper editor customization (PR #6 by @nicolashimmelmann)
160
-
197
+ - New `tiptapExtensions` and `tiptapOptions` inputs for deeper editor customization (PR #6 by @nicolashimmelmann)
161
198
 
162
199
  ## [0.3.7] - 2025-12-19
163
200
 
164
201
  ### Added
202
+
165
203
  - `fillContainer` input to make the editor fill the full height of its parent container
166
204
 
167
205
  ## [0.3.6] - 2025-12-19
168
206
 
169
207
  ### Added
208
+
170
209
  - Custom image upload handler (`imageUploadHandler` input)
171
210
  - Support for both `Promise` and `Observable` return types in upload handler
172
211
 
173
212
  ## [0.3.5] - 2025-12-19
174
213
 
175
214
  ### Added
215
+
176
216
  - `autofocus` input with multiple options (`false`, `'start'`, `'end'`, `'all'`, or position number)
177
217
  - Autofocus property support (PR #5 by @elirov)
178
218
 
179
219
  ## [0.3.4] - 2025-12-19
180
220
 
181
221
  ### Fixed
222
+
182
223
  - Removed console.log statements
183
224
 
184
225
  ## [0.3.3] - 2025-09-05
185
226
 
186
227
  ### Fixed
228
+
187
229
  - Slash commands functionality improvements
188
230
 
189
231
  ## [0.3.2] - 2025-09-05
190
232
 
191
233
  ### Fixed
234
+
192
235
  - Table functionality in slash commands
193
236
 
194
237
  ## [0.3.1] - 2025-09-03
195
238
 
196
239
  ### Added
240
+
197
241
  - Table extension with bubble menu for cell editing
198
242
 
199
243
  ## [0.3.0] - 2025-09-01
200
244
 
201
245
  ### Added
246
+
202
247
  - Table extension (insert, delete rows/columns, merge cells)
203
248
  - Cell bubble menu for table editing
204
249
 
205
250
  ## [0.2.7] - 2025-08-22
206
251
 
207
252
  ### Fixed
253
+
208
254
  - FormControls now fully Angular 18+ compliant
209
255
 
210
256
  ## [0.2.6] - 2025-08-21
211
257
 
212
258
  ### Fixed
259
+
213
260
  - FormControl update when editor is not ready yet
214
261
 
215
262
  ## [0.2.5] - 2025-08-21
216
263
 
217
264
  ### Changed
265
+
218
266
  - Updated README with StackBlitz demo link
219
267
 
220
268
  ## [0.2.4] - 2025-08-21
221
269
 
222
270
  ### Fixed
271
+
223
272
  - FormControls improvements
224
273
 
225
274
  ## [0.2.3] - 2025-08-20
226
275
 
227
276
  ### Fixed
277
+
228
278
  - Text alignment controls
229
279
  - Image positioning
230
280
  - Placeholder display
@@ -232,23 +282,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
232
282
  ## [0.2.2] - 2025-08-20
233
283
 
234
284
  ### Fixed
285
+
235
286
  - Material Symbols font loading
236
287
 
237
288
  ## [0.2.1] - 2025-08-20
238
289
 
239
290
  ### Fixed
291
+
240
292
  - Peer dependencies versions
241
293
  - Library package name
242
294
 
243
295
  ## [0.2.0] - 2025-08-20
244
296
 
245
297
  ### Fixed
298
+
246
299
  - Angular version compatibility
247
300
  - GitHub Pages deployment path
248
301
 
249
302
  ## [0.1.0] - 2025-08-20
250
303
 
251
304
  ### Added
305
+
252
306
  - Initial release
253
307
  - Rich text editing with Tiptap
254
308
  - Toolbar with formatting options (bold, italic, underline, strike, code)