@zag-js/checkbox
Version:
Core logic for the checkbox widget implemented as a state machine
34 lines (24 loc) • 1.5 kB
Markdown
# -js/checkbox
Core logic for the checkbox widget implemented as a state machine
## **Installation**
```sh
yarn add -js/checkbox
# or
npm i -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](https://github.com/chakra-ui/zag/blob/main/CONTRIBUTING.md) for details.
## Licence
This project is licensed under the terms of the [MIT license](https://github.com/chakra-ui/zag/blob/main/LICENSE).