Skip to content

Releases: hotwired/stimulus

v2.0.0

04 Dec 17:21
Compare
Choose a tag to compare
  • NEW: Values and CSS classes APIs (#202)
  • NEW: Support for DOM event listener options (#232)
  • CHANGED: Target attributes are now scoped by identifier (2235047)
  • CHANGED: Default event for text inputs from change to input (14ba2ab, #248)
  • FIXED: Invoking actions for events dispatched during connect (6129975, #222)
  • FIXED: Error using SVG elements in IE 11 (aa76e25, #274)
  • FIXED: Nested global action binding (2b6facc, #307)

If you're upgrading from a previous version of Stimulus, note that the syntax for target attributes has changed to move the controller identifier into the attribute's name. The new format is data-[identifier]-target="[name]" instead of data-target="[identifier].[name]". You can still use the old syntax, but you will see a warning in the console, and support will be removed in a future version.

The data map API from Stimulus 1.0 will continue to work but is no longer documented and should be considered internal. We suggest migrating to the new values API.

v1.1.1

07 Jan 20:46
Compare
Choose a tag to compare
  • CHANGED: Various documentation improvements (#190, #193, #206)
  • FIXED: Type declarations for webpack helpers in the stimulus package (#214)
  • FIXED: Pin @stimulus/polyfills dependencies to work around upstream changes (0251c87)

v1.1.0

23 Aug 21:37
Compare
Choose a tag to compare
  • NEW: Stimulus Reference documentation
  • NEW: Ordered actions (#149)
  • NEW: @stimulus/polyfills package for legacy browser support (#134, #147, #170)
  • CHANGED: Applications now start when the DOM is interactive (#131)
  • CHANGED: Unminified UMD module for easier debugging (#151)
  • FIXED: Stimulus now accounts for missing mutation notifications from nodes removed by innerHTML assignment in IE 11 (#133) and, in rare cases, when annotating elements synchronously after removing them from an observed tree (#161)
  • INTERNAL: Upgraded to TypeScript 2.8.1 and Lerna 3.0.0-rc.0
  • INTERNAL: New build system (#155)

v1.1.0-beta.1

01 Aug 21:02
Compare
Choose a tag to compare
v1.1.0-beta.1 Pre-release
Pre-release
  • NEW: Ordered actions (#149)
  • NEW: @stimulus/polyfills package for legacy browser support (#134, #147, #170)
  • CHANGED: Applications now start when the DOM is interactive (#131)
  • CHANGED: Unminified UMD module for easier debugging (#151)
  • FIXED: Stimulus now accounts for missing mutation notifications from nodes removed by innerHTML assignment in IE 11 (#133) and, in rare cases, when annotating elements synchronously after removing them from an observed tree (#161)
  • INTERNAL: Upgraded to TypeScript 2.8.1 and Lerna 3.0.0-rc.0
  • INTERNAL: New build system (#155)

v1.0.1

02 Feb 22:06
Compare
Choose a tag to compare
  • Fix inconsistent this.has*Target property names in different locales (#93)

v1.0.0

30 Jan 20:40
Compare
Choose a tag to compare
  • NEW: Linked target properties (#61, #68)

    Define a controller's target names and Stimulus automatically creates properties for accessing them:

    export default class extends Controller {
      static targets = [ "source" ]
    
      initialize() {
        this.sourceTarget    // Element
        this.sourceTargets   // Element[]
        this.hasSourceTarget // boolean
      }
    }
  • NEW: Configurable error handler (#53)

    const application = Application.start()
    
    application.handleError = (error, message, detail) => {
      console.warn(message, detail)
      Raven.captureException(error)
    }
  • NEW: Namespaced identifiers (#65)

    If your controller file is named… its identifier will be…
    list_item_controller.js list-item
    users/list_item_controller.js users--list-item
  • CHANGED: Controller autoloading with webpack (#46)

    A new definitionsFromContext helper replaces the old autoload helper:

    const application = Application.start()
    -const context = require.context("./controllers", true, /\.js$/)
    -autoload(context, application)
    +const context = require.context("./controllers", true, /\.js$/)
    +application.load(definitionsFromContext(context))
  • REMOVED: Action method event target argument (#55)

    Previously, action methods were invoked with two arguments: event, eventTarget. Now, only the event is passed:

    -greet(event, eventTarget) {
    -  console.log(event, eventTarget)
    +greet(event) {
    +  console.log(event, event.target)
     }
  • REMOVED: Controller#{add,remove}Action (#50)

    Noted for posterity since these methods were undocumented.

v0.9.0

30 Jan 11:17
Compare
Choose a tag to compare

Initial public release