{"_id":"@agencecinq/combobox","_rev":"7-b8ecb8425e68075044b047d0bf19e958","name":"@agencecinq/combobox","dist-tags":{"latest":"2.0.0"},"versions":{"1.0.0":{"name":"@agencecinq/combobox","version":"1.0.0","author":{"url":"https://agencecinq.com","name":"Jérémy Levron","email":"jeremy@agencecinq.com"},"license":"MIT","_id":"@agencecinq/combobox@1.0.0","maintainers":[{"name":"19h47","email":"jeremylevron@19h47.fr"}],"homepage":"https://github.com/agencecinq/shopify#readme","bugs":{"url":"https://github.com/agencecinq/shopify/issues"},"dist":{"shasum":"2390a34d9b152021d1edf511ad75f589601b120c","tarball":"https://registry.npmjs.org/@agencecinq/combobox/-/combobox-1.0.0.tgz","fileCount":13,"integrity":"sha512-ulj0XV79nJBu6HgM5fRDHulG1rOc84e5YBs++aBYcOC3pwQdByZx1xE9lO9d+HrqMnaZ2RQbdI85pidIf2hpmw==","signatures":[{"sig":"MEUCICgIKRy1f4D4GCicams1uNlfHO88YvduTRTsBkRd2ZE2AiEAzYVpd8HSj8GWqvJXw+71LtqWxuoPKM7XvuBpMUx8wkk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36816},"main":"./dist/index.js","type":"module","_from":"file:agencecinq-combobox-1.0.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"vite build --watch","build":"vite build"},"_npmUser":{"name":"19h47","email":"jeremylevron@19h47.fr"},"_resolved":"/private/var/folders/vt/kpbgrh4d7k14zvxmcm01bfxh0000gn/T/d9bb09a985230b403485e2e500a7101e/agencecinq-combobox-1.0.0.tgz","_integrity":"sha512-ulj0XV79nJBu6HgM5fRDHulG1rOc84e5YBs++aBYcOC3pwQdByZx1xE9lO9d+HrqMnaZ2RQbdI85pidIf2hpmw==","repository":{"url":"git+https://github.com/agencecinq/shopify.git","type":"git","directory":"packages/combobox"},"_npmVersion":"11.18.0","description":"Accessible editable combobox with list autocomplete as a lightweight Web Component.","directories":{},"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.1.4","vite-plugin-dts":"^5.0.3","@agencecinq/utils":"5.0.5"},"peerDependencies":{"@agencecinq/utils":"*"},"_npmOperationalInternal":{"tmp":"tmp/combobox_1.0.0_1784272809887_0.7392414085346897","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@agencecinq/combobox","version":"1.0.1","author":{"url":"https://agencecinq.com","name":"Jérémy Levron","email":"jeremy@agencecinq.com"},"license":"MIT","_id":"@agencecinq/combobox@1.0.1","maintainers":[{"name":"19h47","email":"jeremylevron@19h47.fr"}],"homepage":"https://github.com/agencecinq/shopify#readme","bugs":{"url":"https://github.com/agencecinq/shopify/issues"},"dist":{"shasum":"e6a5392c1f700c03f1241d971934528c39ce132c","tarball":"https://registry.npmjs.org/@agencecinq/combobox/-/combobox-1.0.1.tgz","fileCount":13,"integrity":"sha512-1mH/kTNdgvckmQubF15GK2S99gq905cMHGUaIs95YcBUtcjhIXFd7fg2w6esO6yFA97XwFoDaFBBd2s94ChQXg==","signatures":[{"sig":"MEUCICSoxzXr0FLqVJJASOgNe9sRPO4Ctpz8q43j8xV2s51oAiEA6zzhX9804qimCvFxov1H+lWMnGPuEXMjJ3mPsHS2Oro=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37040},"main":"./dist/index.js","type":"module","_from":"file:agencecinq-combobox-1.0.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"vite build --watch","build":"vite build"},"_npmUser":{"name":"19h47","email":"jeremylevron@19h47.fr"},"_resolved":"/private/var/folders/vt/kpbgrh4d7k14zvxmcm01bfxh0000gn/T/4556f69b15b859ef2b1cca7b8c9417ea/agencecinq-combobox-1.0.1.tgz","_integrity":"sha512-1mH/kTNdgvckmQubF15GK2S99gq905cMHGUaIs95YcBUtcjhIXFd7fg2w6esO6yFA97XwFoDaFBBd2s94ChQXg==","repository":{"url":"git+https://github.com/agencecinq/shopify.git","type":"git","directory":"packages/combobox"},"_npmVersion":"11.18.0","description":"Accessible editable combobox with list autocomplete as a lightweight Web Component.","directories":{},"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.1.4","vite-plugin-dts":"^5.0.3","@agencecinq/utils":"5.1.0"},"peerDependencies":{"@agencecinq/utils":"*"},"_npmOperationalInternal":{"tmp":"tmp/combobox_1.0.1_1784557175671_0.7632347954174725","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@agencecinq/combobox","version":"1.0.2","author":{"url":"https://agencecinq.com","name":"Jérémy Levron","email":"jeremy@agencecinq.com"},"license":"MIT","_id":"@agencecinq/combobox@1.0.2","maintainers":[{"name":"19h47","email":"jeremylevron@19h47.fr"}],"homepage":"https://github.com/agencecinq/shopify#readme","bugs":{"url":"https://github.com/agencecinq/shopify/issues"},"dist":{"shasum":"b2b62d1f8e2d5df3e7969308a0df5b32a4c3e5a7","tarball":"https://registry.npmjs.org/@agencecinq/combobox/-/combobox-1.0.2.tgz","fileCount":13,"integrity":"sha512-yQefMsEt8yYfdvCIjgv5fRg9N0BeYSmjB+dQ1bRSHVhLuHpLfdXRKBZ8fRXnnzFo+tGBoHBDK8A0bh1ZnFnoSQ==","signatures":[{"sig":"MEUCIFyOniymUZ3z9g8ZbgAWDZft7Ue4HIX5wvPFoUj6QST6AiEA5h9FpEQqzKfTxgjYjZmHtwVJy9jKntEoCcPUBs3kuI8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36910},"main":"./dist/index.js","type":"module","_from":"file:agencecinq-combobox-1.0.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"vite build --watch","build":"vite build"},"_npmUser":{"name":"19h47","email":"jeremylevron@19h47.fr"},"_resolved":"/private/var/folders/vt/kpbgrh4d7k14zvxmcm01bfxh0000gn/T/8f217a6e7e5cdde19434252931173bf5/agencecinq-combobox-1.0.2.tgz","_integrity":"sha512-yQefMsEt8yYfdvCIjgv5fRg9N0BeYSmjB+dQ1bRSHVhLuHpLfdXRKBZ8fRXnnzFo+tGBoHBDK8A0bh1ZnFnoSQ==","repository":{"url":"git+https://github.com/agencecinq/shopify.git","type":"git","directory":"packages/combobox"},"_npmVersion":"11.18.0","description":"Accessible editable combobox with list autocomplete as a lightweight Web Component.","directories":{},"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.1.4","vite-plugin-dts":"^5.0.3","@agencecinq/utils":"5.1.1"},"peerDependencies":{"@agencecinq/utils":"*"},"_npmOperationalInternal":{"tmp":"tmp/combobox_1.0.2_1784612429199_0.42720746023258926","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@agencecinq/combobox","version":"1.0.3","author":{"url":"https://agencecinq.com","name":"Jérémy Levron","email":"jeremy@agencecinq.com"},"license":"MIT","_id":"@agencecinq/combobox@1.0.3","maintainers":[{"name":"19h47","email":"jeremylevron@19h47.fr"}],"homepage":"https://github.com/agencecinq/shopify#readme","bugs":{"url":"https://github.com/agencecinq/shopify/issues"},"dist":{"shasum":"151ccd62b31ce77e832e7523f6ef13c4f737cb4f","tarball":"https://registry.npmjs.org/@agencecinq/combobox/-/combobox-1.0.3.tgz","fileCount":13,"integrity":"sha512-usz7mYrrip4CfoQHH4sw7lYm4zVD026mFwYRQJYshNKRd97R5hhNVnwQItCVw+hhOqKrfNJbn+qL7857K1wFyg==","signatures":[{"sig":"MEUCIB/3rswkONTTNeT0jmoWo3OCLy5yxOM0qu1QaYBnAWGZAiEA4iUFXyVLmAMSEPPofJOaBKq8zCraWca8yoGWwREcnJU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36905},"main":"./dist/index.js","type":"module","_from":"file:agencecinq-combobox-1.0.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"vite build --watch","build":"vite build"},"_npmUser":{"name":"19h47","email":"jeremylevron@19h47.fr"},"_resolved":"/private/var/folders/vt/kpbgrh4d7k14zvxmcm01bfxh0000gn/T/8f59578e3ea66b8083c06496dbc2edb8/agencecinq-combobox-1.0.3.tgz","_integrity":"sha512-usz7mYrrip4CfoQHH4sw7lYm4zVD026mFwYRQJYshNKRd97R5hhNVnwQItCVw+hhOqKrfNJbn+qL7857K1wFyg==","repository":{"url":"git+https://github.com/agencecinq/shopify.git","type":"git","directory":"packages/combobox"},"_npmVersion":"11.18.0","description":"Accessible editable combobox with list autocomplete as a lightweight Web Component.","directories":{},"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.1.4","vite-plugin-dts":"^5.0.3","@agencecinq/utils":"5.2.0"},"peerDependencies":{"@agencecinq/utils":"*"},"_npmOperationalInternal":{"tmp":"tmp/combobox_1.0.3_1784619131828_0.45989954729947","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@agencecinq/combobox","version":"1.0.4","author":{"url":"https://agencecinq.com","name":"Jérémy Levron","email":"jeremy@agencecinq.com"},"license":"MIT","_id":"@agencecinq/combobox@1.0.4","maintainers":[{"name":"19h47","email":"jeremylevron@19h47.fr"}],"homepage":"https://github.com/agencecinq/shopify#readme","bugs":{"url":"https://github.com/agencecinq/shopify/issues"},"dist":{"shasum":"4e1a882fb25a8ccce1e3d5db93113df4f153debf","tarball":"https://registry.npmjs.org/@agencecinq/combobox/-/combobox-1.0.4.tgz","fileCount":13,"integrity":"sha512-GrqvlZKCHQYpbL3o/e3RlSwt2SOeQsnVLJ4Rz+LvYrhO7Gxz/SRuoCzmzKr2G/HqMa5/5TWd3LsWy2kR2AQc8A==","signatures":[{"sig":"MEQCIFHQSx958G2mH/kCX0Pvi+bOq81WjRx0p7mjyqxVW5+IAiBj8PuR3eMh28P1G4HVsmPpaDcnpRECDWBTB0H/HxVFdw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32409},"main":"./dist/index.js","type":"module","_from":"file:agencecinq-combobox-1.0.4.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"vite build --watch","build":"vite build"},"_npmUser":{"name":"19h47","email":"jeremylevron@19h47.fr"},"_resolved":"/private/var/folders/vt/kpbgrh4d7k14zvxmcm01bfxh0000gn/T/b860d0121e0beee3e433dc327838215c/agencecinq-combobox-1.0.4.tgz","_integrity":"sha512-GrqvlZKCHQYpbL3o/e3RlSwt2SOeQsnVLJ4Rz+LvYrhO7Gxz/SRuoCzmzKr2G/HqMa5/5TWd3LsWy2kR2AQc8A==","repository":{"url":"git+https://github.com/agencecinq/shopify.git","type":"git","directory":"packages/combobox"},"_npmVersion":"11.18.0","description":"Accessible editable combobox with list autocomplete as a lightweight Web Component.","directories":{},"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.2.0","vite-plugin-dts":"^5.0.3","@agencecinq/utils":"6.1.0"},"peerDependencies":{"@agencecinq/utils":"*"},"_npmOperationalInternal":{"tmp":"tmp/combobox_1.0.4_1786089002444_0.4085292861667409","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@agencecinq/combobox","version":"2.0.0","author":{"url":"https://agencecinq.com","name":"Jérémy Levron","email":"jeremy@agencecinq.com"},"license":"MIT","_id":"@agencecinq/combobox@2.0.0","maintainers":[{"name":"19h47","email":"jeremylevron@19h47.fr"}],"homepage":"https://github.com/agencecinq/shopify#readme","bugs":{"url":"https://github.com/agencecinq/shopify/issues"},"dist":{"shasum":"0810ee9e7fdb49c641b3377057c4bc0c784d726f","tarball":"https://registry.npmjs.org/@agencecinq/combobox/-/combobox-2.0.0.tgz","fileCount":11,"integrity":"sha512-Gu6zeeokCnRiRGVPdpVaJ1CP+Hp2Y0v3ec7/xCXMhp94/rDIn4LpivWzgd9kMQD9KsqbtkokmHvcrMFZZFnf3w==","signatures":[{"sig":"MEUCIQDDHSI4/uiUKJeMf4YTIALkb5CWCGvsdmmfOpeh1qNUEAIgCTlumOoo0Vz7F3d3r5pWzdBV0mkKfQk3g3XmDL9rI+0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC413IEMxqoq0DoFn7FYp1WFN/YFcxf1vNzg3M2OS6krAIhAIBVP/W/HQVcjzS5Uv2IFy0U2nve/A6TbsYK8EE12ziG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30984},"main":"./dist/index.js","type":"module","_from":"file:agencecinq-combobox-2.0.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"vite build --watch","build":"vite build"},"_npmUser":{"name":"19h47","email":"jeremylevron@19h47.fr"},"_resolved":"/private/var/folders/vt/kpbgrh4d7k14zvxmcm01bfxh0000gn/T/fa3172069d1adacb3a7ee87ac8538f63/agencecinq-combobox-2.0.0.tgz","_integrity":"sha512-Gu6zeeokCnRiRGVPdpVaJ1CP+Hp2Y0v3ec7/xCXMhp94/rDIn4LpivWzgd9kMQD9KsqbtkokmHvcrMFZZFnf3w==","repository":{"url":"git+https://github.com/agencecinq/shopify.git","type":"git","directory":"packages/combobox"},"_npmVersion":"11.19.1","description":"Accessible editable combobox with list autocomplete as a lightweight Web Component.","directories":{},"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.2.0","vite-plugin-dts":"^5.0.3","@agencecinq/utils":"6.1.0"},"peerDependencies":{"@agencecinq/utils":"*"},"_npmOperationalInternal":{"tmp":"tmp/combobox_2.0.0_1788159348262_0.8806128498323098","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-07-17T07:20:09.753Z","modified":"2026-09-15T13:10:33.730Z","1.0.0":"2026-07-17T07:20:10.017Z","1.0.1":"2026-07-20T14:19:35.827Z","1.0.2":"2026-07-21T05:40:29.375Z","1.0.3":"2026-07-21T07:32:11.959Z","1.0.4":"2026-08-07T07:50:02.580Z","2.0.0":"2026-08-31T06:55:48.340Z"},"bugs":{"url":"https://github.com/agencecinq/shopify/issues"},"author":{"url":"https://agencecinq.com","name":"Jérémy Levron","email":"jeremy@agencecinq.com"},"license":"MIT","homepage":"https://github.com/agencecinq/shopify#readme","repository":{"url":"git+https://github.com/agencecinq/shopify.git","type":"git","directory":"packages/combobox"},"description":"Accessible editable combobox with list autocomplete as a lightweight Web Component.","maintainers":[{"email":"jeremylevron@19h47.fr","name":"19h47"},{"email":"pauline@agencecinq.com","name":"paulinecinq"}],"readme":"# @agencecinq/combobox\n\nAccessible editable combobox with list autocomplete as a lightweight Web Component\n(`<cinq-combobox>`), aligned with the\n[WAI-ARIA Authoring Practices combobox pattern](https://www.w3.org/WAI/ARIA/apg/patterns/combobox/).\n\nInspired by [`@19h47/combobox`](https://github.com/19h47/19h47-combobox).\n\n**HTML is the source of truth** for roles and structure. The component does not\ninvent missing attributes — you deliver clean markup; it orchestrates keyboard\nbehaviour, popup visibility, and ARIA state.\n\n## Install\n\n```bash\npnpm add @agencecinq/combobox\n```\n\n## Usage\n\n```js\nimport \"@agencecinq/combobox\";\n\nconst host = document.querySelector(\"cinq-combobox\");\n\nhost.search = (value) => {\n  if (value.length < 1) return monsters;\n  return monsters.filter((name) =>\n    name.toLowerCase().startsWith(value.toLowerCase()),\n  );\n};\n```\n\n```html\n<label for=\"monster\">Monster</label>\n<cinq-combobox>\n  <input\n    id=\"monster\"\n    type=\"text\"\n    role=\"combobox\"\n    aria-autocomplete=\"list\"\n    aria-expanded=\"false\"\n    aria-controls=\"monster-listbox\"\n    autocomplete=\"off\"\n  />\n  <button\n    type=\"button\"\n    tabindex=\"-1\"\n    aria-label=\"Monsters\"\n    aria-controls=\"monster-listbox\"\n    aria-expanded=\"false\"\n  >\n    ▼\n  </button>\n  <ul id=\"monster-listbox\" role=\"listbox\" aria-label=\"Monsters\" hidden></ul>\n</cinq-combobox>\n```\n\nAssign `search` after the element is in the DOM (or before — mounting waits for\nboth `connectedCallback` and a search function).\n\nSet the textbox from outside via the host attribute or property:\n\n```html\n<cinq-combobox value=\"Owlbear\">…</cinq-combobox>\n```\n\n```js\nhost.value = \"Owlbear\";\nhost.setValue(\"Owlbear\");\nhost.setAttribute(\"value\", \"Owlbear\");\n```\n\n## Events\n\nDispatched on the **host** `<cinq-combobox>` (bubble). Constants live on\n`@agencecinq/utils` `EVENTS`:\n\n| Event | Constant | Detail |\n| ----- | -------- | ------ |\n| `combobox:loading` | `COMBOBOX_LOADING` | — |\n| `combobox:loaded` | `COMBOBOX_LOADED` | — |\n| `combobox:update` | `COMBOBOX_UPDATE` | `{ options, index, value }` |\n| `combobox:submit` | `COMBOBOX_SUBMIT` | `{ option, index, value }` |\n| `combobox:empty` | `COMBOBOX_EMPTY` | `{ value }` |\n\n```js\nimport { EVENTS } from \"@agencecinq/utils\";\n\nhost.addEventListener(EVENTS.COMBOBOX_SUBMIT, ({ detail }) => {\n  console.log(detail.option, detail.value);\n});\n```\n\n## Styling hooks\n\n| Hook | Element | When |\n| ---- | ------- | ---- |\n| `[hidden]` | listbox | Popup closed |\n| `[aria-expanded=\"true\"]` | input / button | Popup open |\n| `[aria-busy=\"true\"]` | listbox | Search in flight |\n| `[expanded]` / `[busy]` / `[disabled]` | host | Mirrored state |\n","readmeFilename":"README.md"}