Chris Jones 7bf516d8af feat: expose TipTap/ProseMirror globals for custom rich editor extensions (#19559)
* feat: expose TipTap/ProseMirror globals for custom extensions

Custom extensions loaded via RichContentPlugin::getTipTapJsExtensions()
are fetched at runtime via dynamic import(). Each extension bundle must
currently include its own copy of TipTap/ProseMirror, leading to:

- Duplicate ProseMirror instances on the page
- instanceof checks failing across bundles (e.g. DecorationSet)
- ~150-200 KB of redundant JS per extension

This adds window.Filament.TipTap with the core ProseMirror modules
(@tiptap/core, @tiptap/pm/state, @tiptap/pm/view, @tiptap/pm/model)
already bundled in rich-editor.js. Custom extension builds can mark
@tiptap/* as external and resolve from this global at runtime,
sharing the same ProseMirror instance as the host editor.

Non-breaking: existing extensions that bundle their own TipTap
continue to work unchanged.

* Discard changes to packages/forms/dist/components/rich-editor.js

* chore: fix code style

* clean up & docs

---------

Co-authored-by: leek <leek@users.noreply.github.com>
Co-authored-by: Dan Harrin <git@danharrin.com>
2026-04-20 13:24:33 +01:00
2026-02-24 21:41:58 +00:00
2026-01-23 08:56:48 +00:00
2023-06-05 17:01:11 +02:00
2023-08-18 10:25:52 +02:00
wip
2024-02-27 22:02:36 +08:00
2025-01-24 08:26:51 +00:00
2025-03-20 11:01:45 +00:00
2024-07-21 11:04:29 +01:00
2022-07-15 09:24:26 +00:00
2025-08-12 09:53:53 +01:00
2023-08-07 09:55:28 +01:00
2025-01-23 12:51:54 +00:00
2026-02-24 21:45:58 +00:00
2025-03-02 11:05:32 +00:00
2025-03-20 11:01:45 +00:00

Banner

Tests passing Laravel v11+ Livewire v3 PHP 8.2+

filamentphp%2Ffilament | Trendshift

Build apps & admin panels fast, for your bright ideas.

With a solid Laravel foundation and a polished UI, you can focus on what makes your product unique. Filament gives you UI components that you won't outgrow — a cohesive set of well-considered building blocks that adapt as your application grows in complexity.

  • Tables — Browse and filter large datasets with powerful columns, actions, and bulk operations.
  • Forms — Build complex, reactive forms using a set of reusable, state-aware components.
  • Infolists — Render read-only record views with structured layouts and custom formatting.
  • Notifications — Trigger in-app feedback for actions, errors, and system events with minimal setup.
  • Dashboard widgets — Surface key metrics and trends using live, data-driven widgets tailored to each user.
  • Action modals — Handle confirmations and data entry with focused modal workflows tied to actions.

Get StartedLaunch DemoJoin Discord


Special thanks to Warp for sponsoring Filament through GitHub Sponsors:

Warp sponsorship

Warp, built for coding with multiple AI agents.


Contributing

Please see our contributing guide.

Need Help?

🐞 If you spot a bug, please submit a detailed issue, and wait for assistance.

🤔 If you have a question or feature request, please start a new discussion. We also have a Discord community. For quick help, ask questions in the appropriate channel.

🔐 If you discover a vulnerability, please review our security policy.

S
Description
A powerful open source UI framework for Laravel • Build and ship admin panels & apps fast with Livewire
Readme 693 MiB
Languages
PHP 89.2%
JavaScript 5.2%
Blade 3.6%
CSS 1.9%