{"_id":"@asnewyla/unstyled-checkbox","name":"@asnewyla/unstyled-checkbox","dist-tags":{"latest":"0.2.0"},"versions":{"0.2.0":{"name":"@asnewyla/unstyled-checkbox","version":"0.2.0","description":"Unstyled checkbox input primitive with accessibility","license":"MIT","repository":{"type":"git","url":"git+https://github.com/xavierDelaFuente/xd-components.git","directory":"packages/unstyled-checkbox"},"publishConfig":{"access":"public"},"main":"dist/index.js","module":"dist/index.mjs","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"sideEffects":false,"keywords":["react","checkbox","unstyled","accessible"],"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"devDependencies":{"react":"^18.3.0","react-dom":"^18.3.0","tsup":"^8.1.0","vitest":"^2.0.0","@vitest/coverage-v8":"^2.0.0","@testing-library/react":"^16.0.0","@testing-library/user-event":"^14.5.0","@testing-library/jest-dom":"^6.4.0","jsdom":"^24.0.0","typescript":"^5.5.0"},"scripts":{"build":"tsup","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage","type-check":"tsc --noEmit"},"_nodeVersion":"24.19.0","_id":"@asnewyla/unstyled-checkbox@0.2.0","dist":{"integrity":"sha512-d9dnPVX8VC4MNHfzKDBSfyPBOQ3oirOtdS5sOgwc1m3ISd4JywNvmNfxOKERBCBz6lrxIdRlI8eUfAltW0geVA==","shasum":"607ea74a2d16155a8fc9e79dc696291e870b4045","tarball":"https://registry.npmjs.org/@asnewyla/unstyled-checkbox/-/unstyled-checkbox-0.2.0.tgz","fileCount":9,"unpackedSize":19135,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIG3c2qSTzuZBaYmPa0vODdlBmA84koBlRuN0aKAS1pGtAiBxZSx6YzG4D/AM4ioy0rqWAg8kYUYuduDWQnRpnejPrg=="}]},"_npmUser":{"name":"asnewyla","email":"asnewyla@gmail.com"},"directories":{},"maintainers":[{"name":"asnewyla","email":"asnewyla@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/unstyled-checkbox_0.2.0_1787564634577_0.038751656279820246"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-24T09:43:54.391Z","0.2.0":"2026-08-24T09:43:54.725Z","modified":"2026-08-24T09:43:54.931Z"},"maintainers":[{"name":"asnewyla","email":"asnewyla@gmail.com"}],"description":"Unstyled checkbox input primitive with accessibility","keywords":["react","checkbox","unstyled","accessible"],"repository":{"type":"git","url":"git+https://github.com/xavierDelaFuente/xd-components.git","directory":"packages/unstyled-checkbox"},"license":"MIT","readme":"# @asnewyla/unstyled-checkbox\n\nUnstyled, accessible checkbox input primitive. Handles checked/indeterminate\nstate, focus, and invalid-state tracking without imposing any visual\nstyling — the base layer under `@asnewyla/checkbox`.\n\n## Install\n\n```bash\nnpm install @asnewyla/unstyled-checkbox\n```\n\n## Usage\n\n```tsx\nimport { UnstyledCheckbox } from '@asnewyla/unstyled-checkbox';\n\n// Uncontrolled\n<UnstyledCheckbox aria-label=\"Accept terms\" defaultChecked={false} />\n\n// Controlled\n<UnstyledCheckbox\n  aria-label=\"Accept terms\"\n  checked={accepted}\n  onChange={(e) => setAccepted(e.target.checked)}\n/>\n\n// Indeterminate (\"select all\" style)\n<UnstyledCheckbox aria-label=\"Select all\" indeterminate />\n\n// Invalid state\n<UnstyledCheckbox aria-label=\"Accept terms\" invalid />\n```\n\n### Props\n\n| Prop | Type | Default |\n|---|---|---|\n| `checked` / `defaultChecked` | `boolean` | — |\n| `indeterminate` | `boolean` | `false` |\n| `onChange` | `(event: React.ChangeEvent<HTMLInputElement>) => void` | — |\n| `disabled` | `boolean` | `false` |\n| `invalid` | `boolean` | `false` |\n\nUncontrolled by default, same as a native `<input type=\"checkbox\">` — pass\n`checked` + `onChange` to control it yourself. `indeterminate` is a\nDOM-only property with no HTML attribute or plain-JSX-prop equivalent, so\nit's applied imperatively via a ref internally; you don't need to do\nanything differently as a consumer.\n\nState is exposed via `data-checked`, `data-indeterminate`, `data-focused`,\n`data-disabled`, and `data-invalid`/`aria-invalid` — style off these\nattributes in `@asnewyla/checkbox` (or your own styled wrapper) rather than\n`:checked`/`:indeterminate` pseudo-classes, for the same DevTools-visible,\ntest-stable reasons every other `@asnewyla/*` primitive uses `data-*` for\nstate.\n\n## License\n\nMIT\n","readmeFilename":"","_rev":"1-890c5e5ec1f1da427981dcef1ccd9a05"}