JSPM

@zag-js/checkbox

0.1.6
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 314247
  • Score
    100M100P100Q176853F
  • License MIT

Core logic for the checkbox widget implemented as a state machine

Package Exports

  • @zag-js/checkbox
  • @zag-js/checkbox/dist/index.js
  • @zag-js/checkbox/dist/index.mjs

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@zag-js/checkbox) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

@zag-js/checkbox

Core logic for the checkbox widget implemented as a state machine

Installation

yarn add  @zag-js/checkbox
# or
npm i  @zag-js/checkbox

Technical Considerations

  • When the checkbox is surrounded by a form, we consider the effect of form "reset" event with a trackFormReset activity in the machine.
  • When the checkbox is surrounded by fieldset and the fieldset is disabled, we react to set sync the disabled state accordingly with a trackFieldsetDisabled activity in the machine.
  • A name can be passed to the machine object during initialization, which we pass to the input, to ease use in forms.
  • The API exposes a setChecked method to programmatically control the checkbox's state. We automatically dispatch a native event when this is done, so when used in a form, the form can detect those changes.
  • The checkbox machine accepts an indeterminate key, to make it indeterminate by default. The API also exposes a setIndeterminate method, to toggle this programmatically.
  • The API exposed a view variable of type "checked" | "unchecked" | "mixed" so you can render parts, based on the current visual state of the checkbox. mixed is when the checkbox is indeterminate.

Contribution

Yes please! See the contributing guidelines for details.

Licence

This project is licensed under the terms of the MIT license.