{"_id":"@anil-labs/select-solid","name":"@anil-labs/select-solid","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@anil-labs/select-solid","version":"0.1.0","description":"Solid headless adapter for @anil-labs/select — a primitive wiring the core machine to Solid signals.","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"sideEffects":false,"keywords":["solid","solid-js","headless","signals","select","combobox","multiselect","tags","autocomplete","a11y","typescript"],"engines":{"node":">=20"},"license":"MIT","author":"Er. Anil Kumar Thakur <anilkumarthakur60@gmail.com>","repository":{"type":"git","url":"git+https://github.com/anilkumarthakur60/select.git","directory":"packages/solid"},"homepage":"https://github.com/anilkumarthakur60/select/tree/main/packages/solid#readme","bugs":"https://github.com/anilkumarthakur60/select/issues","publishConfig":{"access":"public"},"dependencies":{"@anil-labs/select-core":"^0.1.0"},"devDependencies":{"@vitest/coverage-v8":"^4.1.5","tsup":"^8.5.1","typescript":"~6.0.0","vitest":"^4.1.5","solid-js":"1.9.12","jsdom":"^29.0.2","@types/node":"^24.12.2"},"peerDependencies":{"solid-js":"^1.8.0"},"scripts":{"clean":"rm -rf dist coverage","build":"tsup","dev":"tsup --watch","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage","typecheck":"tsc --noEmit","lint":"eslint ."},"_nodeVersion":"24.18.0","_id":"@anil-labs/select-solid@0.1.0","dist":{"integrity":"sha512-jBlP89tGPheU0wFgkw1x82jvXy4ORY6iHJtWIDfh9knH57hy/m/ooshtKCHfm+kC+cvx1xOd7SXeQlEU91QCRQ==","shasum":"f6e270736351f95bfac8485dcf964412818945b5","tarball":"https://registry.npmjs.org/@anil-labs/select-solid/-/select-solid-0.1.0.tgz","fileCount":7,"unpackedSize":8420,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICa4sx7E1vTGHx1AHMTr6v3an7X/YZPdKT9Wr/CuD9DpAiEA1XJlh8ayW9MIOXT7z+nW4CIY612u2PgBzGWuDS4418k="}]},"_npmUser":{"name":"anilkumarthakur","email":"anilkumarthakur60@gmail.com"},"directories":{},"maintainers":[{"name":"anilkumarthakur","email":"anilkumarthakur60@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/select-solid_0.1.0_1784650666475_0.6402993716869858"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-21T16:17:46.258Z","0.1.0":"2026-07-21T16:17:46.635Z","modified":"2026-07-21T16:17:46.833Z"},"maintainers":[{"name":"anilkumarthakur","email":"anilkumarthakur60@gmail.com"}],"description":"Solid headless adapter for @anil-labs/select — a primitive wiring the core machine to Solid signals.","homepage":"https://github.com/anilkumarthakur60/select/tree/main/packages/solid#readme","keywords":["solid","solid-js","headless","signals","select","combobox","multiselect","tags","autocomplete","a11y","typescript"],"repository":{"type":"git","url":"git+https://github.com/anilkumarthakur60/select.git","directory":"packages/solid"},"author":"Er. Anil Kumar Thakur <anilkumarthakur60@gmail.com>","bugs":"https://github.com/anilkumarthakur60/select/issues","license":"MIT","readme":"# @anil-labs/select-solid\n\nSolid adapter for [`@anil-labs/select`](https://github.com/anilkumarthakur60/select).\n\nThis adapter is **headless**: it ships no JSX component, just a primitive that\nwires the shared\n[`@anil-labs/select-core`](https://github.com/anilkumarthakur60/select/tree/main/packages/core)\nmachine to a Solid signal, so you build your own markup with full reactivity.\n\n## Install\n\n```sh\nnpm install @anil-labs/select-solid @anil-labs/select-core\n```\n\n## Usage\n\n```tsx\nimport { createSelect, toSolidProps } from '@anil-labs/select-solid'\nimport '@anil-labs/select-core/styles.css'\n\nfunction FruitPicker() {\n  const select = createSelect({\n    options: ['apple', 'banana', 'cherry'],\n    mode: 'multiple',\n  })\n\n  return (\n    <div {...toSolidProps(select.machine.getRootProps())}>\n      {/* reading select.tick() subscribes this scope to machine updates */}\n      <input {...toSolidProps(select.machine.getInputProps())} />\n      <Show when={select.tick() >= 0 && select.machine.getState().isOpen}>\n        <ul {...toSolidProps(select.machine.getMenuProps())}>\n          <For each={select.machine.getFilteredOptions()}>\n            {(option, i) => (\n              <li {...toSolidProps(select.machine.getOptionProps(i()))}>{option.label}</li>\n            )}\n          </For>\n        </ul>\n      </Show>\n    </div>\n  )\n}\n```\n\n`select.tick()` must be read inside any reactive scope that should re-run when\nthe machine changes — the signal flips on every notification. Cleanup is\nregistered automatically via `onCleanup`.\n\n`toSolidProps` maps the core's Vue-JSX-style event keys (`onMousedown`) to\nSolid's lowercased ones (`onmousedown`).\n\n## Not supported here\n\nTree select is Vue-only for now — use\n[`@anil-labs/select-vue`](https://github.com/anilkumarthakur60/select/tree/main/packages/vue)\nif you need hierarchical selection.\n\n## Styles\n\nThe stylesheet lives in `@anil-labs/select-core` so every adapter shares one\ncopy — importing it from this package will not work.\n\n## License\n\nMIT © [Er. Anil Kumar Thakur](https://github.com/anilkumarthakur60)\n","readmeFilename":"","_rev":"1-1daefbcdf441f0432a151b6331a48914"}