Skip to content

v1.8.0 — Editor, Stepper & Banner

Choose a tag to compare

@ndlabdev ndlabdev released this 28 May 10:30
· 215 commits to main since this release
12c1af4

Three new components plus a dependency restructure.

New components

Editor — Rich-text WYSIWYG

Built on Tiptap v3 + ProseMirror. Sub-exported via sv5ui/editor so Tiptap stays out of the bundle for consumers who don't use it.

  • Phase 1: 23 toolbar actions, HTML/JSON output, bindable value + api, bubble menu, char/word counter, sticky toolbar, custom snippets, extension escape hatches.
  • Phase 2: Form/FormField integration, image upload (onImageUpload or URL prompt fallback), resizable tables (8×8 dimension picker), @-mentions with floating popup, markdown output.
  • Phase 3a: Slash commands (/ palette), YouTube embeds, drag handle (block reordering), URL prompt modal (<Modal> + <Form> + <FormField> with valibot schemas requiring http(s)://), markdownAllowHtml opt-in (defaults to false for safety).

Banner — Full-width announcement bar

8 colors, optional icon/title, inline actions, dismiss button, clickable mode (to/target), localStorage-backed dismissal persistence when id is provided.

Stepper — Multi-step wizard

Horizontal/vertical, 5 sizes, 8 colors, pending/active/completed states, linear gating, bindable imperative api (next / prev / goTo / hasNext / hasPrev), roving keyboard navigation. Fully custom — no bits-ui primitive.

Dependency restructure

Tiptap moved from dependencies → optional peerDependencies (matching the existing joi/yup/zod/valibot pattern):

  • Consumers who don't use <Editor> no longer install ~71MB of Tiptap node_modules.
  • Consumers who do use <Editor> install Tiptap peers alongside — see the JSDoc on sv5ui/editor for the install command.

SemVer

Minor bump (1.7.0 → 1.8.0). No breaking changes — all three components are new, and the Tiptap deps move only affects <Editor> users (which didn't exist in 1.7.0).

Stats

  • 2368/2368 tests passing
  • 54 new Editor tests + new Banner/Stepper specs

Full changelog: https://github.com/ndlabdev/sv5ui/blob/main/CHANGELOG.md#180---2026-05-28