npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@flogeez/angular-tiptap-editor

v3.1.1

Published

A modern, customizable rich-text editor for Angular (18+), built with Tiptap and featuring complete internationalization support

Readme

Angular Tiptap Editor

[!IMPORTANT] ^v3.0.0 uses Tiptap v3. If you need to stay on Tiptap v2, please use version ^2.4.0.

A modern, customizable Angular rich-text editor, built with Tiptap.

NPM Version Demo Try it on StackBlitz

High-performance Angular WYSIWYG editor. Built on top of Tiptap and powered by a native Signals architecture, it features a polished, professional design that feels, I think, clean and modern out of the box. Yet, I've worked to keep it fully customizable: you can easily configure the editor, tweak the UI, or even embed your own Angular components as interactive nodes.


✨ Features

  • Signal-Based: Native performance with ChangeDetectionStrategy.OnPush.

  • 🧩 Angular Nodes: Embed any Angular component as an interactive editor node.

  • ⌨️ UX First: Slash commands (/) and context-aware bubble menus (Notion-like).

  • 📊 Table Power: Advanced management with cell selection and merging.

  • 🖼️ Pro Media: Image resizing, auto-compression, and custom uploaders.

  • 🌍 Built-in i18n: Support for English and French out of the box.

  • 📎 Office-Ready: Clean pasting from Word and Excel.

  • 🎨 Highly Customizable: Easily configure toolbars, bubble menus, and slash command items.

  • 🛠️ Extensible: Easily add custom Tiptap extensions and reactive state calculators.

📦 Installation

npm install @flogeez/angular-tiptap-editor

Add the styles to your angular.json:

{
  "styles": [
    ...
    "node_modules/@fontsource/material-symbols-outlined/index.css",
    "node_modules/@flogeez/angular-tiptap-editor/styles/index.css",
    ...
  ]
}

🚀 Quick Start

1. Global Setup

Initialize the library in app.config.ts:

export const appConfig: ApplicationConfig = {
  providers: [provideAteEditor()],
};

2. Basic Usage

import { AngularTiptapEditorComponent } from "@flogeez/angular-tiptap-editor";

@Component({
  selector: "app-example",
  standalone: true,
  imports: [AngularTiptapEditorComponent],
  template: `<angular-tiptap-editor
    [content]="content"
    (contentChange)="onContentChange($event)" />`,
})
export class ExampleComponent {
  content = "<p>Hello World!</p>";
  onContentChange(html: string) {
    console.log(html);
  }
}

3. Reactive Forms Integration

import { FormControl, ReactiveFormsModule } from "@angular/forms";

@Component({
  standalone: true,
  imports: [AngularTiptapEditorComponent, ReactiveFormsModule],
  template: ` <angular-tiptap-editor [formControl]="contentControl" /> `,
})
export class FormComponent {
  contentControl = new FormControl("<p>Initial content</p>");
}

⚙️ Configuration

The editor is fully configurable via the [config] input:

editorConfig: AteEditorConfig = {
  locale: "fr",
  placeholder: "Commencez à rédiger...",
  toolbar: { ...ATE_DEFAULT_TOOLBAR_CONFIG, highlight: true },
  slashCommands: { heading1: true, table: true },
};

| Input | Type | Description | | ------------ | ----------------- | ---------------------------------- | | [config] | AteEditorConfig | Global config object (recommended) | | [content] | string | Initial HTML content | | [editable] | boolean | Read-only toggle | | [disabled] | boolean | Disabled toggle |

See the API reference for the full list of inputs and configuration options.

🧩 Advanced Features

For deeper integration patterns and complex use cases, check our Advanced Usage Guide.

Custom Angular Nodes

Embed any Angular component as an editor node (e.g., a dynamic counter, a complex widget, IA block, etc.):

angularNodes: [
  {
    component: MyCounterComponent,
    name: "counter",
    attributes: { count: { default: 0 } },
    group: "block",
  },
];

Image Upload Handler

Avoid base64 by providing a custom uploader (S3, Cloudinary, etc.):

uploadHandler: AteImageUploadHandler = ctx => {
  return this.http.post<any>("/api/upload", ctx.file).pipe(map(res => ({ src: res.url })));
};

🌍 i18n & 🎨 Styling

  • Languages: Detects browser language automatically. Extend with AteI18nService.addTranslations().
  • Styling: Customize via CSS variables (e.g., --ate-primary, --ate-border-radius, and much more).
  • Dark Mode: Works natively by adding .dark or [data-theme="dark"].

🔧 Development

npm install
npm run build:lib  # Build library
npm start          # Run demo

📝 License

MIT License - see LICENSE file for details.

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

🔗 Links

Made with ❤️ by FloGeez