{"_id":"@botandrose/input-tag","_rev":"8-a48d336500c4517b286de10fd439309c","name":"@botandrose/input-tag","dist-tags":{"latest":"0.4.2"},"versions":{"0.1.0":{"name":"@botandrose/input-tag","version":"0.1.0","keywords":["input","tag","taggle","autocomplete","custom-element","web-components","form","declarative","framework-agnostic"],"author":{"name":"Bot & Rose"},"license":"MIT","_id":"@botandrose/input-tag@0.1.0","maintainers":[{"name":"mgeisel","email":"micah@botandrose.com"}],"homepage":"https://github.com/botandrose/input-tag#readme","bugs":{"url":"https://github.com/botandrose/input-tag/issues"},"dist":{"shasum":"757189c56f9cfbec1719ecc919fa7b9b26fc0a16","tarball":"https://registry.npmjs.org/@botandrose/input-tag/-/input-tag-0.1.0.tgz","fileCount":5,"integrity":"sha512-SxdUx8kZrUz2fb5gyJrWD5RT7h7RNmLcmzWU4tnc+lajmezabAFvNjhxS+MU1jXywX/di2aYa2LApB4gAnKo1A==","signatures":[{"sig":"MEYCIQCTN2Mz/nUnWV+sGcO9liMnj1YQT69IQLtRBJYyORBO3gIhAPRUmiLwbzGNETn3mmtwPz6+MOpgVDA7SIOBmGDWkmZm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54712},"main":"src/input-tag.js","type":"module","module":"src/input-tag.js","gitHead":"af8c24e17f4f5aa42ac094137e491f18e988682d","scripts":{"test":"web-test-runner","test:ci":"npm run test:all -- --fail-only","test:all":"web-test-runner --concurrency 1 --playwright --browsers chromium firefox webkit","test:watch":"web-test-runner --watch","test:chrome":"web-test-runner --playwright --browsers chromium","test:webkit":"web-test-runner --playwright --browsers webkit","test:firefox":"web-test-runner --concurrency 1 --playwright --browsers firefox","test:chromium":"web-test-runner --playwright --browsers chromium","test:coverage":"npm run test:chrome"},"_npmUser":{"name":"mgeisel","email":"micah@botandrose.com"},"repository":{"url":"git+https://github.com/botandrose/input-tag.git","type":"git"},"_npmVersion":"10.2.3","description":"A declarative, zero-dependency, framework-agnostic custom element for tag input with autocomplete","directories":{},"_nodeVersion":"20.10.0","dependencies":{"autocompleter":"^9.3.2"},"_hasShrinkwrap":false,"devDependencies":{"sinon":"^21.0.0","@esm-bundle/chai":"^4.3.4","@open-wc/testing":"^4.0.0","@web/test-runner":"^0.18.0","@web/test-runner-playwright":"^0.11.1"},"_npmOperationalInternal":{"tmp":"tmp/input-tag_0.1.0_1754123451441_0.6003422891393495","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@botandrose/input-tag","version":"0.1.1","keywords":["input","tag","taggle","autocomplete","custom-element","web-components","form","declarative","framework-agnostic"],"author":{"name":"Bot & Rose"},"license":"MIT","_id":"@botandrose/input-tag@0.1.1","maintainers":[{"name":"mgeisel","email":"micah@botandrose.com"}],"homepage":"https://github.com/botandrose/input-tag#readme","bugs":{"url":"https://github.com/botandrose/input-tag/issues"},"dist":{"shasum":"55aa34b537296103169661db75451ef5bb8f2746","tarball":"https://registry.npmjs.org/@botandrose/input-tag/-/input-tag-0.1.1.tgz","fileCount":5,"integrity":"sha512-pv4958iQvNJWl2sQirlwdYHiIqhTtvPS+5NTgxCOHPF967G4n32M6phVpL09cac1cGPzSotnR/QGoMHrwvZeVA==","signatures":[{"sig":"MEYCIQCE/J51QebS4FPNsCW3iU3XVmsYv2WwJKTaFvdKeIxMvAIhANghpSh32VgTTed4r9muveMWm/9uDKpWT+xILxwf3sLo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55795},"main":"src/input-tag.js","type":"module","module":"src/input-tag.js","gitHead":"47dfa6f48078f9126697761410beb3610eeba0d1","scripts":{"test":"web-test-runner","test:ci":"npm run test:all -- --fail-only","test:all":"web-test-runner --concurrency 1 --playwright --browsers chromium firefox webkit","test:watch":"web-test-runner --watch","test:chrome":"web-test-runner --playwright --browsers chromium","test:webkit":"web-test-runner --playwright --browsers webkit","test:firefox":"web-test-runner --concurrency 1 --playwright --browsers firefox","test:chromium":"web-test-runner --playwright --browsers chromium","test:coverage":"npm run test:chrome"},"_npmUser":{"name":"mgeisel","email":"micah@botandrose.com"},"repository":{"url":"git+https://github.com/botandrose/input-tag.git","type":"git"},"_npmVersion":"10.2.3","description":"A declarative, zero-dependency, framework-agnostic custom element for tag input with autocomplete","directories":{},"_nodeVersion":"20.10.0","dependencies":{"autocompleter":"^9.3.2"},"_hasShrinkwrap":false,"devDependencies":{"sinon":"^21.0.0","@esm-bundle/chai":"^4.3.4","@open-wc/testing":"^4.0.0","@web/test-runner":"^0.18.0","@web/test-runner-playwright":"^0.11.1"},"_npmOperationalInternal":{"tmp":"tmp/input-tag_0.1.1_1754126179037_0.6708896406097564","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@botandrose/input-tag","version":"0.1.2","keywords":["input","tag","taggle","autocomplete","custom-element","web-components","form","declarative","framework-agnostic"],"author":{"name":"Bot & Rose"},"license":"MIT","_id":"@botandrose/input-tag@0.1.2","maintainers":[{"name":"mgeisel","email":"micah@botandrose.com"}],"homepage":"https://github.com/botandrose/input-tag#readme","bugs":{"url":"https://github.com/botandrose/input-tag/issues"},"dist":{"shasum":"848897497103ee16ec8c37677ae9a7ddf6129b68","tarball":"https://registry.npmjs.org/@botandrose/input-tag/-/input-tag-0.1.2.tgz","fileCount":5,"integrity":"sha512-oI5DsYaWLq4tt7OSmNUIDBZhwX0pBcmmvJFrTflKb0QApIpZd/kZ0STni1zgurgnXSel6T+bnzdtlcI6RHUzfQ==","signatures":[{"sig":"MEUCIE6Yhz/yZADLqDY69au8bwOkL2GzJGkIT00lVt1NdTLhAiEAjXbtGjwa8wu0Tdh0FogNOHkqTMVGksoXhki4Je2WO3k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55167},"main":"src/input-tag.js","type":"module","module":"src/input-tag.js","gitHead":"b3c317beae085cefee85643b161ed27f77740157","scripts":{"test":"web-test-runner","test:ci":"npm run test:all -- --fail-only","test:all":"web-test-runner --concurrency 1 --playwright --browsers chromium firefox webkit","test:watch":"web-test-runner --watch","test:chrome":"web-test-runner --playwright --browsers chromium","test:webkit":"web-test-runner --playwright --browsers webkit","test:firefox":"web-test-runner --concurrency 1 --playwright --browsers firefox","test:chromium":"web-test-runner --playwright --browsers chromium","test:coverage":"npm run test:chrome"},"_npmUser":{"name":"mgeisel","email":"micah@botandrose.com"},"repository":{"url":"git+https://github.com/botandrose/input-tag.git","type":"git"},"_npmVersion":"10.2.3","description":"A declarative, zero-dependency, framework-agnostic custom element for tag input with autocomplete","directories":{},"_nodeVersion":"20.10.0","dependencies":{"autocompleter":"^9.3.2"},"_hasShrinkwrap":false,"devDependencies":{"sinon":"^21.0.0","@esm-bundle/chai":"^4.3.4","@open-wc/testing":"^4.0.0","@web/test-runner":"^0.18.0","@web/test-runner-playwright":"^0.11.1"},"_npmOperationalInternal":{"tmp":"tmp/input-tag_0.1.2_1754126783214_0.8094588946879517","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@botandrose/input-tag","version":"0.2.0","keywords":["input","tag","taggle","autocomplete","custom-element","web-components","form","declarative","framework-agnostic"],"author":{"name":"Bot & Rose"},"license":"MIT","_id":"@botandrose/input-tag@0.2.0","maintainers":[{"name":"mgeisel","email":"micah@botandrose.com"}],"homepage":"https://github.com/botandrose/input-tag#readme","bugs":{"url":"https://github.com/botandrose/input-tag/issues"},"dist":{"shasum":"ec2dc3f10967bfd1058c0a0f0adf6788c0938bed","tarball":"https://registry.npmjs.org/@botandrose/input-tag/-/input-tag-0.2.0.tgz","fileCount":5,"integrity":"sha512-IUebG5nczheq+dPBNSsXL1cI/h5CRAnp3vJZlY8Tk14Wa3MqfjN/szI6LfoXDNrnpVt5PfzfWbiMKyvjojF0Jg==","signatures":[{"sig":"MEMCH2b2l9HZ7kP94cNDxI7M+VNs+jjHy/yxMkITbLrRdbQCIAqcddbORHAq0Pak6uQvnOoe7wAzKA8BGxmOZ4+cP5uU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56684},"main":"src/input-tag.js","type":"module","module":"src/input-tag.js","gitHead":"ba8bc10f3206c34c23ddcc430f31c66017d6c812","scripts":{"test":"web-test-runner","test:ci":"npm run test:all -- --fail-only","test:all":"web-test-runner --concurrency 1 --playwright --browsers chromium firefox webkit","test:watch":"web-test-runner --watch","test:chrome":"web-test-runner --playwright --browsers chromium","test:webkit":"web-test-runner --playwright --browsers webkit","test:firefox":"web-test-runner --concurrency 1 --playwright --browsers firefox","test:chromium":"web-test-runner --playwright --browsers chromium","test:coverage":"npm run test:chrome"},"_npmUser":{"name":"mgeisel","email":"micah@botandrose.com"},"repository":{"url":"git+https://github.com/botandrose/input-tag.git","type":"git"},"_npmVersion":"10.2.3","description":"A declarative, zero-dependency, framework-agnostic custom element for tag input with autocomplete","directories":{},"_nodeVersion":"20.10.0","dependencies":{"autocompleter":"^9.3.2"},"_hasShrinkwrap":false,"devDependencies":{"sinon":"^21.0.0","@esm-bundle/chai":"^4.3.4","@open-wc/testing":"^4.0.0","@web/test-runner":"^0.18.0","@web/test-runner-playwright":"^0.11.1"},"_npmOperationalInternal":{"tmp":"tmp/input-tag_0.2.0_1754130988802_0.6149344494457172","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@botandrose/input-tag","version":"0.3.0","keywords":["input","tag","taggle","autocomplete","custom-element","web-components","form","declarative","framework-agnostic"],"author":{"name":"Bot & Rose"},"license":"MIT","_id":"@botandrose/input-tag@0.3.0","maintainers":[{"name":"mgeisel","email":"micah@botandrose.com"}],"homepage":"https://github.com/botandrose/input-tag#readme","bugs":{"url":"https://github.com/botandrose/input-tag/issues"},"dist":{"shasum":"c363bbff77286bdb88b9c54719d493d40155f283","tarball":"https://registry.npmjs.org/@botandrose/input-tag/-/input-tag-0.3.0.tgz","fileCount":5,"integrity":"sha512-iBdvacbs/xOQpHWBKOYLNUgYWhjuWAWOVKRS5TsdG4hGfhcJfOJl7BNsn+6nsssOrqtFZoerJozSThqbM0PkOg==","signatures":[{"sig":"MEYCIQD8LZLQjFI/FoxqyyTpbdCD4Dn+sgTuOfQUeXZpyXfXFgIhAKFJrFBhtVhinNQ/66SDKWW2bhg1/ftqUklAWR6NIgpY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43160},"main":"src/input-tag.js","type":"module","module":"src/input-tag.js","gitHead":"71678ad4ef427cc3074b4368570679742fc0ef01","scripts":{"test":"web-test-runner","test:ci":"npm run test:all -- --fail-only","test:all":"web-test-runner --concurrency 1 --playwright --browsers chromium firefox webkit","test:watch":"web-test-runner --watch","test:chrome":"web-test-runner --playwright --browsers chromium","test:webkit":"web-test-runner --playwright --browsers webkit","test:firefox":"web-test-runner --concurrency 1 --playwright --browsers firefox","test:chromium":"web-test-runner --playwright --browsers chromium","test:coverage":"npm run test:chrome"},"_npmUser":{"name":"mgeisel","email":"micah@botandrose.com"},"repository":{"url":"git+https://github.com/botandrose/input-tag.git","type":"git"},"_npmVersion":"10.2.3","description":"A declarative, zero-dependency, framework-agnostic custom element for tag input with autocomplete","directories":{},"_nodeVersion":"20.10.0","dependencies":{"autocompleter":"^9.3.2"},"_hasShrinkwrap":false,"devDependencies":{"sinon":"^21.0.0","@esm-bundle/chai":"^4.3.4","@open-wc/testing":"^4.0.0","@web/test-runner":"^0.18.0","@web/test-runner-playwright":"^0.11.1"},"_npmOperationalInternal":{"tmp":"tmp/input-tag_0.3.0_1755871068555_0.5920407040188307","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@botandrose/input-tag","version":"0.4.0","keywords":["input","tag","taggle","autocomplete","custom-element","web-components","form","declarative","framework-agnostic"],"author":{"name":"Bot & Rose"},"license":"MIT","_id":"@botandrose/input-tag@0.4.0","maintainers":[{"name":"mgeisel","email":"micah@botandrose.com"}],"homepage":"https://github.com/botandrose/input-tag#readme","bugs":{"url":"https://github.com/botandrose/input-tag/issues"},"dist":{"shasum":"055115e015e5797a7199f44105ef7baeb09b7231","tarball":"https://registry.npmjs.org/@botandrose/input-tag/-/input-tag-0.4.0.tgz","fileCount":5,"integrity":"sha512-jfSQkaRJM7WAopDpjrDtAfUakDFpiGm2/zGAOUA/wFDTRT367QGknSLcWx+JWbJttbXExli3y3FfFQkkdg+imA==","signatures":[{"sig":"MEYCIQDk50n9l6EOdNcCvCJehDXgM6xWPaWrntI5V/sb1rYtFgIhAIGvqt1FPcspQJORvEQ/rCncHwKPTG/rQKEpY2n4RrLM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44400},"main":"src/input-tag.js","type":"module","module":"src/input-tag.js","gitHead":"73b1d24af3513d0dc712435557a493d89ef25a93","scripts":{"test":"web-test-runner","test:ci":"npm run test:all -- --fail-only","test:all":"web-test-runner --concurrency 1 --playwright --browsers chromium firefox webkit","test:watch":"web-test-runner --watch","test:chrome":"web-test-runner --playwright --browsers chromium","test:webkit":"web-test-runner --playwright --browsers webkit","test:firefox":"web-test-runner --concurrency 1 --playwright --browsers firefox","test:chromium":"web-test-runner --playwright --browsers chromium","test:coverage":"npm run test:chrome"},"_npmUser":{"name":"mgeisel","email":"micah@botandrose.com"},"repository":{"url":"git+https://github.com/botandrose/input-tag.git","type":"git"},"_npmVersion":"10.2.3","description":"A declarative, zero-dependency, framework-agnostic custom element for tag input with autocomplete","directories":{},"_nodeVersion":"20.10.0","dependencies":{"autocompleter":"^9.3.2"},"_hasShrinkwrap":false,"devDependencies":{"sinon":"^21.0.0","@esm-bundle/chai":"^4.3.4","@open-wc/testing":"^4.0.0","@web/test-runner":"^0.18.0","@web/test-runner-playwright":"^0.11.1"},"_npmOperationalInternal":{"tmp":"tmp/input-tag_0.4.0_1755940833412_0.562684377331224","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@botandrose/input-tag","version":"0.4.1","keywords":["input","tag","taggle","autocomplete","custom-element","web-components","form","declarative","framework-agnostic"],"author":{"name":"Bot & Rose"},"license":"MIT","_id":"@botandrose/input-tag@0.4.1","maintainers":[{"name":"mgeisel","email":"micah@botandrose.com"}],"homepage":"https://github.com/botandrose/input-tag#readme","bugs":{"url":"https://github.com/botandrose/input-tag/issues"},"dist":{"shasum":"4fad971b6982cef282c1cb8fbdb64f38ddf934d6","tarball":"https://registry.npmjs.org/@botandrose/input-tag/-/input-tag-0.4.1.tgz","fileCount":5,"integrity":"sha512-qmtRZLaT3m35kmqBuhPF20uhry+s+3RYRpt4E9rBP7W8dDq5lx5sQxVA4p8+dRN0vlwiM0WErlxTfZDQ6zmxsg==","signatures":[{"sig":"MEUCIQCMFRu7XInwOYfCFZZ0ws6VykK1HrkU/pz4DCrBjhtlkAIgSKPR8v1WmaYb30uBGRn8qtgT5snzj9Hgq4jqMKpLnPA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44394},"main":"src/input-tag.js","type":"module","module":"src/input-tag.js","gitHead":"acc69bf944a70b9f347af968c89bd0abb22aa0c7","scripts":{"test":"web-test-runner","test:ci":"npm run test:all -- --fail-only","test:all":"web-test-runner --concurrency 1 --playwright --browsers chromium firefox webkit","test:watch":"web-test-runner --watch","test:chrome":"web-test-runner --playwright --browsers chromium","test:webkit":"web-test-runner --playwright --browsers webkit","test:firefox":"web-test-runner --concurrency 1 --playwright --browsers firefox","test:chromium":"web-test-runner --playwright --browsers chromium","test:coverage":"npm run test:chrome"},"_npmUser":{"name":"mgeisel","email":"micah@botandrose.com"},"repository":{"url":"git+https://github.com/botandrose/input-tag.git","type":"git"},"_npmVersion":"10.2.3","description":"A declarative, zero-dependency, framework-agnostic custom element for tag input with autocomplete","directories":{},"_nodeVersion":"20.10.0","dependencies":{"autocompleter":"^9.3.2"},"_hasShrinkwrap":false,"devDependencies":{"sinon":"^21.0.0","@esm-bundle/chai":"^4.3.4","@open-wc/testing":"^4.0.0","@web/test-runner":"^0.18.0","@web/test-runner-playwright":"^0.11.1"},"_npmOperationalInternal":{"tmp":"tmp/input-tag_0.4.1_1756289246144_0.06718448375437092","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@botandrose/input-tag","version":"0.4.2","type":"module","description":"A declarative, zero-dependency, framework-agnostic custom element for tag input with autocomplete","main":"src/input-tag.js","module":"src/input-tag.js","scripts":{"test":"web-test-runner","test:watch":"web-test-runner --watch","test:chrome":"web-test-runner --playwright --browsers chromium","test:chromium":"web-test-runner --playwright --browsers chromium","test:firefox":"web-test-runner --concurrency 1 --playwright --browsers firefox","test:webkit":"web-test-runner --playwright --browsers webkit","test:all":"web-test-runner --concurrency 1 --playwright --browsers chromium firefox webkit","test:coverage":"npm run test:chrome","test:ci":"npm run test:all -- --fail-only"},"keywords":["input","tag","taggle","autocomplete","custom-element","web-components","form","declarative","framework-agnostic"],"author":{"name":"Bot & Rose"},"license":"MIT","devDependencies":{"@esm-bundle/chai":"^4.3.4","@open-wc/testing":"^4.0.0","@web/test-runner":"^0.18.0","@web/test-runner-playwright":"^0.11.1","sinon":"^21.0.0"},"repository":{"type":"git","url":"git+https://github.com/botandrose/input-tag.git"},"bugs":{"url":"https://github.com/botandrose/input-tag/issues"},"homepage":"https://github.com/botandrose/input-tag#readme","dependencies":{"autocompleter":"^9.3.2"},"_id":"@botandrose/input-tag@0.4.2","gitHead":"efebdca05762419ecba5c3d94abaab302ece78b4","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-GkIsc4LJh8zXeBtG3/9NxoEmALTn8MCRnk+Nj9VST9tbG0ytULJdUnqI1x1fiBoKIhooJXPF3/POh8Se3i1jAA==","shasum":"5def2c33b2ecb95854f4d53bed7e5060a10b6c7d","tarball":"https://registry.npmjs.org/@botandrose/input-tag/-/input-tag-0.4.2.tgz","fileCount":5,"unpackedSize":44822,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDlV8HqQLdxvRinyV0sb3QCL0hOQQMOyY2ab7wK2nYCTgIgXdZDiTvVQqGGgs0ZuIIMcmFR2Tj/Whus5JJUWEmhytk="}]},"_npmUser":{"name":"mgeisel","email":"micah@botandrose.com"},"directories":{},"maintainers":[{"name":"mgeisel","email":"micah@botandrose.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/input-tag_0.4.2_1760904788407_0.805801345146046"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-02T08:30:51.351Z","modified":"2025-10-19T20:13:08.847Z","0.1.0":"2025-08-02T08:30:51.620Z","0.1.1":"2025-08-02T09:16:19.215Z","0.1.2":"2025-08-02T09:26:23.394Z","0.2.0":"2025-08-02T10:36:29.066Z","0.3.0":"2025-08-22T13:57:48.742Z","0.4.0":"2025-08-23T09:20:33.605Z","0.4.1":"2025-08-27T10:07:26.341Z","0.4.2":"2025-10-19T20:13:08.621Z"},"bugs":{"url":"https://github.com/botandrose/input-tag/issues"},"author":{"name":"Bot & Rose"},"license":"MIT","homepage":"https://github.com/botandrose/input-tag#readme","keywords":["input","tag","taggle","autocomplete","custom-element","web-components","form","declarative","framework-agnostic"],"repository":{"type":"git","url":"git+https://github.com/botandrose/input-tag.git"},"description":"A declarative, zero-dependency, framework-agnostic custom element for tag input with autocomplete","maintainers":[{"name":"mgeisel","email":"micah@botandrose.com"}],"readme":"# @botandrose/input-tag\n\nA declarative, framework-agnostic custom element for tag input with optional autocomplete functionality.\n\nBuilt with appreciation on the excellent foundation of [Taggle.js](https://github.com/okcoker/taggle.js) by Sean Coker.\n\n## Installation\n\n```bash\nnpm install @botandrose/input-tag\n```\n\n## Usage\n\nImport the custom element:\n\n```javascript\nimport \"@botandrose/input-tag\"\n```\n\nThen use it in your HTML:\n\n```html\n<input-tag name=\"tags\" multiple>\n  <tag-option value=\"javascript\">JavaScript</tag-option>\n  <tag-option value=\"typescript\">TypeScript</tag-option>\n</input-tag>\n\n<datalist id=\"suggestions\">\n  <option value=\"react\">React</option>\n  <option value=\"vue\">Vue</option>\n  <option value=\"angular\">Angular</option>\n</datalist>\n\n<input-tag name=\"frameworks\" list=\"suggestions\" multiple></input-tag>\n```\n\n## Features\n\n- Form-associated custom element with full form integration\n- Autocomplete support via datalist or custom options\n- Multiple/single value modes\n- Real-time validation\n- Accessible keyboard navigation\n- Shadow DOM encapsulation\n- Framework-agnostic\n\n## API\n\n### Attributes\n\n- `name`: Form field name\n- `multiple`: Allow multiple tags (default: single tag mode)\n- `required`: Make field required\n- `list`: ID of datalist for autocomplete suggestions\n\n### Properties\n\n- `value`: Get/set tag values - returns **array** when `multiple`, **string** when single mode\n- `tags`: Get current tag values as array (read-only)\n- `options`: Get available autocomplete options from datalist\n- `form`: Reference to associated form element\n- `name`: Get the name attribute value\n\n### Events\n\n- `change`: Fired when tag values change\n- `update`: Fired when individual tags are added/removed with detail `{tag, isNew}`\n\n### Methods\n\n#### Tag Management\n- `add(tag | tags[])`: Add single tag or array of tags\n- `remove(tag)`: Remove specific tag by value\n- `removeAll()`: Clear all tags\n- `has(tag)`: Check if tag exists\n- `addAt(tag, index)`: Add tag at specific position\n\n#### Form Integration\n- `reset()`: Clear all tags and input field\n- `checkValidity()`: Check if field passes validation\n- `reportValidity()`: Check validity and show validation UI\n\n#### Interaction\n- `focus()`: Focus the input field\n- `disable()`: Disable the input\n- `enable()`: Enable the input\n\n### JavaScript API Example\n\n```javascript\n// Multiple mode\nconst multipleTag = document.querySelector('input-tag[multiple]')\n\n// Add tags\nmultipleTag.add('react')\nmultipleTag.add(['vue', 'angular'])\n\n// Get current tags\nconsole.log(multipleTag.value) // ['react', 'vue', 'angular'] - returns array\nconsole.log(multipleTag.tags)  // ['react', 'vue', 'angular'] - also array\n\n// Set all tags at once\nmultipleTag.value = ['new', 'tags'] // accepts array\n\n// Single mode\nconst singleTag = document.querySelector('input-tag:not([multiple])')\n\n// Set single tag\nsingleTag.value = 'selected-tag' // accepts string\n\n// Get current tag\nconsole.log(singleTag.value) // 'selected-tag' - returns string\nconsole.log(singleTag.tags)  // ['selected-tag'] - always array\n\n// Backward compatibility: arrays still work in single mode\nsingleTag.value = ['another-tag'] // accepts array, uses first item\nconsole.log(singleTag.value) // 'another-tag' - still returns string\n\n// Form validation\nif (!singleTag.checkValidity()) {\n  singleTag.reportValidity()\n}\n```\n\n## Testing\n\n```bash\nnpm test\nnpm run test:all\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}