Skip to content

TipTap-based editor core #2

Closed
Closed

Description

@n4ff4h

The editor in TypeScript on TipTap, usable from React and from a Blade-mounted vanilla entry, shipped through javaabu/manifest.

Activity

  1. added
    next-genNext-gen Javaabu packages
    featurePackage feature from the spec
    on Nov 4, 2026
  2. n4ff4h commented on Nov 5, 2026

    @n4ff4h
    CollaboratorAuthor

    Done on main (092e4c0, 8d89c08, e9354bc).

    • createBlockEditor(element, options) in resources/js/editor is a framework-free editor on @tiptap/core, configured by the PHP editor config. It has a toolbar (marks, link, logical alignment, block type, table tools, block actions, undo/redo, Thaana), a / menu, a + inserter, and a block handle (drag, move, duplicate, delete). The settings panel is generated from the attribute definitions, and server errors show on the block.
    • Blade: block-editor::editor mounts every [data-block-editor] and keeps a hidden input in sync (window.JavaabuBlockEditor). React: BlockEditor wraps the same core, so both stacks behave the same.
    • Shipped through javaabu/manifest (@javaabu/block-editor, block-editor::editor, block-editor::styles, prebuilt dist/).
    • Reused from Onu: ThaanaKeyboard, AutoDirection, CalloutNode, Embed, attachThaanaKeyboard. Onu's BlockEditor component wasn't reused, because its menus are a closed set. Suggested an extension point and a React-free entry in Editor: a React-free entry for the TipTap extensions, and custom block types in BlockEditor onu#62.
    • Decision: the UI is vanilla DOM styled with Onu's CSS variables, rather than Onu React components, so Blade pages don't need React at runtime.
    • Checked in headless Chromium: slash menu, inserter, settings, Thaana typing, keyboard moves with announcements, and drag and drop.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    featurePackage feature from the specnext-genNext-gen Javaabu packages

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions