Skip to content

Ridu v0.17.0

Choose a tag to compare

@github-actions github-actions released this 08 Oct 02:55

Ridu 0.17.0

SvelteKit applications can now let their users write rich text with the editor the admin uses, and
Ridu's Svelte packages ship as ordinary compiled Svelte libraries.

Changes

  • @riducms/plugin-richtext/editor exports RichTextEditor, which edits a richtext.Field value
    in an application. It needs no Vite plugin, preprocessing, Sass, or admin runtime. Bind it to the
    field's value and save that value through the generated client; pass the same features as the
    Go field, and every edit passes the field's validation.
  • The editor renders with SvelteKit's server rendering: the server shows the saved document with
    the editor's styles, and the browser swaps in the editor without moving the page.
  • toolbar places the formatting controls over a selection, above the text, or both, and the
    admin's layout options (hideGutter and the block controls) are props. lang, dir, and
    messages translate it; it includes English, French, and Arabic.
  • The editor's colors, fonts, and main sizes are --ridu-richtext-* custom properties. The
    defaults follow the admin theme, or an application theme that uses shadcn-style names such as
    --foreground and --border, and fall back to a neutral light theme. Sass users can configure
    the defaults with @use "@riducms/plugin-richtext/editor.scss" with (...). The admin looks the
    same as in 0.16.2.
  • On touch screens, toolbar buttons and menu options are 44 pixels, and a fixed toolbar stays in view
    while the on-screen keyboard is open.
  • The new Use the editor in your app guide covers
    installation, saving, translation, styling, server rendering, and phones.
  • Ridu's Svelte packages (@riducms/ui, @riducms/plugin, the official admin plugins, and
    @riducms/sveltekit) follow the sv create library template and publish svelte-package output
    in dist. Their component stylesheets are compiled to CSS, so applications need no Sass, and
    @riducms/translations publishes compiled JavaScript, so applications can import
    @riducms/plugin during server rendering.
  • With TabbedUI, the SEO plugin shows one tab bar with Content and SEO, instead of two tab bars
    where selecting SEO didn't hide the content.
  • Menus and popovers no longer cause a Svelte derived_inert warning in development when they open
    and close quickly, after an upgrade to Bits UI 2.19.5.
  • Ridu uses golang.org/x/text v0.41.0, which fixes a panic on crafted input in its precis
    package (GO-2026-6629). govulncheck found it
    reachable from the admin's search parameter decoding.

Breaking changes and upgrade

Update the Go module and all Ridu npm packages to 0.17.0 together, regenerate application contracts,
and rebuild the admin and application binary. This release changes no Go APIs, authoring config,
manifest or protocol versions, REST or SDK behavior, migration planners, or database layouts, so
existing databases and migration histories need no changes.

  • Ridu's Svelte packages export only their compiled dist. Imports of their src paths, or of the
    @ui/*, @plugin-richtext/*, and @plugin-seo/* aliases, must use the packages' public exports.
  • @riducms/build no longer exports createAdminLibraryConfig.
  • Generated admins no longer need the @ui/*, @plugin-richtext/*, and @plugin-seo/* paths in
    admin/tsconfig.json, the Lexical preprocessing in admin/vite.config.ts, or the
    @hvniel/lexical-svelte dependency in admin/package.json. They no longer do anything; remove
    them. New projects don't have them.
  • Admin plugins keep their contract. @riducms/ui and @riducms/admin require Bits UI 2.19.5, and
    @riducms/plugin-richtext adds esm-env as a dependency.

This is a pre-1 release with breaking contracts; keep the coordinated packages aligned. Production
still runs as a Go binary with its static admin embedded, without a JavaScript server.