All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
0.1.0 - 2026-07-22
Added
Tiptapex.Components.tiptapex_editor/1andtiptapex_viewer/1HEEx components withdata-ttx-*-driven configuration, two sync modes (:push_eventand{:hidden_input, field}), per-id namespacedset-contentevents, and an:actionsfooter slot.- JS hooks (
TiptapexEditor,TiptapexViewer) shipped as raw ESM inside the Hex package with@tiptap/*as npm peer dependencies; configurable toolbar (group registry, i18n labels, custom buttons), floating table menu, resizable image/video extensions, font-size/line-height/ background-color/trailing-node/selection-preserve extensions, attachment drag & drop. Tiptapex.Renderer— server-side Tiptap JSON → safe HTML with full node/mark coverage, URL and CSS sanitization, YouTube-only iframes, extensible node/mark registries,to_plain_text/1andheadings/1.Tiptapex.Uploadbehaviour,Tiptapex.Upload.Controllermacro, andTiptapex.Upload.Validatorwith size limits and magic-byte content-type verification;Tiptapex.Upload.LocalDiskconvenience handler.Tiptapex.Collab.Channelmacro implementing the Yjs-over-Phoenix- Channels relay protocol, withauthorize/3and optionalload_state/2/persist_update/3hooks;CollabPluginJS entry point (tiptapex/collaboration) kept separate so yjs stays out of non-collab bundles.Tiptapex.Schema.DocumentEcto type (optionalectodependency).- Themeable stylesheet (
priv/static/tiptapex.css) scoped underttx-*classes with--ttx-*custom properties falling back to daisyUI tokens. - Single-file dev/demo server (
iex -S mix dev).