# react-picky-with-clear

> I no longer have the time nor the energy to maintain Picky. Please fork and improve. For alternatives I suggest:

Latest version **6.0.9** (published 2021-07-29) · MIT license · 0 weekly downloads

## Install

```sh
npm install react-picky-with-clear
pnpm add react-picky-with-clear
yarn add react-picky-with-clear
bun add react-picky-with-clear
```

## Health

**Score 30/100 (F)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 6.0.9 |
| Published | 2021-07-29 |
| First published | 2021-07-21 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 871 |
| Unpacked size | 255.7 KB |
| Known vulnerabilities | 0 (+32 in 15 direct dependencies) |
| Install scripts | no |
| GitHub stars | 0 |
| Author | kate_ fork from Aidurber |
| Maintainers | kate_ |
| Keywords | picky |

## Links

- npm: https://www.npmjs.com/package/react-picky-with-clear
- Repository: https://github.com/KateMoreva/react-picky
- Homepage: https://github.com/KateMoreva/react-picky#readme
- Issues: https://github.com/KateMoreva/react-picky/issues
- npm.io page: https://npm.io/package/react-picky-with-clear

## Dependencies (871)

- [q](https://npm.io/package/q.md) ^1.5.1
- [co](https://npm.io/package/co.md) ^4.6.0
- [ip](https://npm.io/package/ip.md) ^1.1.5
- [ms](https://npm.io/package/ms.md) ^2.1.2
- [qs](https://npm.io/package/qs.md) ^6.5.2
- [qw](https://npm.io/package/qw.md) ^1.0.1
- [rc](https://npm.io/package/rc.md) ^1.2.8
- [ws](https://npm.io/package/ws.md) ^7.3.1
- [ajv](https://npm.io/package/ajv.md) ^6.10.0
- [dlv](https://npm.io/package/dlv.md) ^1.1.3
- [got](https://npm.io/package/got.md) ^6.7.1
- [has](https://npm.io/package/has.md) ^1.0.3
- [ini](https://npm.io/package/ini.md) ^1.3.8
- [mem](https://npm.io/package/mem.md) ^4.3.0
- [mri](https://npm.io/package/mri.md) ^1.1.4
- [npm](https://npm.io/package/npm.md) ^6.14.8
- [prr](https://npm.io/package/prr.md) ^1.0.1
- [psl](https://npm.io/package/psl.md) ^1.8.0
- [ret](https://npm.io/package/ret.md) ^0.1.15
- [sha](https://npm.io/package/sha.md) ^3.0.0
- [tar](https://npm.io/package/tar.md) ^4.4.13
- [tmp](https://npm.io/package/tmp.md) ^0.1.0
- [url](https://npm.io/package/url.md) ^0.11.0
- [use](https://npm.io/package/use.md) ^3.1.1
- [abab](https://npm.io/package/abab.md) ^2.0.4
- [arch](https://npm.io/package/arch.md) ^2.1.1
- [asap](https://npm.io/package/asap.md) ^2.0.6
- [asn1](https://npm.io/package/asn1.md) ^0.2.4
- [atob](https://npm.io/package/atob.md) ^2.1.2
- [aws4](https://npm.io/package/aws4.md) ^1.10.1
- [base](https://npm.io/package/base.md) ^0.11.2
- [bser](https://npm.io/package/bser.md) ^2.1.1
- [depd](https://npm.io/package/depd.md) ^1.1.2
- [exit](https://npm.io/package/exit.md) ^0.1.2
- [glob](https://npm.io/package/glob.md) ^7.1.6
- [jsbn](https://npm.io/package/jsbn.md) ^0.1.1
- [lcid](https://npm.io/package/lcid.md) ^2.0.0
- [levn](https://npm.io/package/levn.md) ^0.3.0
- [meow](https://npm.io/package/meow.md) ^10.1.0
- [mime](https://npm.io/package/mime.md) ^2.4.4
- [nopt](https://npm.io/package/nopt.md) ^4.0.3
- [once](https://npm.io/package/once.md) ^1.4.0
- [pend](https://npm.io/package/pend.md) ^1.2.0
- [pify](https://npm.io/package/pify.md) ^3.0.0
- [pump](https://npm.io/package/pump.md) ^3.0.0
- [read](https://npm.io/package/read.md) ^1.0.7
- [rsvp](https://npm.io/package/rsvp.md) ^4.8.5
- [rxjs](https://npm.io/package/rxjs.md) ^6.4.0
- [sane](https://npm.io/package/sane.md) ^4.1.0
- [ssri](https://npm.io/package/ssri.md) ^6.0.1
- [tmpl](https://npm.io/package/tmpl.md) ^1.0.4
- [tr46](https://npm.io/package/tr46.md) ^2.0.2
- [urix](https://npm.io/package/urix.md) ^0.1.0
- [uuid](https://npm.io/package/uuid.md) ^3.4.0
- [y18n](https://npm.io/package/y18n.md) ^4.0.3
- [yaml](https://npm.io/package/yaml.md) ^1.7.2
- [archy](https://npm.io/package/archy.md) ^1.0.0
- [async](https://npm.io/package/async.md) ^3.2.0
- [boxen](https://npm.io/package/boxen.md) ^4.2.0
- [chalk](https://npm.io/package/chalk.md) ^4.0.0
- [cliui](https://npm.io/package/cliui.md) ^6.0.0
- [clone](https://npm.io/package/clone.md) ^1.0.4
- [cssom](https://npm.io/package/cssom.md) ^0.4.4
- [dargs](https://npm.io/package/dargs.md) ^4.1.0
- [debug](https://npm.io/package/debug.md) ^4.1.1
- [errno](https://npm.io/package/errno.md) ^0.1.7
- [execa](https://npm.io/package/execa.md) ^4.0.0
- [fastq](https://npm.io/package/fastq.md) ^1.6.0
- [from2](https://npm.io/package/from2.md) ^2.3.0
- [gauge](https://npm.io/package/gauge.md) ^2.7.4
- [getos](https://npm.io/package/getos.md) ^3.1.4
- [iferr](https://npm.io/package/iferr.md) ^0.1.5
- [is-ci](https://npm.io/package/is-ci.md) ^2.0.0
- [isexe](https://npm.io/package/isexe.md) ^2.0.0
- [jsdom](https://npm.io/package/jsdom.md) ^16.4.0
- [jsesc](https://npm.io/package/jsesc.md) ^2.5.1
- [json5](https://npm.io/package/json5.md) ^2.1.3
- [kleur](https://npm.io/package/kleur.md) ^3.0.3
- [leven](https://npm.io/package/leven.md) ^3.1.0
- [listr](https://npm.io/package/listr.md) ^0.14.3
- [meant](https://npm.io/package/meant.md) ^1.0.2
- [osenv](https://npm.io/package/osenv.md) ^0.1.5
- [p-map](https://npm.io/package/p-map.md) ^2.1.0
- [p-try](https://npm.io/package/p-try.md) ^2.2.0
- [ramda](https://npm.io/package/ramda.md) ^0.26.1
- [retry](https://npm.io/package/retry.md) ^0.12.0
- [saxes](https://npm.io/package/saxes.md) ^5.0.1
- [slash](https://npm.io/package/slash.md) ^3.0.0
- [slide](https://npm.io/package/slide.md) ^1.1.6
- [socks](https://npm.io/package/socks.md) ^2.3.3
- [split](https://npm.io/package/split.md) ^1.0.1
- [sshpk](https://npm.io/package/sshpk.md) ^1.16.1
- [table](https://npm.io/package/table.md) ^5.2.3
- [tempy](https://npm.io/package/tempy.md) ^0.5.0
- [umask](https://npm.io/package/umask.md) ^1.1.0
- [which](https://npm.io/package/which.md) ^1.3.1
- [write](https://npm.io/package/write.md) ^1.0.3
- [xtend](https://npm.io/package/xtend.md) ^4.0.2
- [yargs](https://npm.io/package/yargs.md) ^15.4.1
- [yauzl](https://npm.io/package/yauzl.md) ^2.10.0
- [abbrev](https://npm.io/package/abbrev.md) ^1.1.1
- [aproba](https://npm.io/package/aproba.md) ^2.0.0
- [arrify](https://npm.io/package/arrify.md) ^1.0.1
- [braces](https://npm.io/package/braces.md) ^3.0.2
- [byline](https://npm.io/package/byline.md) ^5.0.0
- [chownr](https://npm.io/package/chownr.md) ^1.1.4
- [colors](https://npm.io/package/colors.md) ^1.4.0
- [dotenv](https://npm.io/package/dotenv.md) ^5.0.1
- [editor](https://npm.io/package/editor.md) ^1.0.0
- [env-ci](https://npm.io/package/env-ci.md) ^5.0.2
- [espree](https://npm.io/package/espree.md) ^6.1.2
- [expect](https://npm.io/package/expect.md) ^26.4.2
- [extend](https://npm.io/package/extend.md) ^3.0.2
- [for-in](https://npm.io/package/for-in.md) ^1.0.2
- [genfun](https://npm.io/package/genfun.md) ^5.0.0
- [globby](https://npm.io/package/globby.md) ^11.0.0
- [growly](https://npm.io/package/growly.md) ^1.3.0
- [ignore](https://npm.io/package/ignore.md) ^4.0.6
- [is-npm](https://npm.io/package/is-npm.md) ^1.0.0
- [is-obj](https://npm.io/package/is-obj.md) ^1.0.1
- [is-wsl](https://npm.io/package/is-wsl.md) ^2.2.0
- [joycon](https://npm.io/package/joycon.md) ^2.2.5
- [jsprim](https://npm.io/package/jsprim.md) ^1.4.1
- [libnpm](https://npm.io/package/libnpm.md) ^3.0.1
- [libnpx](https://npm.io/package/libnpx.md) ^10.2.4
- [lodash](https://npm.io/package/lodash.md) ^4.17.21
- [marked](https://npm.io/package/marked.md) ^0.8.2
- [merge2](https://npm.io/package/merge2.md) ^1.3.0
- [mkdirp](https://npm.io/package/mkdirp.md) ^0.5.5
- [moment](https://npm.io/package/moment.md) ^2.24.0
- [npmlog](https://npm.io/package/npmlog.md) ^4.1.2
- [nwsapi](https://npm.io/package/nwsapi.md) ^2.2.0
- [opener](https://npm.io/package/opener.md) ^1.5.2
- [ospath](https://npm.io/package/ospath.md) ^1.2.2
- [pacote](https://npm.io/package/pacote.md) ^9.5.12
- [parse5](https://npm.io/package/parse5.md) ^5.1.1
- [pkg-up](https://npm.io/package/pkg-up.md) ^2.0.0
- [redent](https://npm.io/package/redent.md) ^2.0.0
- [rimraf](https://npm.io/package/rimraf.md) ^2.7.1
- [semver](https://npm.io/package/semver.md) ^5.7.1
- [split2](https://npm.io/package/split2.md) ^2.2.0
- [terser](https://npm.io/package/terser.md) ^4.8.0
- [throat](https://npm.io/package/throat.md) ^5.0.0
- [unpipe](https://npm.io/package/unpipe.md) ^1.0.0
- [uri-js](https://npm.io/package/uri-js.md) ^4.4.0
- [verror](https://npm.io/package/verror.md) ^1.10.0
- [walker](https://npm.io/package/walker.md) ^1.0.7
- [wrappy](https://npm.io/package/wrappy.md) ^1.0.2
- [cacache](https://npm.io/package/cacache.md) ^12.0.4
- [chardet](https://npm.io/package/chardet.md) ^0.7.0
- [ci-info](https://npm.io/package/ci-info.md) ^2.0.0
- [core-js](https://npm.io/package/core-js.md) ^2.6.9
- [csstype](https://npm.io/package/csstype.md) ^3.0.3
- [cyclist](https://npm.io/package/cyclist.md) ^1.0.1
- [deep-is](https://npm.io/package/deep-is.md) ^0.1.3
- [dezalgo](https://npm.io/package/dezalgo.md) ^1.0.3
- [esprima](https://npm.io/package/esprima.md) ^4.0.1
- [esquery](https://npm.io/package/esquery.md) ^1.0.1
- [esutils](https://npm.io/package/esutils.md) ^2.0.2
- [exec-sh](https://npm.io/package/exec-sh.md) ^0.3.4
- [extglob](https://npm.io/package/extglob.md) ^2.0.4
- [figures](https://npm.io/package/figures.md) ^2.0.0
- [find-up](https://npm.io/package/find-up.md) ^4.1.0
- [flatted](https://npm.io/package/flatted.md) ^2.0.0
- [gensync](https://npm.io/package/gensync.md) ^1.0.0-beta.1
- [getpass](https://npm.io/package/getpass.md) ^0.1.7
- [globals](https://npm.io/package/globals.md) ^11.7.0
- [is-cidr](https://npm.io/package/is-cidr.md) ^3.1.1
- [is-glob](https://npm.io/package/is-glob.md) ^4.0.1
- [isarray](https://npm.io/package/isarray.md) ^1.0.0
- [js-yaml](https://npm.io/package/js-yaml.md) ^3.13.1
- [kind-of](https://npm.io/package/kind-of.md) ^3.2.2
- [libcipm](https://npm.io/package/libcipm.md) ^4.0.8
- [map-obj](https://npm.io/package/map-obj.md) ^1.0.1
- [mime-db](https://npm.io/package/mime-db.md) ^1.44.0
- [onetime](https://npm.io/package/onetime.md) ^5.1.0
- [os-name](https://npm.io/package/os-name.md) ^3.1.0
- [p-defer](https://npm.io/package/p-defer.md) ^1.0.0
- [p-limit](https://npm.io/package/p-limit.md) ^2.2.0
- [p-retry](https://npm.io/package/p-retry.md) ^4.2.0
- [pirates](https://npm.io/package/pirates.md) ^4.0.1
- [pkg-dir](https://npm.io/package/pkg-dir.md) ^4.2.0
- [private](https://npm.io/package/private.md) ^0.1.8
- [prompts](https://npm.io/package/prompts.md) ^2.3.2
- [pumpify](https://npm.io/package/pumpify.md) ^1.5.1
- [redeyed](https://npm.io/package/redeyed.md) ^2.1.1
- [regexpp](https://npm.io/package/regexpp.md) ^2.0.1
- [request](https://npm.io/package/request.md) ^2.88.2
- [resolve](https://npm.io/package/resolve.md) ^1.17.0
- [reusify](https://npm.io/package/reusify.md) ^1.0.4
- [signale](https://npm.io/package/signale.md) ^1.3.0
- [through](https://npm.io/package/through.md) ^2.3.8
- [tsutils](https://npm.io/package/tsutils.md) ^3.17.1
- [wcwidth](https://npm.io/package/wcwidth.md) ^1.0.1
- [yallist](https://npm.io/package/yallist.md) ^4.0.0
- [anymatch](https://npm.io/package/anymatch.md) ^3.1.1
- [argparse](https://npm.io/package/argparse.md) ^1.0.10
- [arr-diff](https://npm.io/package/arr-diff.md) ^4.0.0
- [asynckit](https://npm.io/package/asynckit.md) ^0.4.0
- [axe-core](https://npm.io/package/axe-core.md) ^3.5.5
- [bluebird](https://npm.io/package/bluebird.md) ^3.7.2
- [builtins](https://npm.io/package/builtins.md) ^1.0.3
- [cachedir](https://npm.io/package/cachedir.md) ^2.3.0
- [cardinal](https://npm.io/package/cardinal.md) ^2.1.1
- [caseless](https://npm.io/package/caseless.md) ^0.12.0
- [cmd-shim](https://npm.io/package/cmd-shim.md) ^3.0.3
- [cssstyle](https://npm.io/package/cssstyle.md) ^2.3.0
- [dashdash](https://npm.io/package/dashdash.md) ^1.14.1
- [date-fns](https://npm.io/package/date-fns.md) ^1.30.1
- [debuglog](https://npm.io/package/debuglog.md) ^1.0.1
- [defaults](https://npm.io/package/defaults.md) ^1.0.3
- [dir-glob](https://npm.io/package/dir-glob.md) ^3.0.1
- [doctrine](https://npm.io/package/doctrine.md) ^3.0.0
- [dot-prop](https://npm.io/package/dot-prop.md) ^6.0.1
- [duplexer](https://npm.io/package/duplexer.md) ^0.1.1
- [ecc-jsbn](https://npm.io/package/ecc-jsbn.md) ^0.1.2
- [emittery](https://npm.io/package/emittery.md) ^0.7.1
- [encoding](https://npm.io/package/encoding.md) ^0.1.13
- [err-code](https://npm.io/package/err-code.md) ^1.1.2
- [error-ex](https://npm.io/package/error-ex.md) ^1.3.2
- [filesize](https://npm.io/package/filesize.md) ^6.1.0
- [fs-extra](https://npm.io/package/fs-extra.md) ^9.0.0
- [has-ansi](https://npm.io/package/has-ansi.md) ^2.0.0
- [has-flag](https://npm.io/package/has-flag.md) ^4.0.0
- [hook-std](https://npm.io/package/hook-std.md) ^2.0.0
- [inflight](https://npm.io/package/inflight.md) ^1.0.6
- [inherits](https://npm.io/package/inherits.md) ^2.0.4
- [inquirer](https://npm.io/package/inquirer.md) ^7.0.0
- [ip-regex](https://npm.io/package/ip-regex.md) ^2.1.0
- [is-regex](https://npm.io/package/is-regex.md) ^1.1.1
- [isobject](https://npm.io/package/isobject.md) ^3.0.1
- [isstream](https://npm.io/package/isstream.md) ^0.1.2
- [jest-cli](https://npm.io/package/jest-cli.md) ^26.4.2
- [jsonfile](https://npm.io/package/jsonfile.md) ^6.0.1
- [lazy-ass](https://npm.io/package/lazy-ass.md) ^1.6.0
- [levenary](https://npm.io/package/levenary.md) ^1.1.1
- [lockfile](https://npm.io/package/lockfile.md) ^1.0.4
- [loglevel](https://npm.io/package/loglevel.md) ^1.6.4
- [make-dir](https://npm.io/package/make-dir.md) ^3.1.0
- [mimic-fn](https://npm.io/package/mimic-fn.md) ^1.2.0
- [minimist](https://npm.io/package/minimist.md) ^1.2.5
- [minipass](https://npm.io/package/minipass.md) ^3.1.3
- [minizlib](https://npm.io/package/minizlib.md) ^2.1.2
- [nice-try](https://npm.io/package/nice-try.md) ^1.0.4
- [node-gyp](https://npm.io/package/node-gyp.md) ^5.1.1
- [p-filter](https://npm.io/package/p-filter.md) ^2.1.0
- [p-locate](https://npm.io/package/p-locate.md) ^4.1.0
- [p-reduce](https://npm.io/package/p-reduce.md) ^2.1.0
- [path-key](https://npm.io/package/path-key.md) ^3.1.0
- [pkg-conf](https://npm.io/package/pkg-conf.md) ^2.1.0
- [progress](https://npm.io/package/progress.md) ^2.0.0
- [promzard](https://npm.io/package/promzard.md) ^0.3.0
- [punycode](https://npm.io/package/punycode.md) ^2.1.1
- [react-is](https://npm.io/package/react-is.md) ^16.13.1
- [read-pkg](https://npm.io/package/read-pkg.md) ^5.2.0
- [regjsgen](https://npm.io/package/regjsgen.md) ^0.5.1
- [temp-dir](https://npm.io/package/temp-dir.md) ^2.0.0
- [through2](https://npm.io/package/through2.md) ^2.0.3
- [to-regex](https://npm.io/package/to-regex.md) ^3.0.2
- [traverse](https://npm.io/package/traverse.md) ^0.6.6
- [url-join](https://npm.io/package/url-join.md) ^4.0.0
- [wordwrap](https://npm.io/package/wordwrap.md) ^1.0.0
- [xmlchars](https://npm.io/package/xmlchars.md) ^2.2.0
- [acorn-jsx](https://npm.io/package/acorn-jsx.md) ^3.0.1
- [arr-union](https://npm.io/package/arr-union.md) ^3.1.0
- [array-ify](https://npm.io/package/array-ify.md) ^1.0.0
- [aws-sign2](https://npm.io/package/aws-sign2.md) ^0.7.0
- [bin-links](https://npm.io/package/bin-links.md) ^1.1.8
- [byte-size](https://npm.io/package/byte-size.md) ^5.0.1
- [callsites](https://npm.io/package/callsites.md) ^3.0.0
- [camelcase](https://npm.io/package/camelcase.md) ^5.3.1
- [cli-boxes](https://npm.io/package/cli-boxes.md) ^2.2.0
- [cli-table](https://npm.io/package/cli-table.md) ^0.3.1
- [cli-width](https://npm.io/package/cli-width.md) ^2.2.0
- [columnify](https://npm.io/package/columnify.md) ^1.5.4
- [commander](https://npm.io/package/commander.md) ^4.1.0
- [data-urls](https://npm.io/package/data-urls.md) ^2.0.0
- [deepmerge](https://npm.io/package/deepmerge.md) ^4.2.2
- [delegates](https://npm.io/package/delegates.md) ^1.0.0
- [duplexer2](https://npm.io/package/duplexer2.md) ^0.1.4
- [duplexer3](https://npm.io/package/duplexer3.md) ^0.1.4
- [duplexify](https://npm.io/package/duplexify.md) ^3.7.1
- [env-paths](https://npm.io/package/env-paths.md) ^2.2.0
- [escodegen](https://npm.io/package/escodegen.md) ^1.14.3
- [esrecurse](https://npm.io/package/esrecurse.md) ^4.2.1
- [exit-hook](https://npm.io/package/exit-hook.md) ^1.1.1
- [fast-diff](https://npm.io/package/fast-diff.md) ^1.2.0
- [fast-glob](https://npm.io/package/fast-glob.md) ^3.2.2
- [fd-slicer](https://npm.io/package/fd-slicer.md) ^1.1.0
- [form-data](https://npm.io/package/form-data.md) ^2.3.3
- [fs-vacuum](https://npm.io/package/fs-vacuum.md) ^1.2.10
- [gentle-fs](https://npm.io/package/gentle-fs.md) ^2.3.1
- [get-stdin](https://npm.io/package/get-stdin.md) ^7.0.0
- [get-value](https://npm.io/package/get-value.md) ^2.0.6
- [gzip-size](https://npm.io/package/gzip-size.md) ^5.1.1
- [has-value](https://npm.io/package/has-value.md) ^1.0.0
- [invariant](https://npm.io/package/invariant.md) ^2.2.4
- [invert-kv](https://npm.io/package/invert-kv.md) ^2.0.0
- [is-buffer](https://npm.io/package/is-buffer.md) ^1.1.6
- [is-docker](https://npm.io/package/is-docker.md) ^2.1.1
- [is-lambda](https://npm.io/package/is-lambda.md) ^1.0.1
- [is-number](https://npm.io/package/is-number.md) ^3.0.0
- [is-stream](https://npm.io/package/is-stream.md) ^1.1.0
- [is-string](https://npm.io/package/is-string.md) ^1.0.5
- [is-subset](https://npm.io/package/is-subset.md) ^0.1.1
- [is-symbol](https://npm.io/package/is-symbol.md) ^1.0.3
- [jest-diff](https://npm.io/package/jest-diff.md) ^26.4.2
- [jest-each](https://npm.io/package/jest-each.md) ^26.4.2
- [jest-mock](https://npm.io/package/jest-mock.md) ^26.3.0
- [jest-util](https://npm.io/package/jest-util.md) ^26.3.0
- [js-tokens](https://npm.io/package/js-tokens.md) ^4.0.0
- [jsonparse](https://npm.io/package/jsonparse.md) ^1.3.1
- [libnpmorg](https://npm.io/package/libnpmorg.md) ^1.0.1
- [lru-cache](https://npm.io/package/lru-cache.md) ^5.1.1
- [makeerror](https://npm.io/package/makeerror.md) ^1.0.11
- [map-cache](https://npm.io/package/map-cache.md) ^0.2.2
- [map-visit](https://npm.io/package/map-visit.md) ^1.0.0
- [minimatch](https://npm.io/package/minimatch.md) ^3.0.4
- [nanomatch](https://npm.io/package/nanomatch.md) ^1.2.13
- [neo-async](https://npm.io/package/neo-async.md) ^2.6.2
- [nerf-dart](https://npm.io/package/nerf-dart.md) ^1.0.0
- [os-locale](https://npm.io/package/os-locale.md) ^3.1.0
- [os-tmpdir](https://npm.io/package/os-tmpdir.md) ^1.0.2
- [p-finally](https://npm.io/package/p-finally.md) ^1.0.0
- [path-type](https://npm.io/package/path-type.md) ^4.0.0
- [picomatch](https://npm.io/package/picomatch.md) ^2.2.2
- [protoduck](https://npm.io/package/protoduck.md) ^5.0.1
- [pseudomap](https://npm.io/package/pseudomap.md) ^1.0.2
- [quick-lru](https://npm.io/package/quick-lru.md) ^1.1.0
- [regex-not](https://npm.io/package/regex-not.md) ^1.0.2
- [run-async](https://npm.io/package/run-async.md) ^2.3.0
- [run-queue](https://npm.io/package/run-queue.md) ^1.0.3
- [scheduler](https://npm.io/package/scheduler.md) ^0.19.1
- [set-value](https://npm.io/package/set-value.md) ^2.0.1
- [strip-bom](https://npm.io/package/strip-bom.md) ^3.0.0
- [strip-eof](https://npm.io/package/strip-eof.md) ^1.0.0
- [term-size](https://npm.io/package/term-size.md) ^2.1.0
- [timed-out](https://npm.io/package/timed-out.md) ^4.0.1
- [tree-kill](https://npm.io/package/tree-kill.md) ^1.2.2
- [tweetnacl](https://npm.io/package/tweetnacl.md) ^0.14.5
- [type-fest](https://npm.io/package/type-fest.md) ^0.8.1
- [uglify-js](https://npm.io/package/uglify-js.md) ^3.10.3
- [untildify](https://npm.io/package/untildify.md) ^4.0.0
- [word-wrap](https://npm.io/package/word-wrap.md) ^1.2.3
- [wrap-ansi](https://npm.io/package/wrap-ansi.md) ^2.1.0
- [JSONStream](https://npm.io/package/JSONStream.md) ^1.3.5
- [acorn-walk](https://npm.io/package/acorn-walk.md) ^7.2.0
- [agent-base](https://npm.io/package/agent-base.md) ^6.0.0
- [ansi-align](https://npm.io/package/ansi-align.md) ^3.0.0
- [ansi-regex](https://npm.io/package/ansi-regex.md) ^5.0.0
- [ansicolors](https://npm.io/package/ansicolors.md) ^0.3.2
- [ansistyles](https://npm.io/package/ansistyles.md) ^0.1.3
- [aria-query](https://npm.io/package/aria-query.md) ^4.2.2
- [array-uniq](https://npm.io/package/array-uniq.md) ^2.1.0
- [bottleneck](https://npm.io/package/bottleneck.md) ^2.19.5
- [cache-base](https://npm.io/package/cache-base.md) ^1.0.1
- [call-limit](https://npm.io/package/call-limit.md) ^1.1.1
- [char-regex](https://npm.io/package/char-regex.md) ^1.0.2
- [cidr-regex](https://npm.io/package/cidr-regex.md) ^2.0.10
- [cli-cursor](https://npm.io/package/cli-cursor.md) ^2.1.0
- [cli-table3](https://npm.io/package/cli-table3.md) ^0.5.1
- [color-name](https://npm.io/package/color-name.md) ^1.1.3
- [concat-map](https://npm.io/package/concat-map.md) ^0.0.1
- [dateformat](https://npm.io/package/dateformat.md) ^3.0.3
- [decamelize](https://npm.io/package/decamelize.md) ^1.2.0
- [decimal.js](https://npm.io/package/decimal.js.md) ^10.2.0
- [estraverse](https://npm.io/package/estraverse.md) ^4.2.0
- [executable](https://npm.io/package/executable.md) ^4.1.1
- [extsprintf](https://npm.io/package/extsprintf.md) ^1.3.0
- [fill-range](https://npm.io/package/fill-range.md) ^7.0.1
- [flat-cache](https://npm.io/package/flat-cache.md) ^2.0.1
- [get-stream](https://npm.io/package/get-stream.md) ^4.1.0
- [handlebars](https://npm.io/package/handlebars.md) ^4.7.6
- [har-schema](https://npm.io/package/har-schema.md) ^2.0.0
- [has-values](https://npm.io/package/has-values.md) ^1.0.0
- [iconv-lite](https://npm.io/package/iconv-lite.md) ^0.4.24
- [is-extglob](https://npm.io/package/is-extglob.md) ^2.1.1
- [is-promise](https://npm.io/package/is-promise.md) ^2.1.0
- [is-windows](https://npm.io/package/is-windows.md) ^1.0.2
- [libnpmhook](https://npm.io/package/libnpmhook.md) ^5.0.3
- [libnpmteam](https://npm.io/package/libnpmteam.md) ^1.0.2
- [log-update](https://npm.io/package/log-update.md) ^2.3.0
- [micromatch](https://npm.io/package/micromatch.md) ^4.0.2
- [mime-types](https://npm.io/package/mime-types.md) ^2.1.27
- [mixin-deep](https://npm.io/package/mixin-deep.md) ^1.3.2
- [multimatch](https://npm.io/package/multimatch.md) ^4.0.0
- [node-emoji](https://npm.io/package/node-emoji.md) ^1.10.0
- [node-fetch](https://npm.io/package/node-fetch.md) ^2.3.0
- [node-int64](https://npm.io/package/node-int64.md) ^0.4.0
- [oauth-sign](https://npm.io/package/oauth-sign.md) ^0.9.0
- [optionator](https://npm.io/package/optionator.md) ^0.8.3
- [os-homedir](https://npm.io/package/os-homedir.md) ^1.0.2
- [parse-json](https://npm.io/package/parse-json.md) ^4.0.0
- [pascalcase](https://npm.io/package/pascalcase.md) ^0.1.1
- [path-parse](https://npm.io/package/path-parse.md) ^1.0.6
- [prelude-ls](https://npm.io/package/prelude-ls.md) ^1.1.2
- [prop-types](https://npm.io/package/prop-types.md) ^15.6.2
- [proto-list](https://npm.io/package/proto-list.md) ^1.2.4
- [regenerate](https://npm.io/package/regenerate.md) ^1.4.0
- [safe-regex](https://npm.io/package/safe-regex.md) ^1.1.0
- [shellwords](https://npm.io/package/shellwords.md) ^0.1.1
- [sisteransi](https://npm.io/package/sisteransi.md) ^1.0.5
- [slice-ansi](https://npm.io/package/slice-ansi.md) ^2.1.0
- [snapdragon](https://npm.io/package/snapdragon.md) ^0.8.2
- [source-map](https://npm.io/package/source-map.md) ^0.6.1
- [sprintf-js](https://npm.io/package/sprintf-js.md) ^1.0.3
- [strip-ansi](https://npm.io/package/strip-ansi.md) ^3.0.1
- [text-table](https://npm.io/package/text-table.md) ^0.2.0
- [throttleit](https://npm.io/package/throttleit.md) ^1.0.0
- [type-check](https://npm.io/package/type-check.md) ^0.3.2
- [typedarray](https://npm.io/package/typedarray.md) ^0.0.6
- [uid-number](https://npm.io/package/uid-number.md) ^0.0.6
- [whatwg-url](https://npm.io/package/whatwg-url.md) ^8.2.1
- [wide-align](https://npm.io/package/wide-align.md) ^1.1.3
- [ansi-styles](https://npm.io/package/ansi-styles.md) ^3.2.1
- [arr-flatten](https://npm.io/package/arr-flatten.md) ^1.1.0
- [array-union](https://npm.io/package/array-union.md) ^2.1.0
- [assert-plus](https://npm.io/package/assert-plus.md) ^1.0.0
- [brotli-size](https://npm.io/package/brotli-size.md) ^4.0.0
- [buffer-from](https://npm.io/package/buffer-from.md) ^1.1.1
- [caller-path](https://npm.io/package/caller-path.md) ^2.0.0
- [class-utils](https://npm.io/package/class-utils.md) ^0.3.6
- [clean-stack](https://npm.io/package/clean-stack.md) ^2.0.0
- [cli-columns](https://npm.io/package/cli-columns.md) ^3.1.2
- [common-tags](https://npm.io/package/common-tags.md) ^1.8.0
- [configstore](https://npm.io/package/configstore.md) ^3.1.5
- [cosmiconfig](https://npm.io/package/cosmiconfig.md) ^6.0.0
- [cross-spawn](https://npm.io/package/cross-spawn.md) ^6.0.5
- [deep-extend](https://npm.io/package/deep-extend.md) ^0.6.0
- [deprecation](https://npm.io/package/deprecation.md) ^2.3.1
- [emoji-regex](https://npm.io/package/emoji-regex.md) ^8.0.0
- [es-abstract](https://npm.io/package/es-abstract.md) ^1.17.6
- [es6-promise](https://npm.io/package/es6-promise.md) ^4.2.8
- [extract-zip](https://npm.io/package/extract-zip.md) ^1.7.0
- [fb-watchman](https://npm.io/package/fb-watchman.md) ^2.0.1
- [fs-minipass](https://npm.io/package/fs-minipass.md) ^2.1.0
- [fs.realpath](https://npm.io/package/fs.realpath.md) ^1.0.0
- [glob-parent](https://npm.io/package/glob-parent.md) ^5.1.2
- [global-dirs](https://npm.io/package/global-dirs.md) ^0.1.1
- [graceful-fs](https://npm.io/package/graceful-fs.md) ^4.2.4
- [has-symbols](https://npm.io/package/has-symbols.md) ^1.0.1
- [has-unicode](https://npm.io/package/has-unicode.md) ^2.0.1
- [humanize-ms](https://npm.io/package/humanize-ms.md) ^1.2.1
- [ignore-walk](https://npm.io/package/ignore-walk.md) ^3.0.3
- [import-from](https://npm.io/package/import-from.md) ^3.0.0
- [import-lazy](https://npm.io/package/import-lazy.md) ^2.1.0
- [imurmurhash](https://npm.io/package/imurmurhash.md) ^0.1.4
- [infer-owner](https://npm.io/package/infer-owner.md) ^1.0.4
- [into-stream](https://npm.io/package/into-stream.md) ^5.1.1
- [is-arrayish](https://npm.io/package/is-arrayish.md) ^0.2.1
- [is-callable](https://npm.io/package/is-callable.md) ^1.2.0
- [is-redirect](https://npm.io/package/is-redirect.md) ^1.0.0
- [jest-config](https://npm.io/package/jest-config.md) ^26.4.2
- [jest-runner](https://npm.io/package/jest-runner.md) ^26.4.2
- [jest-worker](https://npm.io/package/jest-worker.md) ^26.3.0
- [json-schema](https://npm.io/package/json-schema.md) ^0.2.3
- [locate-path](https://npm.io/package/locate-path.md) ^5.0.0
- [lock-verify](https://npm.io/package/lock-verify.md) ^2.2.1
- [lodash.once](https://npm.io/package/lodash.once.md) ^4.1.1
- [lodash.uniq](https://npm.io/package/lodash.uniq.md) ^4.5.0
- [log-symbols](https://npm.io/package/log-symbols.md) ^3.0.0
- [mississippi](https://npm.io/package/mississippi.md) ^3.0.0
- [mute-stream](https://npm.io/package/mute-stream.md) ^0.0.8
- [npm-bundled](https://npm.io/package/npm-bundled.md) ^1.1.1
- [npm-profile](https://npm.io/package/npm-profile.md) ^4.0.4
- [object-copy](https://npm.io/package/object-copy.md) ^0.1.0
- [object-keys](https://npm.io/package/object-keys.md) ^1.1.1
- [object.pick](https://npm.io/package/object.pick.md) ^1.3.0
- [path-exists](https://npm.io/package/path-exists.md) ^3.0.0
- [querystring](https://npm.io/package/querystring.md) ^0.2.0
- [read-pkg-up](https://npm.io/package/read-pkg-up.md) ^2.0.0
- [regjsparser](https://npm.io/package/regjsparser.md) ^0.6.4
- [resolve-cwd](https://npm.io/package/resolve-cwd.md) ^3.0.0
- [resolve-url](https://npm.io/package/resolve-url.md) ^0.2.1
- [safe-buffer](https://npm.io/package/safe-buffer.md) ^5.2.1
- [semver-diff](https://npm.io/package/semver-diff.md) ^3.1.1
- [signal-exit](https://npm.io/package/signal-exit.md) ^3.0.3
- [stack-utils](https://npm.io/package/stack-utils.md) ^2.0.2
- [stream-each](https://npm.io/package/stream-each.md) ^1.2.3
- [symbol-tree](https://npm.io/package/symbol-tree.md) ^3.2.4
- [type-detect](https://npm.io/package/type-detect.md) ^4.0.8
- [union-value](https://npm.io/package/union-value.md) ^1.0.1
- [unique-slug](https://npm.io/package/unique-slug.md) ^2.0.2
- [unset-value](https://npm.io/package/unset-value.md) ^1.0.0
- [util-extend](https://npm.io/package/util-extend.md) ^1.0.3
- [w3c-hr-time](https://npm.io/package/w3c-hr-time.md) ^1.0.2
- [widest-line](https://npm.io/package/widest-line.md) ^3.1.0
- [worker-farm](https://npm.io/package/worker-farm.md) ^1.7.0
- [xdg-basedir](https://npm.io/package/xdg-basedir.md) ^3.0.0
- [ansi-escapes](https://npm.io/package/ansi-escapes.md) ^4.2.1
- [array-differ](https://npm.io/package/array-differ.md) ^3.0.0
- [array-unique](https://npm.io/package/array-unique.md) ^0.3.2
- [astral-regex](https://npm.io/package/astral-regex.md) ^1.0.0
- [bcrypt-pbkdf](https://npm.io/package/bcrypt-pbkdf.md) ^1.0.2
- [browserslist](https://npm.io/package/browserslist.md) ^4.11.1
- [buffer-crc32](https://npm.io/package/buffer-crc32.md) ^0.2.13
- [caniuse-lite](https://npm.io/package/caniuse-lite.md) ^1.0.30001040
- [capture-exit](https://npm.io/package/capture-exit.md) ^2.0.0
- [cli-truncate](https://npm.io/package/cli-truncate.md) ^0.2.1
- [compare-func](https://npm.io/package/compare-func.md) ^2.0.0
- [config-chain](https://npm.io/package/config-chain.md) ^1.1.12
- [core-js-pure](https://npm.io/package/core-js-pure.md) ^3.6.5
- [core-util-is](https://npm.io/package/core-util-is.md) ^1.0.2
- [domexception](https://npm.io/package/domexception.md) ^2.0.1
- [eslint-utils](https://npm.io/package/eslint-utils.md) ^1.4.3
- [html-escaper](https://npm.io/package/html-escaper.md) ^2.0.2
- [import-fresh](https://npm.io/package/import-fresh.md) ^3.0.0
- [import-local](https://npm.io/package/import-local.md) ^3.0.2
- [is-directory](https://npm.io/package/is-directory.md) ^0.3.1
- [is-plain-obj](https://npm.io/package/is-plain-obj.md) ^1.1.0
- [is-text-path](https://npm.io/package/is-text-path.md) ^1.0.1
- [issue-parser](https://npm.io/package/issue-parser.md) ^6.0.0
- [jest-resolve](https://npm.io/package/jest-resolve.md) ^26.4.0
- [jest-runtime](https://npm.io/package/jest-runtime.md) ^26.4.2
- [jest-watcher](https://npm.io/package/jest-watcher.md) ^26.3.0
- [libnpmaccess](https://npm.io/package/libnpmaccess.md) ^3.0.2
- [libnpmconfig](https://npm.io/package/libnpmconfig.md) ^1.2.1
- [libnpmsearch](https://npm.io/package/libnpmsearch.md) ^2.0.2
- [lodash._root](https://npm.io/package/lodash._root.md) ^3.0.1
- [lodash.merge](https://npm.io/package/lodash.merge.md) ^4.6.2
- [lodash.union](https://npm.io/package/lodash.union.md) ^4.6.0
- [loose-envify](https://npm.io/package/loose-envify.md) ^1.3.1
- [merge-stream](https://npm.io/package/merge-stream.md) ^2.0.0
- [npm-packlist](https://npm.io/package/npm-packlist.md) ^1.4.8
- [npm-run-path](https://npm.io/package/npm-run-path.md) ^2.0.2
- [object-visit](https://npm.io/package/object-visit.md) ^1.0.1
- [p-is-promise](https://npm.io/package/p-is-promise.md) ^3.0.0
- [package-json](https://npm.io/package/package-json.md) ^4.0.1
- [prepend-http](https://npm.io/package/prepend-http.md) ^1.0.4
- [pretty-bytes](https://npm.io/package/pretty-bytes.md) ^5.3.0
- [query-string](https://npm.io/package/query-string.md) ^6.13.1
- [regexpu-core](https://npm.io/package/regexpu-core.md) ^4.7.0
- [registry-url](https://npm.io/package/registry-url.md) ^3.1.0
- [resolve-from](https://npm.io/package/resolve-from.md) ^5.0.0
- [run-parallel](https://npm.io/package/run-parallel.md) ^1.1.9
- [safer-buffer](https://npm.io/package/safer-buffer.md) ^2.1.2
- [semver-regex](https://npm.io/package/semver-regex.md) ^2.0.0
- [set-blocking](https://npm.io/package/set-blocking.md) ^2.0.0
- [side-channel](https://npm.io/package/side-channel.md) ^1.0.3
- [smart-buffer](https://npm.io/package/smart-buffer.md) ^4.1.0
- [spdx-correct](https://npm.io/package/spdx-correct.md) ^3.1.1
- [split-string](https://npm.io/package/split-string.md) ^3.1.0
- [stream-shift](https://npm.io/package/stream-shift.md) ^1.0.1
- [string-width](https://npm.io/package/string-width.md) ^2.1.1
- [strip-indent](https://npm.io/package/strip-indent.md) ^2.0.0
- [test-exclude](https://npm.io/package/test-exclude.md) ^6.0.0
- [tough-cookie](https://npm.io/package/tough-cookie.md) ^2.5.0
- [tunnel-agent](https://npm.io/package/tunnel-agent.md) ^0.6.0
- [universalify](https://npm.io/package/universalify.md) ^1.0.0
- [which-module](https://npm.io/package/which-module.md) ^2.0.0
- [yargs-parser](https://npm.io/package/yargs-parser.md) ^10.1.0
- [acorn-globals](https://npm.io/package/acorn-globals.md) ^6.0.0
- [at-least-node](https://npm.io/package/at-least-node.md) ^1.0.0
- [babel-runtime](https://npm.io/package/babel-runtime.md) ^6.26.0
- [code-point-at](https://npm.io/package/code-point-at.md) ^1.1.0
- [color-convert](https://npm.io/package/color-convert.md) ^1.9.3
- [concat-stream](https://npm.io/package/concat-stream.md) ^1.6.2
- [contains-path](https://npm.io/package/contains-path.md) ^0.1.0
- [detect-indent](https://npm.io/package/detect-indent.md) ^5.0.0
- [end-of-stream](https://npm.io/package/end-of-stream.md) ^1.4.4
- [es6-promisify](https://npm.io/package/es6-promisify.md) ^5.0.0
- [estree-walker](https://npm.io/package/estree-walker.md) ^1.0.1
- [eventemitter2](https://npm.io/package/eventemitter2.md) ^4.1.2
- [figgy-pudding](https://npm.io/package/figgy-pudding.md) ^3.5.2
- [find-versions](https://npm.io/package/find-versions.md) ^3.0.0
- [forever-agent](https://npm.io/package/forever-agent.md) ^0.6.1
- [function-bind](https://npm.io/package/function-bind.md) ^1.1.1
- [har-validator](https://npm.io/package/har-validator.md) ^5.1.5
- [human-signals](https://npm.io/package/human-signals.md) ^1.1.1
- [indent-string](https://npm.io/package/indent-string.md) ^3.2.0
- [internal-slot](https://npm.io/package/internal-slot.md) ^1.0.2
- [is-descriptor](https://npm.io/package/is-descriptor.md) ^1.0.2
- [is-extendable](https://npm.io/package/is-extendable.md) ^0.1.1
- [is-observable](https://npm.io/package/is-observable.md) ^1.1.0
- [is-typedarray](https://npm.io/package/is-typedarray.md) ^1.0.0
- [jest-docblock](https://npm.io/package/jest-docblock.md) ^26.0.0
- [jest-get-type](https://npm.io/package/jest-get-type.md) ^26.3.0
- [jest-jasmine2](https://npm.io/package/jest-jasmine2.md) ^26.4.2
- [jest-snapshot](https://npm.io/package/jest-snapshot.md) ^26.4.2
- [jest-validate](https://npm.io/package/jest-validate.md) ^26.4.2
- [jsx-ast-utils](https://npm.io/package/jsx-ast-utils.md) ^2.4.1
- [language-tags](https://npm.io/package/language-tags.md) ^1.0.5
- [lazy-property](https://npm.io/package/lazy-property.md) ^1.0.0
- [libnpmpublish](https://npm.io/package/libnpmpublish.md) ^1.1.3
- [lodash.sortby](https://npm.io/package/lodash.sortby.md) ^4.7.0
- [lodash.uniqby](https://npm.io/package/lodash.uniqby.md) ^4.7.0
- [macos-release](https://npm.io/package/macos-release.md) ^2.2.0
- [modify-values](https://npm.io/package/modify-values.md) ^1.0.1
- [node-notifier](https://npm.io/package/node-notifier.md) ^8.0.0
- [node-releases](https://npm.io/package/node-releases.md) ^1.1.53
- [normalize-url](https://npm.io/package/normalize-url.md) ^5.0.0
- [npm-lifecycle](https://npm.io/package/npm-lifecycle.md) ^3.1.5
- [number-is-nan](https://npm.io/package/number-is-nan.md) ^1.0.1
- [object-assign](https://npm.io/package/object-assign.md) ^4.1.1
- [object.assign](https://npm.io/package/object.assign.md) ^4.1.0
- [object.values](https://npm.io/package/object.values.md) ^1.1.1
- [p-each-series](https://npm.io/package/p-each-series.md) ^2.1.0
- [parent-module](https://npm.io/package/parent-module.md) ^1.0.0
- [pretty-format](https://npm.io/package/pretty-format.md) ^26.4.2
- [promise-retry](https://npm.io/package/promise-retry.md) ^1.1.1
- [read-cmd-shim](https://npm.io/package/read-cmd-shim.md) ^1.0.5
- [repeat-string](https://npm.io/package/repeat-string.md) ^1.6.1
- [shebang-regex](https://npm.io/package/shebang-regex.md) ^1.0.0
- [sorted-object](https://npm.io/package/sorted-object.md) ^2.0.1
- [spawn-command](https://npm.io/package/spawn-command.md) ^0.0.2-1
- [static-extend](https://npm.io/package/static-extend.md) ^0.1.2
- [string-length](https://npm.io/package/string-length.md) ^4.0.1
- [terminal-link](https://npm.io/package/terminal-link.md) ^2.1.1
- [trim-newlines](https://npm.io/package/trim-newlines.md) ^4.0.1
- [unique-string](https://npm.io/package/unique-string.md) ^2.0.0
- [url-parse-lax](https://npm.io/package/url-parse-lax.md) ^1.0.0
- [which-pm-runs](https://npm.io/package/which-pm-runs.md) ^1.0.0
- [agentkeepalive](https://npm.io/package/agentkeepalive.md) ^3.5.2
- [any-observable](https://npm.io/package/any-observable.md) ^0.3.0
- [argv-formatter](https://npm.io/package/argv-formatter.md) ^1.0.0
- [array-includes](https://npm.io/package/array-includes.md) ^3.1.1
- [assign-symbols](https://npm.io/package/assign-symbols.md) ^1.0.0
- [ast-types-flow](https://npm.io/package/ast-types-flow.md) ^0.0.7
- [axobject-query](https://npm.io/package/axobject-query.md) ^2.2.0
- [babel-polyfill](https://npm.io/package/babel-polyfill.md) ^6.26.0
- [balanced-match](https://npm.io/package/balanced-match.md) ^1.0.0
- [camelcase-keys](https://npm.io/package/camelcase-keys.md) ^4.2.0
- [core-js-compat](https://npm.io/package/core-js-compat.md) ^3.6.5
- [delayed-stream](https://npm.io/package/delayed-stream.md) ^1.0.0
- [detect-newline](https://npm.io/package/detect-newline.md) ^2.1.0
- [diff-sequences](https://npm.io/package/diff-sequences.md) ^26.3.0
- [extend-shallow](https://npm.io/package/extend-shallow.md) ^2.0.1
- [fragment-cache](https://npm.io/package/fragment-cache.md) ^0.2.1
- [git-log-parser](https://npm.io/package/git-log-parser.md) ^1.2.0
- [http-signature](https://npm.io/package/http-signature.md) ^1.2.0
- [is-date-object](https://npm.io/package/is-date-object.md) ^1.0.2
- [is-path-inside](https://npm.io/package/is-path-inside.md) ^1.0.1
- [jest-haste-map](https://npm.io/package/jest-haste-map.md) ^26.3.0
- [latest-version](https://npm.io/package/latest-version.md) ^3.1.0
- [load-json-file](https://npm.io/package/load-json-file.md) ^4.0.0
- [lodash.toarray](https://npm.io/package/lodash.toarray.md) ^4.4.0
- [lodash.without](https://npm.io/package/lodash.without.md) ^4.4.0
- [loud-rejection](https://npm.io/package/loud-rejection.md) ^1.6.0
- [lowercase-keys](https://npm.io/package/lowercase-keys.md) ^1.0.1
- [minipass-fetch](https://npm.io/package/minipass-fetch.md) ^1.3.1
- [minipass-flush](https://npm.io/package/minipass-flush.md) ^1.0.5
- [minipass-sized](https://npm.io/package/minipass-sized.md) ^1.0.3
- [node-fetch-npm](https://npm.io/package/node-fetch-npm.md) ^2.0.4
- [normalize-path](https://npm.io/package/normalize-path.md) ^3.0.0
- [object-inspect](https://npm.io/package/object-inspect.md) ^1.8.0
- [object.entries](https://npm.io/package/object.entries.md) ^1.1.2
- [path-is-inside](https://npm.io/package/path-is-inside.md) ^1.0.2
- [read-installed](https://npm.io/package/read-installed.md) ^4.0.3
- [repeat-element](https://npm.io/package/repeat-element.md) ^1.1.3
- [resolve-global](https://npm.io/package/resolve-global.md) ^1.0.0
- [restore-cursor](https://npm.io/package/restore-cursor.md) ^2.0.0
- [semver-compare](https://npm.io/package/semver-compare.md) ^1.0.0
- [source-map-url](https://npm.io/package/source-map-url.md) ^0.4.0
- [split-on-first](https://npm.io/package/split-on-first.md) ^1.1.0
- [stream-iterate](https://npm.io/package/stream-iterate.md) ^1.2.0
- [string_decoder](https://npm.io/package/string_decoder.md) ^1.1.1
- [supports-color](https://npm.io/package/supports-color.md) ^7.1.0
- [to-object-path](https://npm.io/package/to-object-path.md) ^0.3.0
- [to-regex-range](https://npm.io/package/to-regex-range.md) ^5.0.1
- [tsconfig-paths](https://npm.io/package/tsconfig-paths.md) ^3.9.0
- [unzip-response](https://npm.io/package/unzip-response.md) ^2.0.1
- [util-deprecate](https://npm.io/package/util-deprecate.md) ^1.0.2
- [util-promisify](https://npm.io/package/util-promisify.md) ^2.1.0
- [v8-to-istanbul](https://npm.io/package/v8-to-istanbul.md) ^5.0.1
- [aggregate-error](https://npm.io/package/aggregate-error.md) ^3.0.1
- [brace-expansion](https://npm.io/package/brace-expansion.md) ^1.1.11
- [caller-callsite](https://npm.io/package/caller-callsite.md) ^2.0.0
- [combined-stream](https://npm.io/package/combined-stream.md) ^1.0.8
- [copy-descriptor](https://npm.io/package/copy-descriptor.md) ^0.1.1
- [decamelize-keys](https://npm.io/package/decamelize-keys.md) ^1.1.0
- [define-property](https://npm.io/package/define-property.md) ^0.2.5
- [elegant-spinner](https://npm.io/package/elegant-spinner.md) ^1.0.1
- [es-to-primitive](https://npm.io/package/es-to-primitive.md) ^1.2.1
- [expand-brackets](https://npm.io/package/expand-brackets.md) ^2.1.4
- [external-editor](https://npm.io/package/external-editor.md) ^3.0.3
- [fast-deep-equal](https://npm.io/package/fast-deep-equal.md) ^2.0.1
- [find-npm-prefix](https://npm.io/package/find-npm-prefix.md) ^1.0.2
- [get-caller-file](https://npm.io/package/get-caller-file.md) ^2.0.5
- [git-raw-commits](https://npm.io/package/git-raw-commits.md) ^2.0.3
- [harmony-reflect](https://npm.io/package/harmony-reflect.md) ^1.6.1
- [hosted-git-info](https://npm.io/package/hosted-git-info.md) ^2.8.8
- [is-generator-fn](https://npm.io/package/is-generator-fn.md) ^2.1.0
- [is-plain-object](https://npm.io/package/is-plain-object.md) ^2.0.4
- [java-properties](https://npm.io/package/java-properties.md) ^1.0.2
- [jest-regex-util](https://npm.io/package/jest-regex-util.md) ^26.0.0
- [jest-serializer](https://npm.io/package/jest-serializer.md) ^26.3.0
- [lodash.isstring](https://npm.io/package/lodash.isstring.md) ^4.0.1
- [lodash.template](https://npm.io/package/lodash.template.md) ^4.5.0
- [lodash.unescape](https://npm.io/package/lodash.unescape.md) ^4.0.1
- [map-age-cleaner](https://npm.io/package/map-age-cleaner.md) ^0.1.3
- [marked-terminal](https://npm.io/package/marked-terminal.md) ^4.0.0
- [natural-compare](https://npm.io/package/natural-compare.md) ^1.4.0
- [npm-package-arg](https://npm.io/package/npm-package-arg.md) ^6.1.1
- [performance-now](https://npm.io/package/performance-now.md) ^2.1.0
- [qrcode-terminal](https://npm.io/package/qrcode-terminal.md) ^0.12.0
- [readable-stream](https://npm.io/package/readable-stream.md) ^2.3.7
- [shebang-command](https://npm.io/package/shebang-command.md) ^1.2.0
- [snapdragon-node](https://npm.io/package/snapdragon-node.md) ^2.1.1
- [snapdragon-util](https://npm.io/package/snapdragon-util.md) ^3.0.1
- [spdx-exceptions](https://npm.io/package/spdx-exceptions.md) ^2.3.0
- [text-extensions](https://npm.io/package/text-extensions.md) ^1.7.0
- [unique-filename](https://npm.io/package/unique-filename.md) ^1.1.1
- [update-notifier](https://npm.io/package/update-notifier.md) ^2.5.0
- [whatwg-encoding](https://npm.io/package/whatwg-encoding.md) ^1.0.5
- [whatwg-mimetype](https://npm.io/package/whatwg-mimetype.md) ^2.3.0
- [windows-release](https://npm.io/package/windows-release.md) ^3.2.0
- [are-we-there-yet](https://npm.io/package/are-we-there-yet.md) ^1.1.5
- [array-find-index](https://npm.io/package/array-find-index.md) ^1.0.2
- [check-more-types](https://npm.io/package/check-more-types.md) ^2.24.0
- [collection-visit](https://npm.io/package/collection-visit.md) ^1.0.0
- [compare-versions](https://npm.io/package/compare-versions.md) ^3.6.0
- [fast-levenshtein](https://npm.io/package/fast-levenshtein.md) ^2.0.6
- [file-entry-cache](https://npm.io/package/file-entry-cache.md) ^5.0.1
- [get-package-type](https://npm.io/package/get-package-type.md) ^0.1.0
- [http-proxy-agent](https://npm.io/package/http-proxy-agent.md) ^4.0.1
- [is-negative-zero](https://npm.io/package/is-negative-zero.md) ^2.0.0
- [is-retry-allowed](https://npm.io/package/is-retry-allowed.md) ^1.2.0
- [istanbul-reports](https://npm.io/package/istanbul-reports.md) ^3.0.2
- [lodash._baseuniq](https://npm.io/package/lodash._baseuniq.md) ^4.6.0
- [lodash.clonedeep](https://npm.io/package/lodash.clonedeep.md) ^4.5.0
- [minimist-options](https://npm.io/package/minimist-options.md) ^3.0.2
- [minipass-collect](https://npm.io/package/minipass-collect.md) ^1.0.2
- [npm-audit-report](https://npm.io/package/npm-audit-report.md) ^1.3.3
- [npm-logical-tree](https://npm.io/package/npm-logical-tree.md) ^1.2.1
- [path-is-absolute](https://npm.io/package/path-is-absolute.md) ^1.0.1
- [promise-inflight](https://npm.io/package/promise-inflight.md) ^1.0.1
- [request-progress](https://npm.io/package/request-progress.md) ^3.0.0
- [require-relative](https://npm.io/package/require-relative.md) ^0.8.7
- [spdx-license-ids](https://npm.io/package/spdx-license-ids.md) ^3.0.5
- [stealthy-require](https://npm.io/package/stealthy-require.md) ^1.1.1
- [stream-combiner2](https://npm.io/package/stream-combiner2.md) ^1.1.1
- [v8-compile-cache](https://npm.io/package/v8-compile-cache.md) ^2.1.0
- [babel-preset-jest](https://npm.io/package/babel-preset-jest.md) ^26.3.0
- [before-after-hook](https://npm.io/package/before-after-hook.md) ^2.1.0
- [component-emitter](https://npm.io/package/component-emitter.md) ^1.3.0
- [copy-concurrently](https://npm.io/package/copy-concurrently.md) ^1.0.5
- [define-properties](https://npm.io/package/define-properties.md) ^1.1.3
- [https-proxy-agent](https://npm.io/package/https-proxy-agent.md) ^5.0.0
- [init-package-json](https://npm.io/package/init-package-json.md) ^1.10.3
- [jest-message-util](https://npm.io/package/jest-message-util.md) ^26.3.0
- [jest-pnp-resolver](https://npm.io/package/jest-pnp-resolver.md) ^1.2.2
- [lines-and-columns](https://npm.io/package/lines-and-columns.md) ^1.1.6
- [lodash._createset](https://npm.io/package/lodash._createset.md) ^4.0.3
- [lodash.capitalize](https://npm.io/package/lodash.capitalize.md) ^4.2.1
- [make-fetch-happen](https://npm.io/package/make-fetch-happen.md) ^5.0.2
- [minipass-pipeline](https://npm.io/package/minipass-pipeline.md) ^1.2.4
- [move-concurrently](https://npm.io/package/move-concurrently.md) ^1.0.1
- [npm-pick-manifest](https://npm.io/package/npm-pick-manifest.md) ^3.0.2
- [npm-user-validate](https://npm.io/package/npm-user-validate.md) ^1.0.0
- [read-package-json](https://npm.io/package/read-package-json.md) ^2.1.2
- [read-package-tree](https://npm.io/package/read-package-tree.md) ^5.3.1
- [require-directory](https://npm.io/package/require-directory.md) ^2.1.1
- [socks-proxy-agent](https://npm.io/package/socks-proxy-agent.md) ^4.0.2
- [strict-uri-encode](https://npm.io/package/strict-uri-encode.md) ^2.0.0
- [stringify-package](https://npm.io/package/stringify-package.md) ^1.0.1
- [symbol-observable](https://npm.io/package/symbol-observable.md) ^1.2.0
- [trim-off-newlines](https://npm.io/package/trim-off-newlines.md) ^1.0.1
- [w3c-xmlserializer](https://npm.io/package/w3c-xmlserializer.md) ^2.0.0
- [write-file-atomic](https://npm.io/package/write-file-atomic.md) ^2.4.3
- [convert-source-map](https://npm.io/package/convert-source-map.md) ^1.7.0
- [create-error-class](https://npm.io/package/create-error-class.md) ^3.0.2
- [flush-write-stream](https://npm.io/package/flush-write-stream.md) ^1.1.1
- [is-data-descriptor](https://npm.io/package/is-data-descriptor.md) ^1.0.0
- [jest-changed-files](https://npm.io/package/jest-changed-files.md) ^26.3.0
- [jest-leak-detector](https://npm.io/package/jest-leak-detector.md) ^26.4.2
- [jest-matcher-utils](https://npm.io/package/jest-matcher-utils.md) ^26.4.2
- [npm-cache-filename](https://npm.io/package/npm-cache-filename.md) ^1.0.2
- [npm-install-checks](https://npm.io/package/npm-install-checks.md) ^3.0.2
- [npm-registry-fetch](https://npm.io/package/npm-registry-fetch.md) ^4.0.7
- [object.fromentries](https://npm.io/package/object.fromentries.md) ^2.0.2
- [parallel-transform](https://npm.io/package/parallel-transform.md) ^1.2.0
- [source-map-resolve](https://npm.io/package/source-map-resolve.md) ^0.5.3
- [source-map-support](https://npm.io/package/source-map-support.md) ^0.5.13
- [tiny-relative-date](https://npm.io/package/tiny-relative-date.md) ^1.3.0
- [to-fast-properties](https://npm.io/package/to-fast-properties.md) ^2.0.0
- [webidl-conversions](https://npm.io/package/webidl-conversions.md) ^6.1.0
- [xml-name-validator](https://npm.io/package/xml-name-validator.md) ^3.0.0
- [capture-stack-trace](https://npm.io/package/capture-stack-trace.md) ^1.0.1
- [collect-v8-coverage](https://npm.io/package/collect-v8-coverage.md) ^1.0.1
- [currently-unhandled](https://npm.io/package/currently-unhandled.md) ^0.4.1
- [damerau-levenshtein](https://npm.io/package/damerau-levenshtein.md) ^1.0.6
- [eslint-module-utils](https://npm.io/package/eslint-module-utils.md) ^2.6.0
- [eslint-visitor-keys](https://npm.io/package/eslint-visitor-keys.md) ^1.1.0
- [istanbul-lib-report](https://npm.io/package/istanbul-lib-report.md) ^3.0.0
- [json-stringify-safe](https://npm.io/package/json-stringify-safe.md) ^5.0.1
- [lodash.escaperegexp](https://npm.io/package/lodash.escaperegexp.md) ^4.1.2
- [node-modules-regexp](https://npm.io/package/node-modules-regexp.md) ^1.0.0
- [please-upgrade-node](https://npm.io/package/please-upgrade-node.md) ^3.2.0
- [regenerator-runtime](https://npm.io/package/regenerator-runtime.md) ^0.13.5
- [registry-auth-token](https://npm.io/package/registry-auth-token.md) ^4.1.1
- [sorted-union-stream](https://npm.io/package/sorted-union-stream.md) ^2.1.3
- [strip-final-newline](https://npm.io/package/strip-final-newline.md) ^2.0.0
- [strip-json-comments](https://npm.io/package/strip-json-comments.md) ^2.0.1
- [supports-hyperlinks](https://npm.io/package/supports-hyperlinks.md) ^2.1.0
- [array.prototype.flat](https://npm.io/package/array.prototype.flat.md) ^1.2.3
- [crypto-random-string](https://npm.io/package/crypto-random-string.md) ^2.0.0
- [decode-uri-component](https://npm.io/package/decode-uri-component.md) ^0.2.0
- [electron-to-chromium](https://npm.io/package/electron-to-chromium.md) ^1.3.403
- [escape-string-regexp](https://npm.io/package/escape-string-regexp.md) ^1.0.5
- [http-cache-semantics](https://npm.io/package/http-cache-semantics.md) ^3.8.1
- [json-schema-traverse](https://npm.io/package/json-schema-traverse.md) ^0.4.1
- [lodash.isplainobject](https://npm.io/package/lodash.isplainobject.md) ^4.0.6
- [minipass-json-stream](https://npm.io/package/minipass-json-stream.md) ^1.0.1
- [process-nextick-args](https://npm.io/package/process-nextick-args.md) ^2.0.1
- [request-promise-core](https://npm.io/package/request-promise-core.md) ^1.1.4
- [typedarray-to-buffer](https://npm.io/package/typedarray-to-buffer.md) ^3.1.5
- [universal-user-agent](https://npm.io/package/universal-user-agent.md) ^5.0.0
- [babel-plugin-istanbul](https://npm.io/package/babel-plugin-istanbul.md) ^6.0.0
- [dom-accessibility-api](https://npm.io/package/dom-accessibility-api.md) ^0.4.3
- [html-encoding-sniffer](https://npm.io/package/html-encoding-sniffer.md) ^2.0.1
- [is-installed-globally](https://npm.io/package/is-installed-globally.md) ^0.1.0
- [istanbul-lib-coverage](https://npm.io/package/istanbul-lib-coverage.md) ^3.0.0
- [jest-environment-node](https://npm.io/package/jest-environment-node.md) ^26.3.0
- [listr-silent-renderer](https://npm.io/package/listr-silent-renderer.md) ^1.1.1
- [listr-update-renderer](https://npm.io/package/listr-update-renderer.md) ^0.5.0
- [lodash._reinterpolate](https://npm.io/package/lodash._reinterpolate.md) ^3.0.0
- [regenerator-transform](https://npm.io/package/regenerator-transform.md) ^0.14.4
- [require-main-filename](https://npm.io/package/require-main-filename.md) ^2.0.0
- [spawn-error-forwarder](https://npm.io/package/spawn-error-forwarder.md) ^1.0.0
- [spdx-expression-parse](https://npm.io/package/spdx-expression-parse.md) ^3.0.1
- [browser-process-hrtime](https://npm.io/package/browser-process-hrtime.md) ^1.0.0
- [fs-write-stream-atomic](https://npm.io/package/fs-write-stream-atomic.md) ^1.0.10
- [is-accessor-descriptor](https://npm.io/package/is-accessor-descriptor.md) ^1.0.0
- [jest-environment-jsdom](https://npm.io/package/jest-environment-jsdom.md) ^26.3.0
- [listr-verbose-renderer](https://npm.io/package/listr-verbose-renderer.md) ^0.5.0
- [normalize-package-data](https://npm.io/package/normalize-package-data.md) ^2.5.0
- [read-package-json-fast](https://npm.io/package/read-package-json-fast.md) ^1.2.1
- [readdir-scoped-modules](https://npm.io/package/readdir-scoped-modules.md) ^1.1.0
- [regexp.prototype.flags](https://npm.io/package/regexp.prototype.flags.md) ^1.3.0
- [request-promise-native](https://npm.io/package/request-promise-native.md) ^1.0.9
- [array.prototype.flatmap](https://npm.io/package/array.prototype.flatmap.md) ^1.2.3
- [babel-plugin-jest-hoist](https://npm.io/package/babel-plugin-jest-hoist.md) ^26.2.0
- [console-control-strings](https://npm.io/package/console-control-strings.md) ^1.1.0
- [is-fullwidth-code-point](https://npm.io/package/is-fullwidth-code-point.md) ^2.0.0
- [istanbul-lib-instrument](https://npm.io/package/istanbul-lib-instrument.md) ^4.0.3
- [lodash.templatesettings](https://npm.io/package/lodash.templatesettings.md) ^4.2.0
- [posix-character-classes](https://npm.io/package/posix-character-classes.md) ^0.1.1
- [prettier-linter-helpers](https://npm.io/package/prettier-linter-helpers.md) ^1.0.0
- [istanbul-lib-source-maps](https://npm.io/package/istanbul-lib-source-maps.md) ^4.0.0
- [json-parse-better-errors](https://npm.io/package/json-parse-better-errors.md) ^1.0.2
- [language-subtag-registry](https://npm.io/package/language-subtag-registry.md) ^0.3.20
- [string.prototype.trimend](https://npm.io/package/string.prototype.trimend.md) ^1.0.1
- [confusing-browser-globals](https://npm.io/package/confusing-browser-globals.md) ^1.0.9
- [functional-red-black-tree](https://npm.io/package/functional-red-black-tree.md) ^1.0.1
- [jest-resolve-dependencies](https://npm.io/package/jest-resolve-dependencies.md) ^26.4.2
- [npm-normalize-package-bin](https://npm.io/package/npm-normalize-package-bin.md) ^1.0.1
- [remove-trailing-separator](https://npm.io/package/remove-trailing-separator.md) ^1.1.0
- [string.prototype.matchall](https://npm.io/package/string.prototype.matchall.md) ^4.0.2
- [validate-npm-package-name](https://npm.io/package/validate-npm-package-name.md) ^3.0.0
- [fast-json-stable-stringify](https://npm.io/package/fast-json-stable-stringify.md) ^2.1.0
- [opencollective-postinstall](https://npm.io/package/opencollective-postinstall.md) ^2.0.2
- [string.prototype.trimstart](https://npm.io/package/string.prototype.trimstart.md) ^1.0.1
- [conventional-commits-filter](https://npm.io/package/conventional-commits-filter.md) ^2.0.0
- [conventional-commits-parser](https://npm.io/package/conventional-commits-parser.md) ^3.2.1
- [eslint-import-resolver-node](https://npm.io/package/eslint-import-resolver-node.md) ^0.3.4
- [validate-npm-package-license](https://npm.io/package/validate-npm-package-license.md) ^3.0.4
- [conventional-changelog-writer](https://npm.io/package/conventional-changelog-writer.md) ^4.0.0
- [json-parse-even-better-errors](https://npm.io/package/json-parse-even-better-errors.md) ^2.3.1
- [loglevel-colored-level-prefix](https://npm.io/package/loglevel-colored-level-prefix.md) ^1.0.0
- [regenerate-unicode-properties](https://npm.io/package/regenerate-unicode-properties.md) ^8.2.0
- [conventional-changelog-angular](https://npm.io/package/conventional-changelog-angular.md) ^5.0.0
- [babel-plugin-dynamic-import-node](https://npm.io/package/babel-plugin-dynamic-import-node.md) ^2.3.0
- [babel-preset-current-node-syntax](https://npm.io/package/babel-preset-current-node-syntax.md) ^0.1.3
- [is-potential-custom-element-name](https://npm.io/package/is-potential-custom-element-name.md) ^1.0.0
- [object.getownpropertydescriptors](https://npm.io/package/object.getownpropertydescriptors.md) ^2.1.0
- [unicode-match-property-ecmascript](https://npm.io/package/unicode-match-property-ecmascript.md) ^1.0.4
- [unicode-property-aliases-ecmascript](https://npm.io/package/unicode-property-aliases-ecmascript.md) ^1.0.4
- [json-stable-stringify-without-jsonify](https://npm.io/package/json-stable-stringify-without-jsonify.md) ^1.0.1
- [unicode-match-property-value-ecmascript](https://npm.io/package/unicode-match-property-value-ecmascript.md) ^1.2.0
- [conventional-changelog-conventionalcommits](https://npm.io/package/conventional-changelog-conventionalcommits.md) ^4.6.0
- [unicode-canonical-property-names-ecmascript](https://npm.io/package/unicode-canonical-property-names-ecmascript.md) ^1.0.4

## Recent versions

- 6.0.9 (latest) — 2021-07-29
- 6.0.8 — 2021-07-22
- 6.0.7 — 2021-07-22
- 6.0.6 — 2021-07-22
- 6.0.5 — 2021-07-21
- 6.0.4 — 2021-07-21
- 6.0.3 — 2021-07-21
- 6.0.2 — 2021-07-21

## README

# Picky ☜

Yet another React select list.

[![Build Status](https://travis-ci.org/Aidurber/react-picky.svg?branch=master)](https://travis-ci.org/Aidurber/react-picky)
[![codecov](https://codecov.io/gh/Aidurber/react-picky/branch/master/graph/badge.svg)](https://codecov.io/gh/Aidurber/react-picky)
[![license](https://img.shields.io/github/license/aidurber/react-picky.svg)]()
[![npm version](https://badge.fury.io/js/react-picky.svg)](https://badge.fury.io/js/react-picky)
[![gzip size](https://badgen.net/bundlephobia/minzip/react-picky)]()

## Note: Not actively maintained

For alternatives, I suggest:

- [react-select](https://github.com/JedWatson/react-select)
- [downshift](https://github.com/paypal/downshif)

## Motivation

When dealing with medium+ length select lists, especially multi-select lists. The common approach is to use tags e.g.

![Tag List](https://raw.githubusercontent.com/aidurber/react-picky/master/assets/readme-tag-list.JPG)

Source: [React-Select by Jed Watson](https://github.com/JedWatson/react-select)

This approach is fine for smaller lists. When you have options for 20, 30, 100+ options that the use can select, it becomes unmanigable.

For example you have a internal staff mailing list. You want to mail all staff in a department (30 employees). You select all. That would be 30 tags taking unneccessary space.

This is a multiselect with checkboxes, a select all option, and a filter. Along a similar vein as [David Stutz's Bootstrap Multiselect](http://davidstutz.github.io/bootstrap-multiselect/). There is a port of that library to react with [Skratchdot's React Bootstrap Multiselect](https://github.com/skratchdot/react-bootstrap-multiselect). However I don't want a dependency on jQuery. If you are already using jQuery that might be an alternative for you.

If you like the tag list like [React-Select](https://github.com/JedWatson/react-select), then that would be a great option for you. It's a really great, well-tested library. Give it a look.

You can also achieve the same result with a great deal of flexibility using [Paypal's Downshift](https://github.com/paypal/downshift#usage).

### More on React Select

React Select V2 is pretty incredible, you can replace and provide custom functionality for almost every element of the select component. With a little work you could rebuild Picky from the components of React Select, take a look at [React Select: Experimental](https://react-select.com/advanced#experimental), the Popout example is close to what Picky does. You could even build a date picker in React Select...**HOW COOL IS THAT!**

## What Picky is

Picky provides a medium amount of flexibility, you can custom render: Options, List (useful for creating a virtualized menu), and SelectAll. Any further customisation and it's a little out of scope for Picky. It was built with a common pattern in mind so you can get up and running with little-to-no work. If you need Picky to be more flexible, I'm happy to take a PR if it would benefit the rest of the community.

# Peer Dependencies

```
 "react": "^16.8.0",
 "react-dom": "^16.8.0"
```

# Installation

Origin:

```
  npm install --save react-picky
  # or
  yarn add react-picky
```

New picky with clear and reset

```
  npm install --save react-picky
  # or
  yarn add react-picky
```

# Screenshots

## Single Select

![Single select](https://github.com/KateMoreva/react-picky-with-clear/blob/picky_with_clear_and_reset/assets/readme-single-select.png)

## Multi Select

![Multi select](https://github.com/KateMoreva/react-picky-with-clear/blob/picky_with_clear_and_reset/assets/readme-multi-select.jpg)

# Usage

## Basic example

```javascript
import { Picky } from 'react-picky-with-clear';
import 'react-picky/dist/picky.css'; // Include CSS

<Picky
  id="picky"
  options={[1, 2, 3, 4, 5]}
  value={[]}
  multiple={true}
  includeSelectAll={true}
  includeFilter={true}
  onChange={values => console.log(values)}
  dropdownHeight={600}
/>;
```

# Examples

- [Custom Render: Select All](./examples/custom-selectall)
- [Custom Render: List](./examples/custom-list)
- [Custom Render: Option](./examples/custom-option)

## Props

```javascript
Picky.defaultProps = {
  numberDisplayed: 3,
  options: [],
  filterDebounce: 150,
  dropdownHeight: 300,
  onChange: () => {},
  tabIndex: 0,
  keepOpen: true,
  selectAllText: 'Select all',
  selectAllMode: 'default',
};
Picky.propTypes = {
  id: PropTypes.string.isRequired,
  placeholder: PropTypes.string,
  value: PropTypes.oneOfType([
    PropTypes.array,
    PropTypes.string,
    PropTypes.number,
    PropTypes.object,
  ]),
  numberDisplayed: PropTypes.number,
  multiple: PropTypes.bool,
  options: PropTypes.array.isRequired,
  onChange: PropTypes.func.isRequired,
  open: PropTypes.bool,
  includeSelectAll: PropTypes.bool,
  includeFilter: PropTypes.bool,
  filterDebounce: PropTypes.number,
  dropdownHeight: PropTypes.number,
  onFiltered: PropTypes.func,
  onOpen: PropTypes.func,
  onClose: PropTypes.func,
  valueKey: PropTypes.string,
  labelKey: PropTypes.string,
  render: PropTypes.func,
  tabIndex: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
  keepOpen: PropTypes.bool,
  manySelectedPlaceholder: PropTypes.string,
  allSelectedPlaceholder: PropTypes.string,
  selectAllText: PropTypes.string,
  renderSelectAll: PropTypes.func,
  defaultFocusFilter: PropTypes.bool,
  className: PropTypes.string,
  renderList: PropTypes.func,
  filterPlaceholder: PropTypes.string,
  disabled: PropTypes.bool,
  getFilterValue: PropTypes.func,
  caseSensitiveFilter: PropTypes.bool,
  buttonProps: PropTypes.object,
  selectAllMode: PropTypes.oneOf(['default', 'filtered']),
  clearFilterOnClose: PropTypes.bool,
  singleSelectPlaceholder: PropTypes.func,
};
```

### Prop descriptions

- `id` - HTML id assigned to input. Also used as a base for other elements inside Picky.
- `placeholder` - Default message when no items are selected.
- `value` - The selected value(s), array if multiple is true. **Not needed if using as an uncontolled component**
- `numberDisplayed` - Then number of selected options displayed until it turns into '(selected count) selected'.
- `multiple` - Set to true for a multiselect, defaults to false.
- `options` - Array of possible options.
- `onChange` - Called whenever selected value(s) have changed. Pass the selected value back into `value`.
- `open` - Can open or close the dropdown manually. Defaults to false.
- `includeSelectAll` - If set to `true` will add a `Select All` checkbox at the top of the list.
- `includeFilter` - If set to `true` will add an input at the top of the dropdown for filtering the results.
- `filterDebounce` - Debounce timeout, used to limit the rate the internal `onFilterChange` gets called. Defaults to 150ms.
- `dropdownHeight` - The height of the dropdown. Defaults to 300px.
- `onFiltered` - Called after a filter has been done with the filtered options.
- `onOpen` - Called after the dropdown has opened.
- `onClose` - Called after the dropdown has closed.
- `valueKey` - If supplying an array of objects as options, this is required. It's used to identify which property on the object is the value.
- `labelKey` - If supplying an array of objects as options, this is required. It's used to identify which property on the object is the label.
- `render` - Used for custom rendering of items in the dropdown. More info below.
- `tabIndex` - Pass tabIndex to component for accessibility. Defaults to 0
- `keepOpen` - Default true. Single selects close automatically when selecting a value unless this is set to true.
- `manySelectedPlaceholder` - Default "%s selected" where %s is the number of items selected. This gets used when the number if items selected is more than the `numberDisplayed` prop and when all options are not selected.
- `allSelectedPlaceholder` - Default "%s selected" where %s is the number of items selected. This gets used when all options are selected.
- `selectAllText` - Default "Select all", use this to override "Select all" text from top of dropdown when included with `includeSelectAll`.
- `renderSelectAll` - Used for rendering a custom select all
- `defaultFocusFilter` - If set to true, will focus the filter by default when opened.
- `renderList` - Render prop for whole list, you can use this to add virtualization/windowing if necessary
- `filterPlaceholder` - Override the filter placeholder. Defaults to 'Filter...'
- `getFilterValue` - Will provide the input value of filter to the picky dropdown, so that if we have a larger list of options then we can only supply the matching options based on this value.
- `caseSensitiveFilter` - If true options will be returned when they match case
- `buttonProps` - Additional props to apply the the button component, useful for supplying class names.
- `selectAllMode` - default: `default`. When the mode is `filtered` the Select All won't be hidden when filtering.
- `clearFilterOnClose` - When set to true filtered options and filtered state will be cleared on close. Defaults to false.
- `filterTermProcessor` - A function that takes a string and returns a string. Useful for trimming and processing a filter term before it filters the options. Default: (term) => term
- `singleSelectPlaceholder` - A function that takes the currently selected value and returns a string. `(val: OptionType) => string`

## Custom rendering

### Items

You can render out custom items for the dropdown.

**Example**

```javascript
<Picky
  id="picky"
  value={this.state.arrayValue}
  options={bigList}
  onChange={this.selectMultipleOption}
  open={false}
  valueKey="id"
  labelKey="name"
  multiple={true}
  includeSelectAll={true}
  includeFilter={true}
  getFilterValue={this.getFilterValue}
  dropdownHeight={600}
  render={({
    style,
    isSelected,
    item,
    selectValue,
    labelKey,
    valueKey,
    multiple,
  }) => {
    return (
      <li
        style={style} // required
        className={isSelected ? 'selected' : ''} // required to indicate is selected
        key={item[valueKey]} // required
        onClick={() => selectValue(item)}
      >
        {/* required to select item */}
        <input type="checkbox" checked={isSelected} readOnly />
        <span style={{ fontSize: '30px' }}>{item[labelKey]}</span>
      </li>
    );
  }}
/>
```

The render callback gets called with the following properties:
style, isSelected, item, labelKey, valueKey, selectValue, multiple

- `isSelected` - boolean - true if item is selected. Use this for styling accordingly.
- `item` - object | number | string - The item to render.
- `labelKey` - Used to get the label if item is an object
- `valueKey` - Used to get the value if item is an object, good for keys.
- `selectValue` - function(item) - Selects the item on click
- `multiple` - boolean - Indicates if is a multiselect.

**Note**

- If your rendered item affects the height of the item in anyway. Supply `itemHeight` to Picky.
- If you wish to show a radio button or a checkbox, be sure to add `readOnly` prop to the input.

### Select All

```javascript
<Picky
  // ...
  renderSelectAll={({
    filtered,
    tabIndex,
    allSelected,
    toggleSelectAll,
    multiple,
  }) => {
    // Don't show if single select or items have been filtered.
    if (multiple && !filtered) {
      return (
        <div
          tabIndex={tabIndex}
          role="option"
          className={allSelected ? 'option selected' : 'option'}
          onClick={toggleSelectAll}
          onKeyPress={toggleSelectAll}
        >
          <h1>SELECT ALL</h1>
        </div>
      );
    }
  }}
/>
```

Gets called with the following properties:

- `filtered`: boolean - true if items have been filtered.
- `allSelected`: boolean true if all items are selected.
- `toggleSelectAll`: function selects or deselects all items.
- `tabIndex`: number used for specifying tab index.
- `multiple`: boolean true if multiselect.

### Render List

```javascript
<Picky
  id="picky"
  value={this.state.arrayValue}
  options={bigList}
  onChange={this.selectMultipleOption}
  open={true}
  valueKey="id"
  labelKey="name"
  multiple={true}
  includeSelectAll={true}
  includeFilter={true}
  dropdownHeight={600}
  manySelectedPlaceholder={dynamicPlaceholder}
  defaultFocusFilter={true}
  renderList={({ items, selected, multiple, selectValue, getIsSelected }) =>
    items.map(item => (
      <li key={item.id} onClick={() => selectValue(item)}>
        {getIsSelected(item) ? <strong>{item.name}</strong> : item.name}
      </li>
    ))
  }
/>
```

This is an example of a custom rendered list.

# styled-components support

Support is pretty basic by allowing a `className` prop to `<Picky>`, so as a side effect you can add a custom class to the core Picky for easier style overrides.

**Usage**

```javascript
const Select = styled(Picky)`
  background-color: #ff0000;
  .picky__dropdown,
  .option {
    font-size: 2em;
  }
`;
```

# Migrations

## v6

import { Picky } from 'react-picky-with-clear'

---
_Source: https://npm.io/package/react-picky-with-clear · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
