@tsrx/ripple@0.2.3
Ripple-TS/ripple@tsrx/ripple@0.2.3Sep 17, 2026by github-actions[bot]
Upgrading?
AI Summary
A patch release updating the core dependency and mirroring the performance and namespace fixes found in v0.4.4 of the main ripple package.
Key Highlights
- Updated to @tsrx/core ^0.2.3
- Faster element spreads and dynamic elements
- Fixed SVG and MathML namespace issues for dynamic classes and foreignObject
- Optimized dynamic element rendering logic
New Features
- Performance optimizations for element rendering
- Namespace handling improvements for SVG/MathML
Full Release Notes
### Patch Changes
- [#1496](https://github.com/Ripple-TS/ripple/pull/1496)
[`0473e93`](https://github.com/Ripple-TS/ripple/commit/0473e93006e53cd15fcf6d851443d427ccf13e8b)
Thanks [@leonidaz](https://github.com/leonidaz)! - Update `@tsrx/core` to ^0.2.3
and use its SVG and MathML tag-name predicates for dynamic class handling,
removing the compiler's duplicate tag-name list.
- [#1488](https://github.com/Ripple-TS/ripple/pull/1488)
[`b3bf787`](https://github.com/Ripple-TS/ripple/commit/b3bf78756d9235412a2af264e42897652e8f911e)
Thanks [@leonidaz](https://github.com/leonidaz)! - Build a template that is one
element with static attributes and at most a text child with DOM calls instead
of parsing it. Parsing a `<template>` has a fixed cost that dwarfs such an
element, and an app's first render pays it once per distinct template; a chain
of 100 single-element components mounts about 35% faster.
- [#1495](https://github.com/Ripple-TS/ripple/pull/1495)
[`1b8381f`](https://github.com/Ripple-TS/ripple/commit/1b8381f31f98f84049764ca56676fc320721e844)
Thanks [@leonidaz](https://github.com/leonidaz)! - Faster element spreads,
dynamic elements and list items. An element spread is applied from the element's
own render function instead of a render block of its own, and a spread object
identical to the one applied last is skipped without a diff (a spread of a
tracked object or of tracked values is always diffed). A dynamic element
(`<{tag}>`) is one block that owns its element and applies its attributes
itself; a tag that does not change keeps its element and diffs the attributes,
so a swap between variants with the same tag no longer recreates the element. An
`@if` whose condition reads tracked state is evaluated by the render function of
the enclosing content (a list item's, an element's), so the if keeps a block for
its branch but not one that runs the condition. A dynamic element or component
called inside an `<svg>` or `<math>` template receives the namespace as an
argument instead of a `with_ns` closure. A dynamic element without children is
driven by the render function of the content it sits in, with no block or
closures of its own (`_$_.dynamic`); a build that can hydrate lets a composite
block claim the server element while hydrating. With `textTypes`, an attribute
value TypeScript proves to be a string is set with a direct `setAttribute` call,
and a proven `class` takes the string-only path. On the SVG dashboard benchmark,
mounting is about 20% faster and swapping 150 dynamic icons 40% faster.
- [#1490](https://github.com/Ripple-TS/ripple/pull/1490)
[`ff3a26a`](https://github.com/Ripple-TS/ripple/commit/ff3a26acef0c9584cf41d32bc8cbcc39d863d74c)
Thanks [@leonidaz](https://github.com/leonidaz)! - Namespace fixes for elements
whose namespace is only known at runtime. The children of a `foreignObject`
reset the active namespace to HTML during setup, so control flow and dynamic
tags inside one render HTML even when the surrounding `<svg>` belongs to another
component. A dynamic element's children take their namespace from the tag the
runtime resolves instead of the static parent. A dynamic `class` on an SVG or
MathML tag name is set as an attribute rather than through `className`, which
threw on an SVG element rendered into a component's `<svg>`.Related Repositories
affaan-m/ECC★ 285,750
The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.
react/react★ 251,623
The library for web and native user interfaces.
nodejs/node★ 122,515
Node.js JavaScript runtime ✨🐢🚀✨
Leonxlnx/taste-skill★ 100,596
Agent skills that give coding agents taste: art direction, reference images and a browser check instead of generic AI pages
louislam/uptime-kuma★ 92,731
A fancy self-hosted monitoring tool