Skip to content

Releases: dy/sprae

v13.0.0

14 Mar 17:05
@dy dy

Choose a tag to compare

Features

  • Observer directives: :mount, :change, :intersect, :resize
  • Web component boundaries: directives on custom elements are treated as prop setters, parent traversal stops at component boundary
  • define-element integration
  • :ref path refs and callback refs

Changes

  • :value is now one-way state β†’ DOM
  • Use :change for DOM β†’ state write-back
  • Use :mount for setup/cleanup instead of lifecycle-style :ref
  • :intersect and :resize handle their own modifiers

Fixes

  • Fixed radio and select-multiple handling in :value
  • Fixed style property filtering
  • Caret preservation in :text

Improvements

  • Faster clsx, class iteration, and sequence parse setup
  • More tests for portal, fx, hidden, events, text, default attrs, forms, and custom elements
  • Docs, recipes, and comparison updates for v13

Full Changelog: v12.4.17...v13.0.0

v12.4.17

14 Mar 17:07
@dy dy

Choose a tag to compare

  • Template support in :html, plus better :scope and template interaction
  • Better custom DOM / ownerDocument / fakedom compatibility
  • Better cleanup and disposal, including nested :if state persistence and :ref + :if fixes
  • Form and style fixes: keep date inputs as strings, autofill workaround, class/style/css-var edge cases
  • Better error reporting with source element context
  • Added preact-signals build
  • Added browser test runner and broader test coverage
  • Docs, examples, readme, and site polish

Full Changelog: v12.4.16...v12.4.17

v12.4.0

31 Jan 18:28
@dy dy

Choose a tag to compare

Documentation

  • Alpine migration guide (alpine.md)
  • Plugins docs in docs.md
  • CSP comparison updates
  • JSDoc additions throughout

Features

  • .throttle-Ns, .debounce-Ns duration parsing (e.g., .throttle-1s, .debounce-500)
  • .debounce-immediate, .throttle-immediate variants
  • .throttle-idle, .debounce-idle (requestIdleCallback)
  • :portal directive
  • Better error hints with element context
  • Separate exports for sprae/store, sprae/signal

Improvements

  • Performance enhancements
  • Better traversal (firstChild/nextSibling vs spread)
  • JSDoc type annotations
  • Tests and benchmarks

Cleanup

  • Removed dist/ folder
  • Removed micro build

Full Changelog: v12.3.0...v12.4.0

v12.3.0

14 Nov 18:44
@dy dy

Choose a tag to compare

  • Factored out :on directive
  • Separate sequences directive
  • Added micro bundle
  • Streamlined modifiers engine
  • Signals fixes

Full Changelog: v12.2.0...v12.3.0

v12.2.0

26 Oct 20:40
@dy dy

Choose a tag to compare

  • Make target modifiers available for prop directives, :style.root={"--x":x}
  • Add .body, .root modifiers
  • Expose version as sprae.version

Full Changelog: v12.1.0...v12.2.0

v12.1.0

17 Oct 03:55
@dy dy

Choose a tag to compare

What's Changed

  • Prop modifiers .debounce, .throttle, .once
  • Better expr syntax allowance
  • Async/await support
  • Functions as directives values
  • :with renamed to :scope
  • Scope write transparency
  • Autoinit lifecycle watcher

Full Changelog: v11.5.3...v12.1.0

v11.5.3

12 Apr 02:56
@dy dy

Choose a tag to compare

Full Changelog: v11.5.1...v11.5.3

v11.5.1

01 Apr 20:06
@dy dy

Choose a tag to compare

  • Configurable attributes prefix :
  • Autoinit as <script src="https://unpkg.com/sprae" prefix="s-">
  • UMD as dist/sprae.umd
  • Squiiish! <4kb
  • Fixed :each="(a)in{b}"
  • Perf optimizations

Full Changelog: v11.1.3...v11.5.1

v11.1.1

31 Mar 03:19
@dy dy

Choose a tag to compare

What's Changed

  • Pause effects by @dy in #56
  • Ensure :value, :ref props in state #53
  • dir constructor for directives
  • Optimized :each directive
  • Optimized :if directive
  • -200 bytes, slightly better perf

Full Changelog: v11.0.5...v11.1.3

v11.0.5

12 Feb 02:25
@dy dy

Choose a tag to compare

  • Fixes :each batch, increasing append perfornace from O(n2) to O(n)
  • Fixes events within fragments #51
  • Fixes select multiple cases #52

Full Changelog: v11.0.0...v11.0.5