@flogeez/angular-tiptap-editor 2.2.1 → 2.2.3

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,18 @@ 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), with the exception that the major version is specifically aligned with the major version of [Tiptap](https://tiptap.dev).
7
7
 
8
+ ## [2.2.3] - 2026-01-27
9
+
10
+ ### Added
11
+
12
+ - **Link Navigation**: Added support for opening links via `Ctrl + Click` (Windows/Linux) or `Cmd + Click` (macOS), allowing users to follow links directly from the editor even in edit mode.
13
+
14
+ ## [2.2.2] - 2026-01-26
15
+
16
+ ### Refactored
17
+
18
+ - **Sub-Bubble Menus**: Introduced a new dedicated base class `AteBaseSubBubbleMenu` for specialized menus (link and color). This refactoring centralizes common Tippy.js logic and transition behaviors while preserving the unique anchoring and state-locking requirements of each sub-menu.
19
+
8
20
  ## [2.2.1] - 2026-01-25
9
21
 
10
22
  ### Added
@@ -128,7 +140,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
128
140
 
129
141
  ### Breaking Changes
130
142
 
131
- - **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`).
143
+ - **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 or viewChild()`).
132
144
 
133
145
  ## [0.6.0] - 2026-01-14
134
146
 
package/README.md CHANGED
@@ -69,7 +69,9 @@ import { AngularTiptapEditorComponent } from "@flogeez/angular-tiptap-editor";
69
69
  selector: "app-example",
70
70
  standalone: true,
71
71
  imports: [AngularTiptapEditorComponent],
72
- template: ` <angular-tiptap-editor [content]="content" (contentChange)="onContentChange($event)" /> `,
72
+ template: `
73
+ <angular-tiptap-editor [content]="content" (contentChange)="onContentChange($event)" />
74
+ `,
73
75
  })
74
76
  export class ExampleComponent {
75
77
  content = "<p>Hello <strong>World</strong>!</p>";
@@ -98,7 +100,10 @@ import {
98
100
  standalone: true,
99
101
  imports: [AngularTiptapEditorComponent],
100
102
  template: `
101
- <angular-tiptap-editor [content]="content" [config]="editorConfig" (contentChange)="onContentChange($event)" />
103
+ <angular-tiptap-editor
104
+ [content]="content"
105
+ [config]="editorConfig"
106
+ (contentChange)="onContentChange($event)" />
102
107
  `,
103
108
  })
104
109
  export class AdvancedComponent {
@@ -146,7 +151,10 @@ import { AngularTiptapEditorComponent } from "@flogeez/angular-tiptap-editor";
146
151
  standalone: true,
147
152
  imports: [AngularTiptapEditorComponent],
148
153
  template: `
149
- <angular-tiptap-editor [content]="content" [tiptapExtensions]="extensions" (contentChange)="content = $event" />
154
+ <angular-tiptap-editor
155
+ [content]="content"
156
+ [tiptapExtensions]="extensions"
157
+ (contentChange)="content = $event" />
150
158
  `,
151
159
  })
152
160
  export class CustomExtensionsComponent {
@@ -355,7 +363,10 @@ The handler can return either an **Observable** or a **Promise**.
355
363
  import { Component, inject } from "@angular/core";
356
364
  import { HttpClient } from "@angular/common/http";
357
365
  import { map } from "rxjs/operators";
358
- import { AngularTiptapEditorComponent, AteImageUploadHandler } from "@flogeez/angular-tiptap-editor";
366
+ import {
367
+ AngularTiptapEditorComponent,
368
+ AteImageUploadHandler,
369
+ } from "@flogeez/angular-tiptap-editor";
359
370
 
360
371
  @Component({
361
372
  selector: "app-custom-upload",
@@ -376,7 +387,9 @@ export class CustomUploadComponent {
376
387
  const formData = new FormData();
377
388
  formData.append("image", ctx.file);
378
389
 
379
- return this.http.post<{ url: string }>("/api/upload", formData).pipe(map(result => ({ src: result.url })));
390
+ return this.http
391
+ .post<{ url: string }>("/api/upload", formData)
392
+ .pipe(map(result => ({ src: result.url })));
380
393
  };
381
394
 
382
395
  onContentChange(newContent: string) {