{"_id":"@solid-aria/select","_rev":"3-6f2ff32075b49e7ccf7c4cdf625af7b8","name":"@solid-aria/select","dist-tags":{"snapshot":"0.0.0","latest":"0.1.0"},"versions":{"0.0.0":{"name":"@solid-aria/select","version":"0.0.0","private":false,"description":"Primitives for building accessible select component.","keywords":["solid","aria","headless","design","system","components"],"homepage":"https://github.com/solidjs-community/solid-aria/tree/main/packages/select#readme","bugs":{"url":"https://github.com/solidjs-community/solid-aria/issues"},"repository":{"type":"git","url":"git+https://github.com/solidjs-community/solid-aria.git"},"license":"MIT","author":{"name":"Fabien Marie-Louise","email":"fabienml.dev@gmail.com"},"contributors":[],"sideEffects":false,"type":"module","exports":{".":{"solid":"./dist/source/index.jsx","import":"./dist/esm/index.js","browser":"./dist/esm/index.js","require":"./dist/cjs/index.js","node":"./dist/cjs/index.js"}},"main":"dist/cjs/index.js","module":"dist/esm/index.js","types":"dist/types/index.d.ts","dependencies":{"@solid-aria/button":"^0.1.2","@solid-aria/i18n":"^0.1.2","@solid-aria/interactions":"^0.1.2","@solid-aria/label":"^0.1.2","@solid-aria/list":"^0.1.2","@solid-aria/listbox":"^0.1.2","@solid-aria/menu":"^0.1.2","@solid-aria/overlays":"^0.1.2","@solid-aria/selection":"^0.1.2","@solid-aria/types":"^0.1.2","@solid-aria/utils":"^0.1.2","@solid-aria/visually-hidden":"^0.1.2","@solid-primitives/props":"^2.1.7","@solid-primitives/utils":"^2.1.0"},"devDependencies":{"@solid-aria/collection":"^0.1.2","@solid-aria/focus":"^0.1.2","solid-js":"^1.4.4"},"peerDependencies":{"solid-js":"^1.4.4"},"publishConfig":{"access":"public"},"primitive":{"name":"select","stage":0,"list":[],"category":""},"scripts":{"build":"rollup -c","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist","dev":"vite serve dev --host","test":"jest --passWithNoTests","test:watch":"jest --watch --passWithNoTests","typecheck":"tsc --noEmit"},"_id":"@solid-aria/select@0.0.0","_integrity":"sha512-EWqFOCsFqe6AJQ+B6sEjUzVSbKtAj0XR/ZifvaZRm6600zfOBSQIOS/ldzwKML35MUhEBTWbw3S4kxlyeRDayw==","_resolved":"/tmp/bda7f88a4c590b619aef06e9dc9fd446/solid-aria-select-0.0.0.tgz","_from":"file:solid-aria-select-0.0.0.tgz","_nodeVersion":"17.9.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-EWqFOCsFqe6AJQ+B6sEjUzVSbKtAj0XR/ZifvaZRm6600zfOBSQIOS/ldzwKML35MUhEBTWbw3S4kxlyeRDayw==","shasum":"ad5b1dc679e28ff1d4bfcf4674a9d05b5f1079c8","tarball":"https://registry.npmjs.org/@solid-aria/select/-/select-0.0.0.tgz","fileCount":15,"unpackedSize":123490,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBB4ATul6umPrKRfCAyVF5Lu9ND6PqrmBL4JzxOvHYrxAiBKCXIBMHGn4KhShI20E3v3on2SY0yY7p91mt1p32kV2g=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJirDxZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp9jw/7BH88zCsA0KfRrde4YZ0AczNQnRMs8dhhl/eHSPNlDdI3pEX/\r\nGufbeIUqaKCzjabLaDclry+M4r/W7hqPk6N5s3wSSd0Nvqv5BTxWKX3yZEei\r\nR+zVPEBwd+Jh3kktFlWoemnnvxCUg/KwysiqRHGr+Zz6zHLqAOzFvwSrMuko\r\nX+yV+6cm1gd2uTjtMMhziFBT8j74YcOW7vbdjf+TLIeBRxvI/m8Vs0VKlej6\r\nHsUTlYyEkoBd4ZZ71z8ND9CpL1ZbUwgyY5GcR+EmWRB0pgCwnvX7x0EYZJnq\r\nuY2Tt0x2OzFomlgxjj2tsq5Kn9aLVEKltILXvuwefS3+S7ECRDEcAmvr6vTG\r\nYxZwj+MiCahMHZZskWGFrMBhqaIqT/pwGSt0LMFvC+bPJxzyHTgFGhq4UnfJ\r\nmONAKn727C/+p6OFIN5NRRHcxaPoWbQ094Ilt6gYBj78+d6tJyNQRvPAlORh\r\ngVC2b7H4FPBFLEMP0zr6keS6DaLL3FcxFVVzu97DSSa+4qRmtPRaLGbjPwXV\r\nRH/DFcTwUTRdH6h6vqtG6WVP/7JPjoAvv/f7+aBAGjvJPoKunRwnC6IY0PJG\r\nf/iBJko1Nl1lQIRNS2SpdaQSaY/e1p9Gqc1Eu73lQ7qSgkZ3E1zDmp/Vzk2V\r\nnDDrJKb7SPlgWGbbGhkaT0EPxHoB4oGwpqg=\r\n=ToTS\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"fabienml","email":"fabienml.dev@gmail.com"},"directories":{},"maintainers":[{"name":"fabienml","email":"fabienml.dev@gmail.com"},{"name":"davedbase","email":"dave.dibiase@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/select_0.0.0_1655454809557_0.058123471538179095"},"_hasShrinkwrap":false},"0.0.1":{"name":"@solid-aria/select","version":"0.0.1","private":false,"description":"Primitives for building accessible select component.","keywords":["solid","aria","headless","design","system","components"],"homepage":"https://github.com/solidjs-community/solid-aria/tree/main/packages/select#readme","bugs":{"url":"https://github.com/solidjs-community/solid-aria/issues"},"repository":{"type":"git","url":"git+https://github.com/solidjs-community/solid-aria.git"},"license":"MIT","author":{"name":"Fabien Marie-Louise","email":"fabienml.dev@gmail.com"},"contributors":[],"sideEffects":false,"type":"module","exports":{".":{"solid":"./dist/source/index.jsx","import":"./dist/esm/index.js","browser":"./dist/esm/index.js","require":"./dist/cjs/index.js","node":"./dist/cjs/index.js"}},"main":"dist/cjs/index.js","module":"dist/esm/index.js","types":"dist/types/index.d.ts","dependencies":{"@solid-aria/button":"^0.1.2","@solid-aria/i18n":"^0.1.2","@solid-aria/interactions":"^0.1.3","@solid-aria/label":"^0.1.3","@solid-aria/list":"^0.1.2","@solid-aria/listbox":"^0.1.3","@solid-aria/menu":"^0.1.3","@solid-aria/overlays":"^0.1.2","@solid-aria/selection":"^0.1.3","@solid-aria/types":"^0.1.3","@solid-aria/utils":"^0.1.3","@solid-aria/visually-hidden":"^0.1.2","@solid-primitives/props":"^2.1.7","@solid-primitives/utils":"^2.1.0"},"devDependencies":{"@solid-aria/collection":"^0.1.3","@solid-aria/focus":"^0.1.3","solid-js":"^1.4.4"},"peerDependencies":{"solid-js":"^1.4.4"},"publishConfig":{"access":"public"},"primitive":{"name":"select","stage":0,"list":[],"category":""},"scripts":{"build":"rollup -c","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist","dev":"vite serve dev --host","test":"jest --passWithNoTests","test:watch":"jest --watch --passWithNoTests","typecheck":"tsc --noEmit"},"_id":"@solid-aria/select@0.0.1","_integrity":"sha512-+HiwO/k6rjRrtggYacmOg+3vRP108KRWvjkJPWKOc5PrJhJVgCluPawp2OKyKHhH5Z7jbZrnpZeXlQNqapYdCw==","_resolved":"/tmp/dd2ab2dc533635ecc4dbc31031e50b53/solid-aria-select-0.0.1.tgz","_from":"file:solid-aria-select-0.0.1.tgz","_nodeVersion":"17.9.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-+HiwO/k6rjRrtggYacmOg+3vRP108KRWvjkJPWKOc5PrJhJVgCluPawp2OKyKHhH5Z7jbZrnpZeXlQNqapYdCw==","shasum":"7c828c399472ab19c00dadbe1d180c1fbd62ab0f","tarball":"https://registry.npmjs.org/@solid-aria/select/-/select-0.0.1.tgz","fileCount":15,"unpackedSize":123939,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDnvmehuJ1B+8Dm153aZO+7ZKKyzaSD4kGNjW2FCN2uAgIhAM1iOLk+H9trufyqoTIwPlzoyvfg6SlQnG1pRWSwx7mc"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiraUSACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmovoQ/7BuKqUTss17jA7s9E0N3h9F4k+OLfouFnZi+zHzvToNUPqDPs\r\nv/r1zCcEAemL8Tbp1wk5gvhPik/GXxRSXYUEMCC7+mGDjSTtlN8i+4wl3giP\r\ngzWAyTrZb2aLUGcz5lHcyAxoxFvLsScqLdv65SBCf6o9QbdSGGpz6OBTq728\r\nNDfvRE6zWhGgZ5P1MpVr+1kNbGQUI9EBI7zPXv19IGiNlE5KkQVuGLqWvchi\r\n6Ouh5C3UzJFd1UJ1s3LjQTtEzGf+oi5OjDDI/oow4MceRbJxmLw7PXJAchj3\r\nMY/4w74B0fvb1XzCBJCPjnhYp/RTFwninyWucFiuO3IzeS6B1U5umnNbB/4p\r\nWQK9MHpOpbDACY2S03CxD6ii4ds8uGEmZ3XW6mDHeR43xJHFBtraWsaK/CPX\r\nfBcwj5kIdEZ8XUdNpNYFvHk69sL+dDwypF4UetvJF4C0SaqsF2BMfgZDLAvb\r\nTz19LE/1NGrwI52xHNBalv9PAJ6Bo8N3nbnP/W7PUXdEGKRDDEcJYfa0v+SH\r\ne9JlHZndc/UMYM5IhICR1HH+w61BvhQdxAf357dL+oUiBGuKPwS16KIL/x7a\r\n0g1RpA6pMlY3DN56onCSnEARlwAAa6PWQBe7VF4zpTF3JeFoWzkg6iGTOdnX\r\nPl5p5z1GzK8I1IPNB7wo1JnZ6+WeFuOk1j8=\r\n=u5d7\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"fabienml","email":"fabienml.dev@gmail.com"},"directories":{},"maintainers":[{"name":"fabienml","email":"fabienml.dev@gmail.com"},{"name":"davedbase","email":"dave.dibiase@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/select_0.0.1_1655547154368_0.08154315477016394"},"_hasShrinkwrap":false},"0.0.2":{"name":"@solid-aria/select","version":"0.0.2","private":false,"description":"Primitives for building accessible select component.","keywords":["solid","aria","headless","design","system","components"],"homepage":"https://github.com/solidjs-community/solid-aria/tree/main/packages/select#readme","bugs":{"url":"https://github.com/solidjs-community/solid-aria/issues"},"repository":{"type":"git","url":"git+https://github.com/solidjs-community/solid-aria.git"},"license":"MIT","author":{"name":"Fabien Marie-Louise","email":"fabienml.dev@gmail.com"},"contributors":[],"sideEffects":false,"type":"module","exports":{".":{"solid":"./dist/source/index.jsx","import":"./dist/esm/index.js","browser":"./dist/esm/index.js","require":"./dist/cjs/index.js","node":"./dist/cjs/index.js"}},"main":"dist/cjs/index.js","module":"dist/esm/index.js","types":"dist/types/index.d.ts","dependencies":{"@solid-aria/button":"^0.1.3","@solid-aria/i18n":"^0.2.0","@solid-aria/interactions":"^0.1.4","@solid-aria/label":"^0.1.4","@solid-aria/list":"^0.1.3","@solid-aria/listbox":"^0.1.4","@solid-aria/menu":"^0.1.4","@solid-aria/overlays":"^0.1.3","@solid-aria/selection":"^0.1.4","@solid-aria/types":"^0.1.3","@solid-aria/utils":"^0.2.0","@solid-aria/visually-hidden":"^0.1.3","@solid-primitives/props":"^2.1.7","@solid-primitives/utils":"^2.1.0"},"devDependencies":{"@solid-aria/collection":"^0.1.4","@solid-aria/focus":"^0.1.4","solid-js":"^1.4.4"},"peerDependencies":{"solid-js":"^1.4.4"},"publishConfig":{"access":"public"},"primitive":{"name":"select","stage":0,"list":[],"category":""},"scripts":{"build":"rollup -c","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist","dev":"vite serve dev --host","test":"jest --passWithNoTests","test:watch":"jest --watch --passWithNoTests","typecheck":"tsc --noEmit"},"_id":"@solid-aria/select@0.0.2","_integrity":"sha512-VZS4+N2GB+HXw7oaYONFXhSPdR3n1CmLJt5sxqkblvolN+mJ15gtvXTEVz62dHVmfiyjDHOBruL2jeQJnbLqJQ==","_resolved":"/tmp/b8e8e6ecbee591fc4175c303ba4ca900/solid-aria-select-0.0.2.tgz","_from":"file:solid-aria-select-0.0.2.tgz","_nodeVersion":"17.9.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-VZS4+N2GB+HXw7oaYONFXhSPdR3n1CmLJt5sxqkblvolN+mJ15gtvXTEVz62dHVmfiyjDHOBruL2jeQJnbLqJQ==","shasum":"297dd762d796cad52f5e2dcbe8508eb2f220e8a0","tarball":"https://registry.npmjs.org/@solid-aria/select/-/select-0.0.2.tgz","fileCount":15,"unpackedSize":124025,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAxYb8kp0qLkOCSw/CusHIu1wtx2+9FigCV5ucdIjNgwAiEA0c5aPaaFj1aQ6bTlk3v5pnB0R1H46J9b8sEoLZ+JaPE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJirtDnACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrySA/9FIg7ZxadRNBqZJTNYvnj5qqk7ah+gtlslg0kPZc6Xdg/BeQG\r\nh29Ijq9zfLSITg7Du+rGYsKLhD9PKzE8uMkb7AYeefjpnpFZl9MVRdNR4sIB\r\nqD+aiTOC6LeUq9rZix1WLAh275JqdA2tEaAlQKf3tUblx/068JFTK9XeNSnF\r\nIxUiStlZl3GTbcCuDBMBgwMzkBf7KMoJBZDlb9zqU/OQli0I4S/HKCKbaUZz\r\nIiu+VFixNBEUqJ3QSNOblBcpElLMirmqc3GLI4/Pxw3ijteVGein1MAB5kUS\r\nFRl4FEnRc9t52XgcJh6+KKmRlhq3NiJZGlOWA0+WEOpUSTwNcsSqgStYdvMr\r\nTMizhMno/1UbvlePOlf//edI9EGksCOhdMwPWhxOssf1xIn7Fn+/oftU1E6j\r\nXZi8Q5dgtdokIeSIcWd3A8+PDGDQi12ps1cqEXuKSqo/rs+2sIgVTtOlpMDW\r\n1Oz97nJ4ZCOWKhFxmEzoB9D181JVt683A0d0KdPMKzVufpa8t5Ulcn3yQmr0\r\nleCn+o3HuwtAu4jOUXvLBPLoSkSQsIbYk5LoDcEmx5TnukHjN+l/hvHMl4p3\r\naKxYCJKnhg4DTpi1gFnAnfzP0I1+KmBX+u5vydjIdE3s2mG4t/nC7TEPP/q6\r\n78L3/AI9wXYxaV6vaRyg8AWMQ7CSmN6POek=\r\n=nTn4\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"fabienml","email":"fabienml.dev@gmail.com"},"directories":{},"maintainers":[{"name":"fabienml","email":"fabienml.dev@gmail.com"},{"name":"davedbase","email":"dave.dibiase@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/select_0.0.2_1655623910852_0.4695792878031533"},"_hasShrinkwrap":false},"0.1.0":{"name":"@solid-aria/select","version":"0.1.0","private":false,"description":"Primitives for building accessible select component.","keywords":["solid","aria","headless","design","system","components"],"homepage":"https://github.com/solidjs-community/solid-aria/tree/main/packages/select#readme","bugs":{"url":"https://github.com/solidjs-community/solid-aria/issues"},"repository":{"type":"git","url":"git+https://github.com/solidjs-community/solid-aria.git"},"license":"MIT","author":{"name":"Fabien Marie-Louise","email":"fabienml.dev@gmail.com"},"contributors":[],"sideEffects":false,"type":"module","exports":{".":{"solid":"./dist/source/index.jsx","import":"./dist/esm/index.js","browser":"./dist/esm/index.js","require":"./dist/cjs/index.js","node":"./dist/cjs/index.js"}},"main":"dist/cjs/index.js","module":"dist/esm/index.js","types":"dist/types/index.d.ts","dependencies":{"@solid-aria/button":"^0.1.3","@solid-aria/i18n":"^0.2.0","@solid-aria/interactions":"^0.1.4","@solid-aria/label":"^0.1.4","@solid-aria/list":"^0.1.4","@solid-aria/listbox":"^0.2.0","@solid-aria/menu":"^0.2.0","@solid-aria/overlays":"^0.1.3","@solid-aria/selection":"^0.1.5","@solid-aria/types":"^0.1.4","@solid-aria/utils":"^0.2.1","@solid-aria/visually-hidden":"^0.1.3","@solid-primitives/props":"^2.1.7","@solid-primitives/utils":"^2.1.0"},"devDependencies":{"@solid-aria/collection":"^0.2.0","@solid-aria/focus":"^0.1.4","solid-js":"^1.4.4"},"peerDependencies":{"solid-js":"^1.4.4"},"publishConfig":{"access":"public"},"primitive":{"name":"select","stage":0,"list":[],"category":""},"scripts":{"build":"rollup -c","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist","dev":"vite serve dev --host","test":"jest --passWithNoTests","test:watch":"jest --watch --passWithNoTests","typecheck":"tsc --noEmit"},"_id":"@solid-aria/select@0.1.0","_integrity":"sha512-WVl8jro1ICVUSdeHvrkrLf6VULN9hrgXzZZWKYrzDmRLH45ieJI8QoYIDRSh7DNgLFZwXTuCh4SR5vPKZUmWqA==","_resolved":"/tmp/11d0e647db9d055dfac40efea2ae2ee1/solid-aria-select-0.1.0.tgz","_from":"file:solid-aria-select-0.1.0.tgz","_nodeVersion":"17.9.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-WVl8jro1ICVUSdeHvrkrLf6VULN9hrgXzZZWKYrzDmRLH45ieJI8QoYIDRSh7DNgLFZwXTuCh4SR5vPKZUmWqA==","shasum":"f424b3dea8f0bfe258374732f79e819d522b24b2","tarball":"https://registry.npmjs.org/@solid-aria/select/-/select-0.1.0.tgz","fileCount":15,"unpackedSize":119151,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICLMplf+RV/lR/myaZD3RKznLhvBLSL2EKCZDjTPSUxrAiEA4gMV4P7WYmrfhI7GGtfR5qnKenJ8ZgfWMMAw3RJeBSM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi0Sb5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoj3A/+KZNWEBRQ6gyf963WFRxbO8wx2CVF+7mj1KGwU/OB04yIvH9b\r\ntvkKtaMNhWT9ztanh+cJ7XqCgHetU+liTXBoyj+RFe/hsu6Wff8OPsNDwFR6\r\nCW6m6YlZ5wpQwopsS1E1aJ80cx0Z1ZMN9EXZOqfPKEjxqGbGHk54qNMyEhLn\r\nAb/0HQ3yLML9UxIZILXOI8ZhBcO6VMvc9IvKX1A9N4G3jFLg0sl/BlUrS0VR\r\nfgCPO4Hfnq75EOgXzG7XYaOwgNmtlsoi7TVKjDWLrTHA9xe7+n01lplNk0hs\r\nbl6ITPUEFGK/EYtRbiOJMooYWiRfDI6nKjScg7S/XMss/VIk6i4Gnq9pXbDb\r\nuuT6tCda461+UYp2/63AQUUYPc+6F0XUPeR90j8CMjbrsfSJ05j8Ks8OZOjk\r\nNYooY0/sEvIpARqecfqsU0F+vpk+AWUjWVqDCZ2zT6JKD0bg1muy+kqoNzgI\r\n8FDdXmHa8UmSUGEMvJ7VYXudnXmDwRgrLIq7tTx+iUAlTvD5h2Q7bCyW9r9n\r\nXXw5xHvAZc97x88JsnWQBkfyBzWFuDQffgwy0+2q4Cami3fBrvhphv2PYPE6\r\nnQi2Czq0dpFqRGShdjmjP+OVmzMk4bQ/uglQYjxuzBmMQpygqjJZWF/i5fBD\r\nR76dpw1afKXDzKGp7JgXU+BIL8Qvh24HR4U=\r\n=c0sk\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"fabienml","email":"fabienml.dev@gmail.com"},"directories":{},"maintainers":[{"name":"fabienml","email":"fabienml.dev@gmail.com"},{"name":"davedbase","email":"dave.dibiase@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/select_0.1.0_1657874168981_0.43348247790025707"},"_hasShrinkwrap":false}},"time":{"created":"2022-06-17T08:33:29.446Z","0.0.0":"2022-06-17T08:33:29.727Z","modified":"2022-07-15T08:36:09.367Z","0.0.1":"2022-06-18T10:12:34.563Z","0.0.2":"2022-06-19T07:31:51.036Z","0.1.0":"2022-07-15T08:36:09.251Z"},"maintainers":[{"name":"fabienml","email":"fabienml.dev@gmail.com"},{"name":"davedbase","email":"dave.dibiase@gmail.com"}],"description":"Primitives for building accessible select component.","homepage":"https://github.com/solidjs-community/solid-aria/tree/main/packages/select#readme","keywords":["solid","aria","headless","design","system","components"],"repository":{"type":"git","url":"git+https://github.com/solidjs-community/solid-aria.git"},"contributors":[],"author":{"name":"Fabien Marie-Louise","email":"fabienml.dev@gmail.com"},"bugs":{"url":"https://github.com/solidjs-community/solid-aria/issues"},"license":"MIT","readme":"<p>\n  <img width=\"100%\" src=\"https://assets.solidjs.com/banner?type=Aria&background=tiles&project=Select\" alt=\"Solid Aria - Select\">\n</p>\n\n# @solid-aria/select\n\n[![pnpm](https://img.shields.io/badge/maintained%20with-pnpm-cc00ff.svg?style=for-the-badge&logo=pnpm)](https://pnpm.io/)\n[![turborepo](https://img.shields.io/badge/built%20with-turborepo-cc00ff.svg?style=for-the-badge&logo=turborepo)](https://turborepo.org/)\n[![size](https://img.shields.io/bundlephobia/minzip/@solid-aria/select?style=for-the-badge&label=size)](https://bundlephobia.com/package/@solid-aria/select)\n[![version](https://img.shields.io/npm/v/@solid-aria/select?style=for-the-badge)](https://www.npmjs.com/package/@solid-aria/select)\n[![stage](https://img.shields.io/endpoint?style=for-the-badge&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-aria#contribution-process)\n\nSelect displays a collapsible list of options and allows a user to select one of them.\n\n- [`createSelect`](#createselect) - Provides the behavior and accessibility implementation for a select component.\n\n## Installation\n\n```bash\nnpm install @solid-aria/select\n# or\nyarn add @solid-aria/select\n# or\npnpm add @solid-aria/select\n```\n\n## `createSelect`\n\n### Features\n\nA select can be built using the `<select>` and `<option>` HTML elements, but this is not possible to style consistently cross browser, especially the options. `createSelect` helps achieve accessible select components that can be styled as needed without compromising on high quality interactions.\n\n- Exposed to assistive technology as a button with a `listbox` popup using ARIA (combined with [`createListBox`](../listbox/))\n- Support for selecting a single option\n- Support for disabled options\n- Support for sections\n- Labeling support for accessibility\n- Support for description and error message help text linked to the input via ARIA\n- Support for mouse, touch, and keyboard interactions\n- Tab stop focus management\n- Keyboard support for opening the listbox using the arrow keys, including automatically focusing the first or last item accordingly\n- Typeahead to allow selecting options by typing text, even without opening the listbox\n- Browser autofill integration via a hidden native `<select>` element\n- Support for mobile form navigation via software keyboard\n- Mobile screen reader listbox dismissal support\n\n### How to use it\n\nThis example uses a `<button>` element for the trigger, with a `<span>` inside to hold the value, and another for the dropdown arrow icon (hidden from screen readers with aria-hidden). A `<HiddenSelect>` is used to render a hidden native `<select>`, which enables browser form autofill support.\n\nThe listbox popup uses `createListBox` and `createListBoxOption` to render the list of options. In addition, a `<FocusScope>` is used to automatically restore focus to the trigger when the popup closes. A hidden `<DismissButton>` is added at the start and end of the popup to allow screen reader users to dismiss the popup.\n\nThe `Popover` component is used to contain the popup listbox for the Select. It can be shared between many other components, including ComboBox, Menu, Dialog, and others. See [`createOverlayTrigger`](../overlays/) for more examples of popovers.\n\nThe `ListBox` and `Option` components are used to show the list of options. They can also be shared with other components like a ComboBox. See [`createListBox`](../listbox/) for more examples, including sections and more complex items.\n\nThis example does not do any advanced popover positioning or portaling to escape its visual container.\n\n```tsx\nimport { createButton } from \"@solid-aria/button\";\nimport { ForItems, Item } from \"@solid-aria/collection\";\nimport { FocusScope } from \"@solid-aria/focus\";\nimport { ListState } from \"@solid-aria/list\";\nimport {\n  AriaListBoxOptionProps,\n  AriaListBoxProps,\n  createListBox,\n  createListBoxOption\n} from \"@solid-aria/listbox\";\nimport { AriaOverlayProps, createOverlay, DismissButton } from \"@solid-aria/overlays\";\nimport { AriaSelectProps, createSelect, HiddenSelect } from \"@solid-aria/select\";\nimport { ParentProps, Show } from \"solid-js\";\n\nfunction Popover(props: ParentProps<AriaOverlayProps>) {\n  let ref: HTMLDivElement | undefined;\n\n  // Handle events that should cause the popup to close,\n  // e.g. blur, clicking outside, or pressing the escape key.\n  const { overlayProps } = createOverlay(\n    {\n      isOpen: props.isOpen,\n      onClose: props.onClose,\n      shouldCloseOnBlur: true,\n      isDismissable: true\n    },\n    () => ref\n  );\n\n  // Add a hidden <DismissButton> component at the end of the popover\n  // to allow screen reader users to dismiss the popup easily.\n  return (\n    <FocusScope restoreFocus>\n      <div\n        {...overlayProps}\n        ref={ref}\n        style={{\n          position: \"absolute\",\n          width: \"100%\",\n          border: \"1px solid gray\",\n          background: \"lightgray\",\n          \"margin-top\": \"4px\"\n        }}\n      >\n        {props.children}\n        <DismissButton onDismiss={props.onClose} />\n      </div>\n    </FocusScope>\n  );\n}\n\nfunction ListBox(props: AriaListBoxProps & { state: ListState }) {\n  let ref: HTMLUListElement | undefined;\n\n  const { ListBoxProvider, listBoxProps } = createListBox(props, () => ref, props.state);\n\n  return (\n    <ListBoxProvider>\n      <ul\n        {...listBoxProps}\n        ref={ref}\n        style={{\n          margin: 0,\n          padding: 0,\n          \"list-style\": \"none\",\n          \"max-height\": \"150px\",\n          overflow: \"auto\"\n        }}\n      >\n        <ForItems in={props.state.collection()}>\n          {item => <Option key={item().key}>{item().children}</Option>}\n        </ForItems>\n      </ul>\n    </ListBoxProvider>\n  );\n}\n\nfunction Option(props: ParentProps<AriaListBoxOptionProps>) {\n  let ref: HTMLLIElement | undefined;\n\n  const { optionProps, isSelected, isFocused } = createListBoxOption(props, () => ref);\n\n  return (\n    <li\n      {...optionProps}\n      ref={ref}\n      style={{\n        background: isSelected() ? \"blueviolet\" : isFocused() ? \"gray\" : \"white\",\n        color: isSelected() ? \"white\" : \"black\",\n        padding: \"2px 5px\",\n        outline: \"none\",\n        cursor: \"pointer\"\n      }}\n    >\n      {props.children}\n    </li>\n  );\n}\n\nfunction Select(props: AriaSelectProps) {\n  let ref: HTMLButtonElement | undefined;\n\n  // Get props for child elements from useSelect\n  const { labelProps, triggerProps, valueProps, menuProps, state } = createSelect(props, () => ref);\n\n  // Get props for the button based on the trigger props from useSelect\n  const { buttonProps } = createButton(triggerProps, () => ref);\n\n  return (\n    <div style={{ position: \"relative\", display: \"inline-block\" }}>\n      <div {...labelProps}>{props.label}</div>\n      <HiddenSelect state={state} triggerRef={ref} label={props.label} name={props.name} />\n      <button {...buttonProps} ref={ref} style={{ height: \"30px\", \"font-size\": \"14px\" }}>\n        <span {...valueProps}>{state.selectedItem()?.children ?? \"Select an option\"}</span>\n        <span aria-hidden=\"true\" style={{ \"padding-left\": \"5px\" }}>\n          ▼\n        </span>\n      </button>\n      <Show when={state.isOpen()}>\n        <Popover isOpen={state.isOpen()} onClose={state.close}>\n          <ListBox {...menuProps} state={state} />\n        </Popover>\n      </Show>\n    </div>\n  );\n}\n\nfunction App() {\n  return (\n    <Select label=\"Favorite Color\">\n      <Item key=\"red\">Red</Item>\n      <Item key=\"orange\">Orange</Item>\n      <Item key=\"yellow\">Yellow</Item>\n      <Item key=\"green\">Green</Item>\n      <Item key=\"blue\">Blue</Item>\n      <Item key=\"purple\">Purple</Item>\n      <Item key=\"black\">Black</Item>\n      <Item key=\"white\">White</Item>\n      <Item key=\"lime\">Lime</Item>\n      <Item key=\"fuchsia\">Fuchsia</Item>\n    </Select>\n  );\n}\n```\n\n### Internationalization\n\n`createSelect` and `createListBox` handle some aspects of internationalization automatically. For example, type to select is implemented with an `Intl.Collator` for internationalized string matching. You are responsible for localizing all labels and option content that is passed into the select.\n\n#### RTL\n\nIn right-to-left languages, the select should be mirrored. Ensure that your CSS accounts for this.\n\n## Changelog\n\nAll notable changes are described in the [CHANGELOG.md](./CHANGELOG.md) file.\n","readmeFilename":"README.md"}