{"_id":"react-form-package","_rev":"28-a77a4b8f7ef7f6ba4a93f0d10c1bec9d","name":"react-form-package","dist-tags":{"latest":"1.16.0"},"versions":{"1.0.0":{"name":"react-form-package","version":"1.0.0","description":"A declarative form component with inbuilt validation and state management","main":"./lib/index.js","license":"MIT","private":false,"scripts":{"docz:dev":"docz dev","docz:build":"docz build","lint":"eslint src --fix","pretest":"yarn run lint","test":"jest --coverage --env=jsdom","prepush":"yarn run test","build":"rm -rf lib; babel src --out-dir lib","prepare":"yarn run build"},"keywords":["react","form","react-form-package"],"repository":{"type":"git","url":"git+https://github.com/aichbauer/react-form-package.git"},"bugs":{"url":"https://github.com/aichbauer/react-form-package/issues"},"homepage":"https://aichbauer.github.io/react-form-package","jest":{"globals":{"__DEV__":true},"collectCoverageFrom":["src/**/*.js"],"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/"]},"peerDependencies":{"react":"^16.4.2","react-dom":"^16.4.2"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.0.0","@babel/preset-env":"^7.0.0","@babel/preset-react":"^7.0.0","babel-core":"^7.0.0-bridge.0","babel-jest":"^23.4.2","babel-plugin-react-remove-properties":"^0.2.5","docz":"^0.11.0","docz-plugin-css":"^0.11.0","enzyme":"^3.6.0","enzyme-adapter-react-16":"^1.5.0","eslint":"^5.4.0","eslint-config-airbnb":"^17.1.0","eslint-plugin-import":"^2.14.0","eslint-plugin-jsx-a11y":"^6.1.1","eslint-plugin-react":"^7.11.1","husky":"^1.1.0","jest":"^23.5.0","react":"^16.4.2","react-dom":"^16.4.2","react-test-renderer":"^16.4.2","regenerator-runtime":"^0.12.1","styled-base-components":"^1.3.0","styled-button-component":"^2.0.0","styled-components":"^3.4.5","styled-form-component":"^2.0.0","styled-grid-system-component":"^2.0.0","styled-system":"^3.0.2"},"dependencies":{"input-is":"^2.0.0","prop-types":"^15.6.2","warning-message":"^1.1.0"},"gitHead":"9f2f0135ecd1e9224a1b82c139b057074742ea94","_id":"react-form-package@1.0.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"aichbauer","email":"l.aichbauer@gmail.com"},"dist":{"integrity":"sha512-PPLcPbMqZ9D++95Q5YG9wArdXIl356kzYrBNXAnpFfjvc+gyK6Bt/UvCVVErYmpx/m9+qs8tq42Nbh44l00Ehw==","shasum":"6104a0eb9729232cf09628353e94531d2b36939b","tarball":"https://registry.npmjs.org/react-form-package/-/react-form-package-1.0.0.tgz","fileCount":128,"unpackedSize":1655308,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbtclECRA9TVsSAnZWagAAW10P/3tiIvfSSaF7zW6en9rk\n2tOUuBkCG/qC0Wj/aa8P8OfuREa5cG+giC5NfowHm6OUZblywGC6O3DpB+cD\nWAIxbM23ioRk0yYTCsL37baJTkcYjzGKiPgCcdIdkE0lZR/5J83rU/TGV9UZ\nhK4q0jFJBZLL4hky3TuugDVt3f9JwRxKbmZVF8RI8VxUIit/ogBFGSCjtsdR\nIyiYdXb58hM6PAUlpgaC9qp4DpYvYkbhL47Bu1uGmye7Xa30W8vQdeU5B7Fz\naD8Z8HAmDEHm+2oNd1DQR67ohFj8MMFmyA/W05m2pDECxbSoCvp0tvgDqB5H\n7zMLeKjyN3W5jdP5vjIjI+LtQyYiwSiifIaRSkgkHdp1rqcgRzly5TovAAlW\nMNXAJJNgzrw/UEj0oczPS6oWudvwCj7poj7NZhHLSum7w0kkMBac1KyVpPmC\ny1UWqFqmGm7Nh4ctmvMoyfmr+EZk2R/6Pz/RARkNKOlZXmx+syAL/CKgJTW0\n8bkCFIwemwM/BEijmeBXsR0Vh3eY6Yc1PGNRGgshSxUf4MSDw7e8gnauzs2S\nIENClRizS7TbMHsqT4IPZdT+dyj7HYSSqWwQISU86lAUHYTmhJ+WgIaknMRi\naZcgP3X1Z0IB3lgp4o6w/Hh7mkYX4Z0lZZl1zHvdILHyc4eWQqmV365jwAD6\no/EC\r\n=Virw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCcMxoKBruuYNXBj09wDYpGCib5QCe45gUbNS7y/fPFfQIhAP1fWrp6O3yMds1UsQHcu4DLlhAFRwo97pE41X7qnKxU"}]},"maintainers":[{"name":"aichbauer","email":"l.aichbauer@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-form-package_1.0.0_1538640195253_0.6767036860575864"},"_hasShrinkwrap":false},"1.1.0":{"name":"react-form-package","version":"1.1.0","description":"A declarative form component with inbuilt validation and state management","main":"./lib/index.js","license":"MIT","private":false,"scripts":{"docz:dev":"docz dev","docz:build":"docz build","lint":"eslint src --fix","pretest":"yarn run lint","test":"jest --coverage --env=jsdom","prepush":"yarn run test","build":"rm -rf lib; babel src --out-dir lib","prepare":"yarn run build"},"keywords":["react","form","react-form-package"],"repository":{"type":"git","url":"git+https://github.com/aichbauer/react-form-package.git"},"bugs":{"url":"https://github.com/aichbauer/react-form-package/issues"},"homepage":"https://aichbauer.github.io/react-form-package","jest":{"globals":{"__DEV__":true},"collectCoverageFrom":["src/**/*.js"],"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/"]},"peerDependencies":{"react":"^16.4.2","react-dom":"^16.4.2"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.0.0","@babel/preset-env":"^7.0.0","@babel/preset-react":"^7.0.0","babel-core":"^7.0.0-bridge.0","babel-jest":"^23.4.2","babel-plugin-react-remove-properties":"^0.2.5","docz":"^0.11.0","docz-plugin-css":"^0.11.0","enzyme":"^3.6.0","enzyme-adapter-react-16":"^1.5.0","eslint":"^5.4.0","eslint-config-airbnb":"^17.1.0","eslint-plugin-import":"^2.14.0","eslint-plugin-jsx-a11y":"^6.1.1","eslint-plugin-react":"^7.11.1","husky":"^1.1.0","jest":"^23.5.0","react":"^16.4.2","react-dom":"^16.4.2","react-test-renderer":"^16.4.2","regenerator-runtime":"^0.12.1","styled-base-components":"^1.3.0","styled-button-component":"^2.0.0","styled-components":"^3.4.5","styled-form-component":"^2.0.0","styled-grid-system-component":"^2.0.0","styled-system":"^3.0.2"},"dependencies":{"input-is":"^2.0.0","prop-types":"^15.6.2","warning-message":"^1.1.0"},"gitHead":"61b3b270a1972fef6221b3d53307def2446a89a4","_id":"react-form-package@1.1.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"aichbauer","email":"l.aichbauer@gmail.com"},"dist":{"integrity":"sha512-r5H3ZlUEbOz+bU8F7Fi750SipgLLluld02EYGsyjmptbEKjvv0+S22BBuRH3rNQ5dzZFuJtlaS8ui6jVMBtIOw==","shasum":"d6b64006218feab8355fd5847f16872f822ae49e","tarball":"https://registry.npmjs.org/react-form-package/-/react-form-package-1.1.0.tgz","fileCount":130,"unpackedSize":1674340,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbxOB8CRA9TVsSAnZWagAAoj4P/jPRMxMV6PrHEI29Uj3Q\nVwyarxGPTbyD9cNV+Gf2sshNY4Tw1v+Att26JZWsvMVcWSiPU/zLaf7+sgBU\nOSp3SWY52mmb9bkbR5QKCxgPT62tpqc4VXJve3LL2yzPIdh8+rKRm6UkvImI\nDGPyXLSDvKS8eAegY7mQVgBCnbFi/N7zSG/JaUeqn03wxyWm/SXvRkfWfvZX\nBWMkMvwoE6lIrL1eC5Vm3SDJuWFqVg6TfZIqJPuVfuppHQ6zbJiTmjKbdqoA\nr1f/OKGvusyub1iMp+n2w+RHYCz/dVZHsVsJ9V+bPLZPqaOZTpy6srytSwnR\nluM22s+LwMPjzR4Es6Dw1bPV6Mka3s6mJBHVb+xynt9PQfpeLeFg+KVQ3dvA\n7kXDzy2qcWtrZj/xvh8VHWrWAtKOOX1OfemoHI8Mb0Lapes0nV72jU5Z4zMd\nfhnz9hn6vG3/6EM7UwzSIj2jUXS3J/1H5LgBF2tgQz8oVGHq5EyQ+1j/+MME\nej3zsxBMxwyQHCOeZoR6edJLHnp4pPCQ1QmLB7KYAinMz/HF49DgXzvQbKcv\nrkDH3O0evhJkv7X+/HDbc8Ne1TzLGLJe8vnp8j/J7RHrbKhPmgsR3tqMWxDy\ncyYiocHGHbbIlHNuTUa5xT5rALXAJu4i21CLYI3gi4kiJ5yY3/IzIw208fZb\nxMZf\r\n=BsMi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEk2L3iIHNVf6bwrk7LxuQZ5kzdgC62vyfRtq6hACwf5AiAJVdyH5GGk6WQ69fQp13NtuLF6TQRV6KzY5wFkouYLRw=="}]},"maintainers":[{"name":"aichbauer","email":"l.aichbauer@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-form-package_1.1.0_1539629179191_0.8955303952087237"},"_hasShrinkwrap":false},"1.2.0":{"name":"react-form-package","version":"1.2.0","description":"A declarative form component with inbuilt validation and state management","main":"./lib/index.js","license":"MIT","private":false,"scripts":{"docz:dev":"docz dev","docz:build":"docz build","lint":"eslint src --fix","pretest":"yarn run lint","test":"jest --coverage --env=jsdom","prepush":"yarn run test","build":"rm -rf lib; babel src --out-dir lib","prepare":"yarn run build"},"keywords":["react","form","react-form-package"],"repository":{"type":"git","url":"git+https://github.com/aichbauer/react-form-package.git"},"bugs":{"url":"https://github.com/aichbauer/react-form-package/issues"},"homepage":"https://aichbauer.github.io/react-form-package","jest":{"globals":{"__DEV__":true},"collectCoverageFrom":["src/**/*.js"],"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/"]},"peerDependencies":{"react":"^16.4.2","react-dom":"^16.4.2"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.0.0","@babel/preset-env":"^7.0.0","@babel/preset-react":"^7.0.0","babel-core":"^7.0.0-bridge.0","babel-jest":"^23.4.2","babel-plugin-react-remove-properties":"^0.2.5","docz":"^0.11.0","docz-plugin-css":"^0.11.0","enzyme":"^3.6.0","enzyme-adapter-react-16":"^1.5.0","eslint":"^5.4.0","eslint-config-airbnb":"^17.1.0","eslint-plugin-import":"^2.14.0","eslint-plugin-jsx-a11y":"^6.1.1","eslint-plugin-react":"^7.11.1","husky":"^1.1.0","jest":"^23.5.0","react":"^16.4.2","react-dom":"^16.4.2","react-test-renderer":"^16.4.2","regenerator-runtime":"^0.12.1","styled-base-components":"^1.3.0","styled-button-component":"^2.0.0","styled-components":"^3.4.5","styled-form-component":"^2.0.0","styled-grid-system-component":"^2.0.0","styled-system":"^3.0.2"},"dependencies":{"input-is":"^2.0.0","prop-types":"^15.6.2","warning-message":"^1.1.0"},"gitHead":"b3e0849f1a55d83807f304dcd424203d22de8d80","_id":"react-form-package@1.2.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"aichbauer","email":"l.aichbauer@gmail.com"},"dist":{"integrity":"sha512-ypZJB+rkXESSzrG4A4yyGVZRNTf4TdO72mdlOfE04SLp9VuGt0/FZYfcHMiPjvyYYAWjarxxu9GoaMuK72+tnw==","shasum":"03cb6cdbdf5c1c73370a0b6939499ddebc31e035","tarball":"https://registry.npmjs.org/react-form-package/-/react-form-package-1.2.0.tgz","fileCount":133,"unpackedSize":2084920,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb0MrACRA9TVsSAnZWagAApeAP/1iAMMdkI+v+2/oW9nyF\nnMsZaSlOmx35RTNBPb6wrC+eP7ZoKyPjf1+FtMQqZ0cwgx/PyDnaPopyleWn\n16bWn2hKjnj3/U/SBeVXmffHQH5QKH+igDMd9Fs1+5yNioA834FQvHqC2K9s\nYtTw9VSDdAMB4JVFVnNe9vmghuTK5i+qd0dTZlL5fUOp8QKQVnCnunjmHTQn\ncdal5YYX/miVWw6BjI9RymqoYq7FXtNmjE8iSg28yukKUmF+uYkNIZccmMDd\nRank8YM9ilwmoIslfdUm49tSqXLkz/FwaOBb4gQKuqcrIvKpiSsYeXU68FHH\nb14H8PvjlCgw/D5T5xPIC/3GpSwiNjb02ARD2pTB8lAY5jD/jP36aILq4imh\nG0E9BcV4Bo9aCyluvWfamltWjcIuPDYgmFyRIHjLyy61n3lYubS3+VC1SVal\ntCEVW0OqQm8vZ6oZuqP2hsDf/0ktf5kjd8ENkUTctiXQ6qZ92biLKiJgfNEC\nB/M/S9mbbpFhly4NsjKl0OQ67tvdUYpUt4HcZOjn5U3eJHE2mRLperuMU7OJ\nA9nY/KuxbLUArYcCN3VjFoB0+TpOBPBmkgXLYdvCd6stoLIqBAMSnC05A6+Z\ntRpH393CumXzdd8IqUoFUAe1PUKeIiUTnIF0vP1Zf1iUguBoFk5sJpOPuQnv\n3k4R\r\n=CJs8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHo30Uclo3ZKU3WkXviF6QTvstwNwUuih6LUoH2K0ZuLAiAZMXaeE0/p1E7SfBkPMfzKmHi0RLirir801tCAUy1vNw=="}]},"maintainers":[{"name":"aichbauer","email":"l.aichbauer@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-form-package_1.2.0_1540410047642_0.25189962488282713"},"_hasShrinkwrap":false},"1.3.0":{"name":"react-form-package","version":"1.3.0","description":"A declarative form component with inbuilt validation and state management","main":"./lib/index.js","license":"MIT","private":false,"scripts":{"docz:dev":"docz dev","docz:build":"docz build","lint":"eslint src --fix","pretest":"yarn run lint","test":"jest --coverage --env=jsdom","prepush":"yarn run test","build":"rm -rf lib; babel src --out-dir lib","prepare":"yarn run build"},"keywords":["react","form","react-form-package"],"repository":{"type":"git","url":"git+https://github.com/aichbauer/react-form-package.git"},"bugs":{"url":"https://github.com/aichbauer/react-form-package/issues"},"homepage":"https://aichbauer.github.io/react-form-package","jest":{"globals":{"__DEV__":true},"collectCoverageFrom":["src/**/*.js"],"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/"]},"peerDependencies":{"react":"^16.4.2","react-dom":"^16.4.2"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.0.0","@babel/preset-env":"^7.0.0","@babel/preset-react":"^7.0.0","babel-core":"^7.0.0-bridge.0","babel-jest":"^23.4.2","babel-plugin-react-remove-properties":"^0.2.5","docz":"^0.11.0","docz-plugin-css":"^0.11.0","enzyme":"^3.6.0","enzyme-adapter-react-16":"^1.5.0","eslint":"^5.4.0","eslint-config-airbnb":"^17.1.0","eslint-plugin-import":"^2.14.0","eslint-plugin-jsx-a11y":"^6.1.1","eslint-plugin-react":"^7.11.1","husky":"^1.1.0","jest":"^23.5.0","react":"^16.4.2","react-dom":"^16.4.2","react-test-renderer":"^16.4.2","regenerator-runtime":"^0.12.1","styled-base-components":"^1.3.0","styled-button-component":"^2.0.0","styled-components":"^3.4.5","styled-form-component":"^2.0.0","styled-grid-system-component":"^2.0.0","styled-system":"^3.0.2"},"dependencies":{"input-is":"^2.0.0","prop-types":"^15.6.2","warning-message":"^1.1.0"},"gitHead":"23acf1eca0338b9db7f23893a424ac645fc3b64f","_id":"react-form-package@1.3.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"aichbauer","email":"l.aichbauer@gmail.com"},"dist":{"integrity":"sha512-KDgzUrPeHu2FpOOMe+FvuugAbOztntls1ey4S9M7HA4b5034kT2T9Z5RKqJP/tMnuZc5R5bQo4aEW00RlU7x3g==","shasum":"a62e2694b14c30d29cceb6d92e4d7fbb3a90e84d","tarball":"https://registry.npmjs.org/react-form-package/-/react-form-package-1.3.0.tgz","fileCount":134,"unpackedSize":2092169,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb100UCRA9TVsSAnZWagAAShgQAITq5EtDCAJFsigUbw+/\nGmyesotcfzxz+HCpK1TcXIQZzYcyyn3FlhWrMW3ndmmgH8PP+9J2n9RC7Z2H\nj7Z+CHbKXqANUFH99By2A0B7YV9q/A4CNTePNkjLBsFpHQYXwr6aKAaJiNh2\nkbp4jCBAxx8XUpZMGfW+vlC941ooQZoRd0u4+ZtUuzL3yNN/37ullHo1fWB5\nUnaTwjlCzzQbg9SJE9/FrT2Q8P/4faLUmCbMotUWXAtAy4EE6EHm0Q8uZ0ad\nNLh8PJ3NY1UHvHGVb9z9Dc+RalQzBEhBNVFR+Ouhpmqrx/qGp9mwyY+Ufye4\nhF4Sl8LXn7IccJtVOaKS4gw8XK7uDCIMi/lIfFC6nyRZDUt6g1bF0ftI16s5\nHCdE9K720oPMt8cCbD6nytwLLWLiMthXHNxYJ41xYp3ACmUWqb3fQPHVh076\n/sHRclxKQZbPgXBupP0erQIeb5yi6Dp6DCzcISbzdQM3FOqaI2eDzamDz7M6\nRM5a3FETqXAV8+TIXDDnYUTjwpL5OPOCpnyFjUyfaIfdP2guaGAf8t++dm/C\n0CnvFgb2GVj8KUZJHzWtEf0PAd5REUOJpPJ+goZZz/4OpTfAQKjxq5jWsaLn\nqcje+FABKTuO2nMFNKJbkWtVhcYea4I0G9s+4ixkFvioC/JwwV/wlPBt8i4h\npJqy\r\n=mD1d\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIClfzcpeCX5xwpx4JtbcYK0dEipI3I/ZZm7rQzuIEc0TAiEApzcGkicDqfzi+JGFN/gUih7oHoIbU76tJsYPPhu+nvY="}]},"maintainers":[{"name":"aichbauer","email":"l.aichbauer@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-form-package_1.3.0_1540836627715_0.1976111158536913"},"_hasShrinkwrap":false},"1.4.0":{"name":"react-form-package","version":"1.4.0","description":"A declarative form component with inbuilt validation and state management","main":"./lib/index.js","license":"MIT","private":false,"scripts":{"docz:dev":"docz dev","docz:build":"docz build","lint":"eslint src --fix","pretest":"yarn run lint","test":"jest --coverage --env=jsdom","prepush":"yarn run test","build":"rm -rf lib; babel src --out-dir lib","prepare":"yarn run build"},"keywords":["react","form","react-form-package"],"repository":{"type":"git","url":"git+https://github.com/aichbauer/react-form-package.git"},"bugs":{"url":"https://github.com/aichbauer/react-form-package/issues"},"homepage":"https://aichbauer.github.io/react-form-package","jest":{"globals":{"__DEV__":true},"collectCoverageFrom":["src/**/*.js"],"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/"]},"peerDependencies":{"react":"^16.4.2","react-dom":"^16.4.2"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.0.0","@babel/preset-env":"^7.0.0","@babel/preset-react":"^7.0.0","babel-core":"^7.0.0-bridge.0","babel-jest":"^23.4.2","babel-plugin-react-remove-properties":"^0.2.5","docz":"^0.11.0","docz-plugin-css":"^0.11.0","enzyme":"^3.6.0","enzyme-adapter-react-16":"^1.5.0","eslint":"^5.4.0","eslint-config-airbnb":"^17.1.0","eslint-plugin-import":"^2.14.0","eslint-plugin-jsx-a11y":"^6.1.1","eslint-plugin-react":"^7.11.1","husky":"^1.1.0","jest":"^23.5.0","react":"^16.4.2","react-dom":"^16.4.2","react-test-renderer":"^16.4.2","regenerator-runtime":"^0.12.1","styled-base-components":"^1.3.0","styled-button-component":"^2.0.0","styled-components":"^3.4.5","styled-form-component":"^2.0.0","styled-grid-system-component":"^2.0.0","styled-system":"^3.0.2"},"dependencies":{"input-is":"^2.0.0","prop-types":"^15.6.2","warning-message":"^1.1.0"},"gitHead":"e156de148f906482e5d9925373c93ca8063e0220","_id":"react-form-package@1.4.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"aichbauer","email":"l.aichbauer@gmail.com"},"dist":{"integrity":"sha512-a0bXFApDVkOgL/8wojJwHRqEE6rL25YcfwGxkjT+5hEzFUvnSuDQmiOG5LhD9UIXCEXlN5e8wKCHpmW3yl7NAg==","shasum":"413e8ba1ece8a7123275b4f4771009b1f3bea3f6","tarball":"https://registry.npmjs.org/react-form-package/-/react-form-package-1.4.0.tgz","fileCount":18,"unpackedSize":70728,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb4paaCRA9TVsSAnZWagAAQs4QAJH8YyUz2LijqNmLKbpm\ncB99/xOHDgeBgfihEiuFjbYj3iK29KUM978K1PQQIYwvzbyyscrtlC5IiIzG\nEm9e+JIgYDSmb84XFK8g0DjHZPms4bPbb1uCIe75FLHJc+Sox/AHpZJE7DFC\nYSjwUWuK2JWQ1mtU/W9TIBTpxzzeRBP3dHXh1PSTPwLH/9mFFwn6UOnFmeQz\nmdRSXH8wUcXPa0Fn+CJ2a47KZ/0qAx7t5AA+MGrJRUDgDWCs/BOFQK+fmhmP\nMmF8Q+kevZCsjr62gI87nyesPL/UsXm3Ht3ulvee7GoIpzglxipkWWyHdq3K\nSdfLOcBlI8yZxVq769DHIw+jxvKcvVKbLE69VIVIHx+iwTnOOGNDqPslW3Yy\nQV87cIFXfAx0o11M3T/qXj2sBbmvDcRNisFT/3o4beJtUkSZAi+4KveywwJi\njZidN041yVukvmEQ+s9G/zeablcsqNDKv9geF4eaT5OAsPOVSnc71+88R1dB\nYFJ9U5Da+eKpevxDtYNkPz+Ta9m3Uvt45pSwYLWpw46MCgroLY0rvQeafqs4\nz9GfbQn0s1XkDW6rYXKSDBpHfMoGV4oUq4kgeoR8YGi4wYC/dOIobxFk7aax\nLpbGnKwrBBanJwZOnk0WxOSXPx5x5W60CZZE3lFaGUFi0+hwpH8MMGR5oKUU\nM72l\r\n=YjND\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA/NFz+1rH8j++3oR6jHxxv0PIg0Ac/xXH93H34bR0YVAiAKhx0kBJx9i/HpnHDsQY+yuOzKoS0zJ5eg98YdkGqeGQ=="}]},"maintainers":[{"name":"aichbauer","email":"l.aichbauer@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-form-package_1.4.0_1541576344853_0.4410204791979384"},"_hasShrinkwrap":false},"1.4.1":{"name":"react-form-package","version":"1.4.1","description":"A declarative form component with inbuilt validation and state management","main":"./lib/index.js","license":"MIT","private":false,"scripts":{"docz:dev":"docz dev","docz:build":"docz build","lint":"eslint src --fix","pretest":"yarn run lint","test":"jest --coverage --env=jsdom","prepush":"yarn run test","build":"rm -rf lib; babel src --out-dir lib","prepare":"yarn run build"},"keywords":["react","form","react-form-package"],"repository":{"type":"git","url":"git+https://github.com/aichbauer/react-form-package.git"},"bugs":{"url":"https://github.com/aichbauer/react-form-package/issues"},"homepage":"https://aichbauer.github.io/react-form-package","jest":{"globals":{"__DEV__":true},"collectCoverageFrom":["src/**/*.js"],"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/"]},"peerDependencies":{"react":"^16.4.2","react-dom":"^16.4.2"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.0.0","@babel/preset-env":"^7.0.0","@babel/preset-react":"^7.0.0","babel-core":"^7.0.0-bridge.0","babel-jest":"^23.4.2","babel-plugin-react-remove-properties":"^0.2.5","docz":"^0.11.0","docz-plugin-css":"^0.11.0","enzyme":"^3.6.0","enzyme-adapter-react-16":"^1.5.0","eslint":"^5.4.0","eslint-config-airbnb":"^17.1.0","eslint-plugin-import":"^2.14.0","eslint-plugin-jsx-a11y":"^6.1.1","eslint-plugin-react":"^7.11.1","husky":"^1.1.0","jest":"^23.5.0","react":"^16.4.2","react-dom":"^16.4.2","react-test-renderer":"^16.4.2","regenerator-runtime":"^0.12.1","styled-base-components":"^1.3.0","styled-button-component":"^2.0.0","styled-components":"^3.4.5","styled-form-component":"^2.0.0","styled-grid-system-component":"^2.0.0","styled-system":"^3.0.2"},"dependencies":{"input-is":"^2.0.0","prop-types":"^15.6.2","warning-message":"^1.1.0"},"gitHead":"be21f4cd4e1bdb1ff4248318d931018d4b40ccba","_id":"react-form-package@1.4.1","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"aichbauer","email":"l.aichbauer@gmail.com"},"dist":{"integrity":"sha512-7Eprqo15rWJe2ehbuGPLk3D0lceFcB9Cd9AnYNAdYYsYoxB/DAffBwtTDRN2c7rnciVoPR7GQ2a6OzIybfPk+Q==","shasum":"4fc0c5eac1a6dc871e67e9dc1a0673f3323f53d4","tarball":"https://registry.npmjs.org/react-form-package/-/react-form-package-1.4.1.tgz","fileCount":21,"unpackedSize":72427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb4t5vCRA9TVsSAnZWagAAWzIP/i/lsNhtdbVtaAergG+J\nl0Upeub2yP9tgotuqRHb499FSelBeI3kXuha/s7LgkgqpASdVC/lExH5Docd\nWdS46CLVresgwXQsg6fQtbpdpHqlcagscM6rNrfTvffcuPhR5ycZXARPHvmh\nKuCS7tJ4QGd/tFP0SQjV3forWeLGsevunSHHBYtQuWa0NS+XgkKYjkXQ3Cx5\npkB1Au48ZP/I/C8w4jDDHGpCkhVstcmSzN86SR2WFRt8sp4NbgBjA3mlcpnc\nxVfMYTrJYULdvXwN2VaxNGY3csVt9MC8oWYufjmoyI8O6EISLTK1lDsk3ocm\nRCTLiHLpxErLaqdJaYK4gJso63m20mshtfWfkivqdXLvZsR5pVHx+oV6VUHg\nk6FlKQUptS0CRe7WJLw4YDjWQzKWVSqNN+Jl7V+9Mm8U7WWb6uqiwKtbaDD/\n2mERDyfd5JZGkEP/5RU3BcvSqfdSSuUkQZbf/A9OPOcAPxRdGeqV+96pwdBQ\n5ngcD26Hf5yh7UyU7QG3oOfov5XiAWtoOs4nXGcLjOLIJdw36DvhAapib3J9\nQyosr+RScfs6h2D4MitO3fjpSDqDtcxToQ+JBHPkjwKPaGzLBA8tcM1bMqhl\njbkn8Lm9xBv5aXGQW6Y+mMWYA7YblDz96iaelaXe+foJMR1oecYFIweveiWd\nlB33\r\n=HcVa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDd5DJrvn7hc13zzHy1p3NowpLxt6kNqg8QqEAZkUFBrQIgQ5+DHAVKT1YIglqWXlCpwhRJOCyC2EQjWeAK42tVyxI="}]},"maintainers":[{"name":"aichbauer","email":"l.aichbauer@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-form-package_1.4.1_1541594734204_0.6392148785747249"},"_hasShrinkwrap":false},"1.4.2":{"name":"react-form-package","version":"1.4.2","description":"A declarative form component with inbuilt validation and state management","main":"./lib/index.js","license":"MIT","private":false,"scripts":{"docz:dev":"docz dev","docz:build":"docz build","lint":"eslint src --fix","pretest":"yarn run lint","test":"jest --coverage --env=jsdom","prepush":"yarn run test","build":"rm -rf lib; babel src --out-dir lib","prepare":"yarn run build"},"keywords":["react","form","react-form-package"],"repository":{"type":"git","url":"git+https://github.com/aichbauer/react-form-package.git"},"bugs":{"url":"https://github.com/aichbauer/react-form-package/issues"},"homepage":"https://aichbauer.github.io/react-form-package","jest":{"globals":{"__DEV__":true},"collectCoverageFrom":["src/**/*.js"],"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/"]},"peerDependencies":{"react":"^16.4.2","react-dom":"^16.4.2"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.0.0","@babel/preset-env":"^7.0.0","@babel/preset-react":"^7.0.0","babel-core":"^7.0.0-bridge.0","babel-jest":"^23.4.2","babel-plugin-react-remove-properties":"^0.2.5","docz":"^0.11.0","docz-plugin-css":"^0.11.0","enzyme":"^3.6.0","enzyme-adapter-react-16":"^1.5.0","eslint":"^5.4.0","eslint-config-airbnb":"^17.1.0","eslint-plugin-import":"^2.14.0","eslint-plugin-jsx-a11y":"^6.1.1","eslint-plugin-react":"^7.11.1","husky":"^1.1.0","jest":"^23.5.0","react":"^16.4.2","react-dom":"^16.4.2","react-test-renderer":"^16.4.2","regenerator-runtime":"^0.12.1","styled-base-components":"^1.3.0","styled-button-component":"^2.0.0","styled-components":"^3.4.5","styled-form-component":"^2.0.0","styled-grid-system-component":"^2.0.0","styled-system":"^3.0.2"},"dependencies":{"input-is":"^2.0.0","prop-types":"^15.6.2","warning-message":"^1.1.0"},"gitHead":"9a7eb84bfe4e5a9289e6a302b576bb54a9eca926","_id":"react-form-package@1.4.2","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"aichbauer","email":"l.aichbauer@gmail.com"},"dist":{"integrity":"sha512-MU2ciRCkdx+GqBZILtK+JUG9Cp15ePfng4/F2pZ/8uSKtC0AjbPHW76PXMkfMXB28uMWu7/KzQ0lZWVahFLZag==","shasum":"a60224492a378ab3832f92dccd5de6d8b84cc670","tarball":"https://registry.npmjs.org/react-form-package/-/react-form-package-1.4.2.tgz","fileCount":21,"unpackedSize":72632,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb6qMCCRA9TVsSAnZWagAAQz4P/1mmpJmNQ81wN8Q5RwFv\nJOYJi++gfiL16UuRQ6CDhXpiaNCrGWy2jQYaysJQrTOQ0PfkO3zlkpJO+BBn\n3PP5eArLIIhdJYCocSkGzEG6rGgi75DIDLYjVR5IFGEod0SeVHAnxLHBXRNE\nb56s+uLsW8K8id13f2LSEbG/zSzWSs72Ey1hBfgimrASQWR6tWQd0syELaJg\nSUWonZN6dine1jJ+/6kHvSK6R8vDa+Ol83n53vmxZIdEjqd7ZbyxUzJg6KP5\n//t4apuKTIUK61wmMmRN+Rfoe5amzRUGypbmCNvFLguD8F51J7SsNgplwkcE\n+tnQtunzdD1UomQ/wNhJPKqOGg28ZuWuMXIZGZLWAYNfq/zhWNwxpG9F57NA\n2A75UmWWYXaJuNbddFXKa8pzy47UH0qsuyIWp5rvN9eNcybxN+sQY2KM7JyO\njZb9ETMb9g1hf5Zxe7eKOVyxa7dm/EAhGCYnaG3RbY1iptvi3Xp+Smj/HG2w\nUv0ys4tMkcdJzRTyC8RKjz4pPY2tW4PyA2POyeqJPEt1SJDklL+ExbrRQnoq\nTiyz1Q/TARKy07koPu3K+7ThQ2toUz94A9UrYhD+zQ1C6xqbYD7P4Xeo5wsf\nnbpKmV26dkPteMHg1i4LiuAfK+IMFQdmTsuT0qYruAivU20/4XEaRLnVxOAp\nN8MN\r\n=tut4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICz7zYx8zcHJBN6RGEf1HmIKdIaJWBxBYjB4h0ZWACwaAiEAlC7aFoKuPKdGgkcfkGJVeVOkx1BRXdKrMAw3d/YoFo8="}]},"maintainers":[{"name":"aichbauer","email":"l.aichbauer@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-form-package_1.4.2_1542103809474_0.7757780481094694"},"_hasShrinkwrap":false},"1.4.3":{"name":"react-form-package","version":"1.4.3","description":"A declarative form component with inbuilt validation and state management","main":"./lib/index.js","license":"MIT","private":false,"scripts":{"docz:dev":"docz dev","docz:build":"docz build","lint":"eslint src --fix","pretest":"yarn run lint","test":"jest --coverage --env=jsdom","prepush":"yarn run test","build":"rm -rf lib; babel src --out-dir lib","prepare":"yarn run build"},"keywords":["react","form","react-form-package"],"repository":{"type":"git","url":"git+https://github.com/aichbauer/react-form-package.git"},"bugs":{"url":"https://github.com/aichbauer/react-form-package/issues"},"homepage":"https://aichbauer.github.io/react-form-package","jest":{"globals":{"__DEV__":true},"collectCoverageFrom":["src/**/*.js"],"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/"]},"peerDependencies":{"react":"^16.4.2","react-dom":"^16.4.2"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.0.0","@babel/preset-env":"^7.0.0","@babel/preset-react":"^7.0.0","babel-core":"^7.0.0-bridge.0","babel-jest":"^23.4.2","babel-plugin-react-remove-properties":"^0.2.5","docz":"^0.11.0","docz-plugin-css":"^0.11.0","enzyme":"^3.6.0","enzyme-adapter-react-16":"^1.5.0","eslint":"^5.4.0","eslint-config-airbnb":"^17.1.0","eslint-plugin-import":"^2.14.0","eslint-plugin-jsx-a11y":"^6.1.1","eslint-plugin-react":"^7.11.1","husky":"^1.1.0","jest":"^23.5.0","react":"^16.4.2","react-dom":"^16.4.2","react-test-renderer":"^16.4.2","regenerator-runtime":"^0.12.1","styled-base-components":"^1.3.0","styled-button-component":"^2.0.0","styled-components":"^3.4.5","styled-form-component":"^2.0.0","styled-grid-system-component":"^2.0.0","styled-system":"^3.0.2"},"dependencies":{"input-is":"^2.0.0","prop-types":"^15.6.2","warning-message":"^1.1.0"},"gitHead":"c863db31070ff491a7dfa209b5aa3932cadc15c3","_id":"react-form-package@1.4.3","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"aichbauer","email":"l.aichbauer@gmail.com"},"dist":{"integrity":"sha512-h31RCKKtjmpan69K9LvVP9clxpHQAfSH+q6gDCFh+p6dBCp7/OdXi39u1zV8EFFoVHXRSThtZa2jnScTTRCz4g==","shasum":"88b4d6f5a2ea5c99e3d51d8c02ada8e45cb1048b","tarball":"https://registry.npmjs.org/react-form-package/-/react-form-package-1.4.3.tgz","fileCount":21,"unpackedSize":72773,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb6qhwCRA9TVsSAnZWagAA6FUQAJoLetpemTITqWvfKMNo\nj2TGhqD9Fx3SoIPLiEbfJsg2Q57F+i2h3tKnnKaOR3RNUY6TdcOU8Wl92Sie\n64NTDkQKZP/VqayFPWL91qQ8Q3TB9Oye8e05unfjbCesPdiolhGoVEw9T0Rz\ntHs8swJxoZxSmUS8P3v6Jh5+2EvQm6km9NPExOQ8sSPrWADKNzXMrHkUDNe1\nPB9cBYjyHKFMXr6lnuXIcIbgPq81t9gwnXWxE8+UUsM/9mX46VkosldyFryJ\nSZAaiZkAU3diPQq7ADqcViT1YVCCVnRxy+Vrye0ZlpPUbHxJzS/HIdO5OdsJ\nHEyuiuXEbQawV5OBzmYNi0oyJw6AgmIo9tz2rbiASZfBkuGn+JW+2zK2/qC/\na94mIH99H2BwFkusbzrKnwSnbiik1WNgilxu6mKHKqqzA3saVXMP8AdzQR7m\nZEN21S/UJObDgpI5Gq7xZmPX8uWRf4li7NgJZJXyrqQEqyhauuT4J0FVYEyG\nRsE+1tKk4VaYlj/Zv+nu6oyM2nPazPhINQi0xooonaMKMo4a1zwmDb8faYAU\n5SImYgooCDi5RuUIWKMRe1jZ+3tzIwX0tsy81cXyC4gPc7+JyiYA6SVYR7pQ\ntvFfS/aHGVb9Zsmm14DSb6LHTYymg+XEcK9/IbfZ3dYL+qs0YqiKyaV/Bu24\nHnAs\r\n=6Z/W\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIENxtUxPuKcXso1aV1r6uh8b1C2UYBRXNRvTyI2eCrqHAiEA88ehS3fkSk6Tq+Nry/upk+BnxkWkJ+NQo5xKPYQls1o="}]},"maintainers":[{"name":"aichbauer","email":"l.aichbauer@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-form-package_1.4.3_1542105199752_0.44216889971886"},"_hasShrinkwrap":false},"1.5.0":{"name":"react-form-package","version":"1.5.0","description":"A declarative form component with inbuilt validation and state management","main":"./lib/index.js","license":"MIT","private":false,"scripts":{"docz:dev":"docz dev","docz:build":"docz build","lint":"eslint src --fix","pretest":"yarn run lint","test":"jest --coverage --env=jsdom","prepush":"yarn run test","build":"rm -rf lib; babel src --out-dir lib","prepare":"yarn run build"},"keywords":["react","form","react-form-package"],"repository":{"type":"git","url":"git+https://github.com/aichbauer/react-form-package.git"},"bugs":{"url":"https://github.com/aichbauer/react-form-package/issues"},"homepage":"https://aichbauer.github.io/react-form-package","jest":{"globals":{"__DEV__":true},"collectCoverageFrom":["src/**/*.js"],"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/"]},"peerDependencies":{"react":"^16.4.2","react-dom":"^16.4.2"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.0.0","@babel/preset-env":"^7.0.0","@babel/preset-react":"^7.0.0","babel-core":"^7.0.0-bridge.0","babel-jest":"^23.4.2","babel-plugin-react-remove-properties":"^0.2.5","docz":"^0.11.0","docz-plugin-css":"^0.11.0","downshift":"^3.1.5","enzyme":"^3.6.0","enzyme-adapter-react-16":"^1.5.0","eslint":"^5.4.0","eslint-config-airbnb":"^17.1.0","eslint-plugin-import":"^2.14.0","eslint-plugin-jsx-a11y":"^6.1.1","eslint-plugin-react":"^7.11.1","husky":"^1.1.0","jest":"^23.5.0","react":"^16.4.2","react-dom":"^16.4.2","react-test-renderer":"^16.4.2","regenerator-runtime":"^0.12.1","styled-base-components":"^1.3.0","styled-button-component":"^2.0.0","styled-components":"^3.4.5","styled-form-component":"^2.0.0","styled-grid-system-component":"^2.0.0","styled-system":"^3.0.2"},"dependencies":{"input-is":"^2.0.0","prop-types":"^15.6.2","warning-message":"^1.1.0"},"gitHead":"80ffaac0fb23fcd2e25698c2f8ae6a601b8d626c","_id":"react-form-package@1.5.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"aichbauer","email":"l.aichbauer@gmail.com"},"dist":{"integrity":"sha512-mVe9/iNmnfkaERz78Fy5wfGio6PQfd7rDqOaTLG1LxQYO4OUaZMINqYVYQ+57+i6SHYCAyzz7UkeoIufgBr8KA==","shasum":"aa1cca2c36b39427cfbc32a55a22069fd753611f","tarball":"https://registry.npmjs.org/react-form-package/-/react-form-package-1.5.0.tgz","fileCount":22,"unpackedSize":82738,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb8sLYCRA9TVsSAnZWagAAbekP/iHNrW27HwEBRT1Spl7S\n15mcvZvfy3Z1dAoYY35AklkuvQeZE2QVunfaZh6maWY9S8McaiqzrBAvYPPX\nQ2DaNiGcoS0J8EKN4vHKC13YfrpD/kZGOceVKmBednVtgJ0458BMU9T8cM9I\nxAwZtQsKU4PiuWrDW0T/eoI80nYgY4BesoiOazDdJcJ8j9RVhOCMTftdcebc\nHHMKmWBP0prFUKb3hVDhmA/frSlgfLs88yq5euPNPZbtSWTngUvi6Si7Dg9v\nqWdVDw2s/uQtxQfXWx1ErPs4pEKGbKM9eEqKbmIRdqxE1YUBQp64ogmaJbhR\n5j9RDVTzmCmUh7lxt/sCyeVeGBtAv9tJHCRXCT28BJVPDI7ORlGjwAdVlvsN\nh0ukJ3pLWuNLHaTs3sEn97Q1OkUm6j5kuqUvQm2dH289bAZarnWAqnzKy2js\npaEeovFMZQtfz6OWn8XLpfw9wihfU978MEto/VZ8X7Rp8OVVByDE/vukby8C\n5/E7uWTGxfrU2yz6pzpQiqmxgtuLbnEGldCJ4t4SI8VygTalMPb+WefnjBBt\nDTXrRbONrgZitUb06ShPdopWPOemCkS+ODyVz6+PwOXN3RvknGatXJ0wLiZ8\nLJJW2jNKGbqV+6DyNarrnMb9KSYDkVsQelGuBzHaadLVUc3yy8Hm/Op7naEb\njiKR\r\n=jRtt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCNt1z38M3QHg9hJGZKiQQjuB7nCFplD3kHd0t/Ebcx7QIhAIzO14Q24HqIxc8/y+Q9skq0mEZlzEfQ37UAS09NokTE"}]},"maintainers":[{"name":"aichbauer","email":"l.aichbauer@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-form-package_1.5.0_1542636247378_0.13329427044662645"},"_hasShrinkwrap":false},"1.6.0":{"name":"react-form-package","version":"1.6.0","description":"A declarative form component with inbuilt validation and state management","main":"./lib/index.js","license":"MIT","private":false,"scripts":{"docz:dev":"docz dev","docz:build":"docz build","lint":"eslint src --fix","pretest":"yarn run lint","test":"jest --coverage --env=jsdom","prepush":"yarn run test","build":"rm -rf lib; babel src --out-dir lib","prepare":"yarn run build"},"keywords":["react","form","react-form-package"],"repository":{"type":"git","url":"git+https://github.com/aichbauer/react-form-package.git"},"bugs":{"url":"https://github.com/aichbauer/react-form-package/issues"},"homepage":"https://aichbauer.github.io/react-form-package","jest":{"globals":{"__DEV__":true},"collectCoverageFrom":["src/**/*.js"],"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/"]},"peerDependencies":{"react":"^16.4.2","react-dom":"^16.4.2"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.0.0","@babel/preset-env":"^7.0.0","@babel/preset-react":"^7.0.0","babel-core":"^7.0.0-bridge.0","babel-jest":"^23.4.2","babel-plugin-react-remove-properties":"^0.2.5","docz":"^0.11.0","docz-plugin-css":"^0.11.0","downshift":"^3.1.5","enzyme":"^3.6.0","enzyme-adapter-react-16":"^1.5.0","eslint":"^5.4.0","eslint-config-airbnb":"^17.1.0","eslint-plugin-import":"^2.14.0","eslint-plugin-jsx-a11y":"^6.1.1","eslint-plugin-react":"^7.11.1","husky":"^1.1.0","jest":"^23.5.0","react":"^16.4.2","react-dom":"^16.4.2","react-test-renderer":"^16.4.2","regenerator-runtime":"^0.12.1","styled-base-components":"^1.3.0","styled-button-component":"^2.0.0","styled-components":"^3.4.5","styled-form-component":"^2.0.0","styled-grid-system-component":"^2.0.0","styled-system":"^3.0.2"},"dependencies":{"input-is":"^2.0.0","prop-types":"^15.6.2","warning-message":"^1.1.0"},"gitHead":"df245d14f8f268ccd27a2d1e1383a9e8d076d943","_id":"react-form-package@1.6.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"aichbauer","email":"l.aichbauer@gmail.com"},"dist":{"integrity":"sha512-lQsB5/eq3jF6q+LsnRgyGYODlpORnY/9ZVbm5CP0QKvzAuyNBXI3uKX0Qv1SFV5IwXfkUsRcxABQO6PA1wXkWQ==","shasum":"ab5b3e2d037a23e62835575abaf1534793608333","tarball":"https://registry.npmjs.org/react-form-package/-/react-form-package-1.6.0.tgz","fileCount":22,"unpackedSize":87214,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb8yedCRA9TVsSAnZWagAAcD4P/iZmZ3xva97370s8HZHM\nPtR/qnAktGiC+lEH/Q4meOqA8vtJgj9+eLe2N4tgxPj95svjAWOjMEzbsFuA\nHMu16z9Sym4xV/jl5G9m69fqDe6FcdYScZwDWAkp3z/sEPFkQTS79CO9NY0e\nKzbQ/FSpOud24U0/7J/3EWAS3rd8BuTehZCs7ZDnom2tYxpiM6BkRayEUg14\nRdYKyNh9AgcjLe1cu3MUohO3VO2+zBz06lkkzJob39mkPXJzi9QjDrP722nf\nc7hSkJ+DYNynuYmtfgf0tkzjuO+96uFGN2CgMtw/rpDAEfZUFnRIXFcsR3TO\n4YDlqqZOv7EdZ8KOWOiRdSS8WCeJiji2+5tlaQssHQ9rWMCrUCiTbi8Qn54c\nrS6my4j9kk3Mv7qPKTXNq++G5ezkCUVlGP9IrSH5Em84EjN7JTKBlpuOV9Xv\nRCD6W32e8rdyHR1rs1rNP8feIJTWOd1d11d+ulKsHJNoAdnrXvYtpbXOqD3a\nvPsorwwtAcT7bCBu5xkD6p3peMDzYrOaWuQ7C/wCszDRHjBMZS1u/FskCLlV\nxiBHze0dE6Z/eGNpuyLdMVpJe0XC2w8OBCBgr+frt2n+I8meo3YIEZLprd/B\nUiYBPv8uWra9zBPoragegoBQ9HEM5hWsGDD80hxGWFaNrkXya00MpI7AWzw3\nEd7y\r\n=LUeu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBoridU4l1MhBwXGL4NXRBPZy0fisWjxFf0Fg2vE5Z/mAiBk2cV7f3hTORALQLKLtbVgVY4V30iG1eyIvyD1q/yHdA=="}]},"maintainers":[{"name":"aichbauer","email":"l.aichbauer@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-form-package_1.6.0_1542662044050_0.540049863894045"},"_hasShrinkwrap":false},"1.7.0":{"name":"react-form-package","version":"1.7.0","description":"A declarative form component with inbuilt validation and state management","main":"./lib/index.js","license":"MIT","private":false,"scripts":{"docz:dev":"docz dev","docz:build":"docz build","lint":"eslint src --fix","pretest":"yarn run lint","test":"jest --coverage --env=jsdom","prepush":"yarn run test","build":"rm -rf lib; babel src --out-dir lib","prepare":"yarn run build"},"keywords":["react","form","react-form-package"],"repository":{"type":"git","url":"git+https://github.com/aichbauer/react-form-package.git"},"bugs":{"url":"https://github.com/aichbauer/react-form-package/issues"},"homepage":"https://aichbauer.github.io/react-form-package","jest":{"globals":{"__DEV__":true},"collectCoverageFrom":["src/**/*.js"],"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/"]},"peerDependencies":{"react":"^16.4.2","react-dom":"^16.4.2"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.0.0","@babel/preset-env":"^7.0.0","@babel/preset-react":"^7.0.0","babel-core":"^7.0.0-bridge.0","babel-jest":"^23.4.2","babel-plugin-react-remove-properties":"^0.2.5","docz":"^0.11.0","docz-plugin-css":"^0.11.0","downshift":"^3.1.5","enzyme":"^3.6.0","enzyme-adapter-react-16":"^1.5.0","eslint":"^5.4.0","eslint-config-airbnb":"^17.1.0","eslint-plugin-import":"^2.14.0","eslint-plugin-jsx-a11y":"^6.1.1","eslint-plugin-react":"^7.11.1","husky":"^1.1.0","jest":"^23.5.0","react":"^16.4.2","react-dom":"^16.4.2","react-test-renderer":"^16.4.2","regenerator-runtime":"^0.12.1","styled-base-components":"^1.3.0","styled-button-component":"^2.0.0","styled-components":"^3.4.5","styled-form-component":"^2.0.0","styled-grid-system-component":"^2.0.0","styled-system":"^3.0.2"},"dependencies":{"input-is":"^2.0.0","prop-types":"^15.6.2","warning-message":"^1.1.0"},"gitHead":"7def78c0b43a2b9f428a72890d177b2ca22d44ef","_id":"react-form-package@1.7.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"aichbauer","email":"l.aichbauer@gmail.com"},"dist":{"integrity":"sha512-qyfgMWQlEcKEAnqYVUosxcgUcTq18v4yVXlmTaGBBR0Tny0a3fs5Rwu/kfAJW8UOuUn7XaYB4cVRm+MzWoL2eA==","shasum":"171e49384ebca7c29b164ca681437bb24a7bd7a7","tarball":"https://registry.npmjs.org/react-form-package/-/react-form-package-1.7.0.tgz","fileCount":22,"unpackedSize":92383,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb88YLCRA9TVsSAnZWagAAhMMP/iXuc+Lm/Lvgd9eXulxV\n2EANPS/RYjPhMRkDLJ3o1JIuHGU6UraQZhON779AABT7EKOQD/ggHZhZ8pni\n9RXFuBSqDisRQDbrwHD+Wf8KxUxMLJDze1gyHYpyfv7Dhxad8wsJn/AEEPPQ\ncON+9MzkHTl+VR9RUt3o0MyF1FxUKlHqyl1DtAtYwbRrWzz8dX9SgjFJRf1D\nqqLOHTg1OAMS4FOgibdk601gPNIBw765B8lU3PZvlqqALOW/niBTPoa5/oFT\nkp0ZdnPZxy04Ql5JYzyTrVm6dC9Tp88g1SEsvOQ9wEoII/DWti9XZAukHrrS\nEUyA1gJnRGPd9XBdFr7x+Kmp/5oNBQMnyv4CSj0U8/efMYOiQa/IUxgvP15K\nRgBpSKP/O/aB1/uvAkZ1nbZTNYNV6dX4yH/o6LZjgRM73/C2kuUJ8kuPpf0J\nwcpF7FzE0FkxFOehVqRCetdTRTw3BDW+Grh49jG2Jt7fB99niBAPjxwbA1Pw\nryM5qZ3k/jfeOj/Tchs2tSL5Ef5VAX1j4EU/0RHIpjzpQPCU/TTKq6vq/Kct\n0iipqZHE6PPZYOc/5wsoRaD8sE6z0NXJ2LI5SRFIvzbdygAHuLFLrx16g7ZZ\nHn4GjmGe7h5/9QyFnT9K5W14tr6Oq064zC5t2Mda2RSnzP3T3sntvDbKhNVp\ngbF+\r\n=6x/2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDXBva007SdwMOo8JkhXxUnGkJt6MKpvVJUXOuqbU4fLQIgeAar6IktMh+6gQQYx82Cj7lClFuSHR1AQnD5gpIYT98="}]},"maintainers":[{"name":"aichbauer","email":"l.aichbauer@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-form-package_1.7.0_1542702601833_0.1310291248308888"},"_hasShrinkwrap":false},"1.8.0":{"name":"react-form-package","version":"1.8.0","description":"A declarative form component with inbuilt validation and state management","main":"./lib/index.js","license":"MIT","private":false,"scripts":{"docz:dev":"docz dev","docz:build":"docz build","lint":"eslint src --fix","pretest":"yarn run lint","test":"jest --coverage --env=jsdom","prepush":"yarn run test","build":"rm -rf lib; babel src --out-dir lib","prepare":"yarn run build"},"keywords":["react","form","react-form-package"],"repository":{"type":"git","url":"git+https://github.com/aichbauer/react-form-package.git"},"bugs":{"url":"https://github.com/aichbauer/react-form-package/issues"},"homepage":"https://aichbauer.github.io/react-form-package","jest":{"globals":{"__DEV__":true},"collectCoverageFrom":["src/**/*.js"],"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/"]},"peerDependencies":{"react":"^16.4.2","react-dom":"^16.4.2"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.0.0","@babel/preset-env":"^7.0.0","@babel/preset-react":"^7.0.0","babel-core":"^7.0.0-bridge.0","babel-jest":"^23.4.2","babel-plugin-react-remove-properties":"^0.2.5","docz":"^0.11.0","docz-plugin-css":"^0.11.0","downshift":"^3.1.5","enzyme":"^3.6.0","enzyme-adapter-react-16":"^1.5.0","eslint":"^5.4.0","eslint-config-airbnb":"^17.1.0","eslint-plugin-import":"^2.14.0","eslint-plugin-jsx-a11y":"^6.1.1","eslint-plugin-react":"^7.11.1","husky":"^1.1.0","jest":"^23.5.0","react":"^16.4.2","react-dom":"^16.4.2","react-test-renderer":"^16.4.2","regenerator-runtime":"^0.12.1","styled-base-components":"^1.3.0","styled-button-component":"^2.0.0","styled-components":"^3.4.5","styled-form-component":"^2.0.0","styled-grid-system-component":"^2.0.0","styled-system":"^3.0.2"},"dependencies":{"input-is":"^2.0.0","prop-types":"^15.6.2","warning-message":"^1.1.0"},"gitHead":"1bfb48ae5b9579bad58d3dd69fa0e9080151e371","_id":"react-form-package@1.8.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"aichbauer","email":"l.aichbauer@gmail.com"},"dist":{"integrity":"sha512-E5NTzAR3jEA9Nj7WcoPWgI2CwAYh/npGACjqtxST+svLi4qTWDOpxK/+W/mj7ympqzojQvEeBdXTKxf9txqkJw==","shasum":"3d2b9705ef215c303b92fca9ebcc668457d70597","tarball":"https://registry.npmjs.org/react-form-package/-/react-form-package-1.8.0.tgz","fileCount":22,"unpackedSize":96336,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb8/LtCRA9TVsSAnZWagAAyYcP/0QOkHTDpEgZ+SpnU6P2\nuhhauv9og37RlRxzEVhHeLnL6I8yy2WU3g49mpeKqLkCarImRGGGhDA4xbE0\nu9df/+VkZ/60SOHVEA3zF1/++zvGU4Kkc4C0tl54WW/DrYP9ESFm535jQ0N4\nuQQYztOOZTlYEXHJtyfcfZIlDMjV8zzKPeMAF1l5wvLNoByqSoINDJMePP0G\nBm7wsKFWkEacu3nWhAReKqKyaHlshm7ppcSHtcDNxscVMfoKPA9OSNPrLjSO\nt8vH9Vcd9gXH5jAdZItisvrcXIUnwOLO/kIWBqgVB1hu+StcwKexzO6n/dyL\n2XPuzPyBVH7GgYNXICzCY4dXZm8wsXBpheXggQ04DfKn3G987hdSrKhYEzwc\nrofcE5ABwLTYHs0NTTFIu3N3b6qh44vHDWzMXzovElyTeucw7pP0zGvoAm/E\n0gWj8c7gPXIBp05xqBbQAfHwmB5QkSW9656kb6Oo3mjoVKD1XJvXndJ+uwhx\nObFjkulspYVNd47kcagOyaOufgIE/qBWklc/8PSiuooawPWK7Eq26A0lHNx9\nVOWoOIM114tvMUPxHfOiCcUkvJPYkGV/97Y7eJemt4NgJ0W14E+IU6NAbx4O\noYrAHTLFGaHnOZgjSKqkRkUcqGFeNZRYJXJf/MaQnp11jLDPtt0qqb2Qe7JM\nLg4A\r\n=QKao\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF3RVP1tsLtvR16UEvYWqm5xCaaFa/eKgio7YO4YXahRAiBfraUwTaoMyHLH83AzjhEOkj+dD4xfICR3Zh9ZTIpHbg=="}]},"maintainers":[{"name":"aichbauer","email":"l.aichbauer@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-form-package_1.8.0_1542714092772_0.9164049990097685"},"_hasShrinkwrap":false},"1.9.0":{"name":"react-form-package","version":"1.9.0","description":"A declarative form component with inbuilt validation and state management","main":"./lib/index.js","license":"MIT","private":false,"scripts":{"docz:dev":"docz dev","docz:build":"docz build","lint":"eslint src --fix","pretest":"yarn run lint","test":"jest --coverage --env=jsdom","prepush":"yarn run test","build":"rm -rf lib; babel src --out-dir lib","prepare":"yarn run build"},"keywords":["react","form","react-form-package"],"repository":{"type":"git","url":"git+https://github.com/aichbauer/react-form-package.git"},"bugs":{"url":"https://github.com/aichbauer/react-form-package/issues"},"homepage":"https://aichbauer.github.io/react-form-package","jest":{"globals":{"__DEV__":true},"collectCoverageFrom":["src/**/*.js"],"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/"]},"peerDependencies":{"react":"^16.4.2","react-dom":"^16.4.2"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.0.0","@babel/preset-env":"^7.0.0","@babel/preset-react":"^7.0.0","babel-core":"^7.0.0-bridge.0","babel-jest":"^23.4.2","babel-plugin-react-remove-properties":"^0.2.5","docz":"^0.11.0","docz-plugin-css":"^0.11.0","downshift":"^3.1.5","enzyme":"^3.6.0","enzyme-adapter-react-16":"^1.5.0","eslint":"^5.4.0","eslint-config-airbnb":"^17.1.0","eslint-plugin-import":"^2.14.0","eslint-plugin-jsx-a11y":"^6.1.1","eslint-plugin-react":"^7.11.1","husky":"^1.1.0","jest":"^23.5.0","react":"^16.4.2","react-dom":"^16.4.2","react-test-renderer":"^16.4.2","regenerator-runtime":"^0.12.1","styled-base-components":"^1.3.0","styled-button-component":"^2.0.0","styled-components":"^3.4.5","styled-form-component":"^2.0.0","styled-grid-system-component":"^2.0.0","styled-system":"^3.0.2"},"dependencies":{"input-is":"^2.0.0","prop-types":"^15.6.2","warning-message":"^1.1.0"},"gitHead":"8bdb6b9d1675d002b39cd2381b664b1976144e83","_id":"react-form-package@1.9.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"aichbauer","email":"l.aichbauer@gmail.com"},"dist":{"integrity":"sha512-a60ZRTJXJQWgJN7SUVXRvNodUPalkGTc2nQRxDTiXqpQ6GvkfUClBD+myHrJh2wevMxbwRTPR0tpFmn6Sqg5zQ==","shasum":"316772d0bc8996c884499746b88249f5632ac3e7","tarball":"https://registry.npmjs.org/react-form-package/-/react-form-package-1.9.0.tgz","fileCount":22,"unpackedSize":100990,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb9BoKCRA9TVsSAnZWagAAAQIP/1ei4/QZpbnwYG30Yx7K\nKQVVKLweGdDGut0M+UZE6BfrqYvjSB0i+Kz99mrfnwIeM96t2yJbMvxtoEA8\n2CfPieX+6zMcrI6AV1fWch+naYva24XqtfKPJ8DuNKlzN++cUeSkwxknG5Ay\nAanNzpv0LcW7zCi62CvrcrCf9JlwtWFwrydZtELvYtLvychpa5KvyWWSY1ue\nQmB2EMRSaD5jKyya68PAmjdbNAc++zRAi5Z+7TAQfAEmIhSD3tABw8l9nWHS\nnq0VlS6nsc03oUqHILIHszfJvGjF2B21z0TQugs6Q9b2fLYPvocjvHXA5j7k\n9+pI+2J3cdg2M4MBK7rmWPkRlkuBdWpdcKoaRmnjTBbMQnVs1bkbW1HErWO9\nxdvgm6+DDesK2/wLSJYRiXsUPJYkXlTJeZDqnnZ/X6WYFvsveG1nwOwVg9bB\ngdNIQObv7ASGM9jPGY5U5JhZ0dyte+n1w1xPSVE8yQPetp4jSs0xYppbshOM\nIXqQQ/5FyknOMfxv3dOZtZgcVhVnN3IbEhRvRnhEQYb7LfhzfcB5RcKR8KG5\nNnQA+Jog5gmNHPCDXvqr+JiXeGwqswrqK3RFADEa0xC/QyNuH+aXht58F4cp\nut7rrOQWf1EyfLjfM0Eyl8vcyUYpK3Gxzk1YH4i8r2yKM/FzIJFMalPXwLuW\neXQE\r\n=Udpm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCvB0W8j2rio97QoFr23plBoSJrc0DRLJ2yZ4OnltuOzAIhAKkrlCnBhkVuV4VpxBgtO+eHLflLrqUmJ11GI2B9/iZq"}]},"maintainers":[{"name":"aichbauer","email":"l.aichbauer@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-form-package_1.9.0_1542724105098_0.5727361375619406"},"_hasShrinkwrap":false},"1.10.0":{"name":"react-form-package","version":"1.10.0","description":"A declarative form component with inbuilt validation and state management","main":"./lib/index.js","license":"MIT","private":false,"author":{"name":"Lukas Aichbauer","email":"l.aichbauer@gmail.com","url":"https://lukasaichbauer.com/"},"scripts":{"docz:dev":"docz dev","docz:build":"docz build","lint":"eslint src --fix","pretest":"yarn run lint","test":"jest --coverage --env=jsdom","prepush":"yarn run test","build":"rm -rf lib; babel src --out-dir lib","prepare":"yarn run build"},"keywords":["react","form","react-form-package"],"repository":{"type":"git","url":"git+https://github.com/aichbauer/react-form-package.git"},"bugs":{"url":"https://github.com/aichbauer/react-form-package/issues"},"homepage":"https://aichbauer.github.io/react-form-package","jest":{"globals":{"__DEV__":true},"collectCoverageFrom":["src/**/*.js"],"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/"]},"peerDependencies":{"react":"^16.4.2","react-dom":"^16.4.2"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.0.0","@babel/preset-env":"^7.0.0","@babel/preset-react":"^7.0.0","babel-core":"^7.0.0-bridge.0","babel-jest":"^23.4.2","babel-plugin-react-remove-properties":"^0.2.5","docz":"^0.11.0","docz-plugin-css":"^0.11.0","downshift":"^3.1.5","enzyme":"^3.6.0","enzyme-adapter-react-16":"^1.5.0","eslint":"^5.4.0","eslint-config-airbnb":"^17.1.0","eslint-plugin-import":"^2.14.0","eslint-plugin-jsx-a11y":"^6.1.1","eslint-plugin-react":"^7.11.1","husky":"^1.1.0","jest":"^23.5.0","react":"^16.4.2","react-dom":"^16.4.2","react-test-renderer":"^16.4.2","regenerator-runtime":"^0.12.1","styled-base-components":"^1.3.0","styled-button-component":"^2.0.0","styled-components":"^3.4.5","styled-form-component":"^2.0.0","styled-grid-system-component":"^2.0.0","styled-system":"^3.0.2"},"dependencies":{"autocapitalize":"^1.0.0","input-is":"^2.0.0","prop-types":"^15.6.2","warning-message":"^1.1.0"},"gitHead":"917a962872e16fb70075b26591e451ae5a75dbf5","_id":"react-form-package@1.10.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"aichbauer","email":"l.aichbauer@gmail.com"},"dist":{"integrity":"sha512-frxcP87qBKCR9EIHjijAyvdxKVlKkTjhV8PpB9SC0RPkuBmi2jbCxpsbGvZ7GBH1QfYxIfaGFVB80rF8IZr8hg==","shasum":"893734488cca1a5acb5c08ea16c52a205ec01110","tarball":"https://registry.npmjs.org/react-form-package/-/react-form-package-1.10.0.tgz","fileCount":22,"unpackedSize":105006,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb9r4yCRA9TVsSAnZWagAADZcQAI8EcVLrhCj9fQJS5wZe\nyztD9fhpji0ONSn5aZ7A73M/qhfvtiPfV2EEFYEtmF1P7098JDEP3mtg6J9Z\nK9h6BzQKvgKnobBD92QMig19+ubXdUl1yHSUx5Nr4/WaH/ONx4mwK7zzeDM7\nndW5GWkSpBv2DfkoHxSM/PEbCbB3KzSKHyvsgoUD1eOObwkdWf8d6vdp+ZwL\nrGQN5nVBPS0QbmvQS6pYOaqwDv2G4v7avtg+HPCscFCT/Ljlgf2HOseIGmmV\nkyQbsp4K7HPgi+lq3De7/7w6tyg05aNT9Vje+f9AT5K526zdk4Uja86B8d5l\nN3AmjdseZrQG76FcV/3O9Hr9O9G6cmMfS38z0fnKkTx1GUOi+QGf8x6Ype+Z\ntPj+qzsRqbvZtH4V77VlJKopNLrpIelLfEZS63Njr5IAxUnLj1SCdeQmLSU6\nbSoQueqjGaevWCRALhDjwCb3EHfNitWWbvZ8vz9HEPmxlrQoPTR95p2Ik5rn\ndWLatElUPOrEST1vglWe4+Si4VC71TiUwoOqrdKEehNTLjxaawEFFEHNKtCH\n594a5Iuz9enyLdTa9BnbYQheJbz66zDbihEgCX8kilIeSTTs1U1wCuxsi5N1\nU+5ERKywb1C3SqOsZxnWPQoXW3qK6GQ4I/YvbTddYyRpTp2mivHPiClImjG7\nyFC9\r\n=U4vP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD+9u/vaUUJ63DLdflnTaesDIlbkyzHDy+gyTWrgXunvwIgEcXZATyhCHb1++ufcJw+6vcKw0JyJ19+SrDzQ6zP3F8="}]},"maintainers":[{"name":"aichbauer","email":"l.aichbauer@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-form-package_1.10.0_1542897201472_0.9057965692276497"},"_hasShrinkwrap":false},"1.10.1":{"name":"react-form-package","version":"1.10.1","description":"A declarative form component with inbuilt validation and state management","main":"./lib/index.js","license":"MIT","private":false,"author":{"name":"Lukas Aichbauer","email":"l.aichbauer@gmail.com","url":"https://lukasaichbauer.com/"},"scripts":{"docz:dev":"docz dev","docz:build":"docz build","lint":"eslint src --fix","pretest":"yarn run lint","test":"jest --coverage --env=jsdom","prepush":"yarn run test","build":"rm -rf lib; babel src --out-dir lib","prepare":"yarn run build"},"keywords":["react","form","react-form-package"],"repository":{"type":"git","url":"git+https://github.com/aichbauer/react-form-package.git"},"bugs":{"url":"https://github.com/aichbauer/react-form-package/issues"},"homepage":"https://aichbauer.github.io/react-form-package","jest":{"globals":{"__DEV__":true},"collectCoverageFrom":["src/**/*.js"],"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/"]},"peerDependencies":{"react":"^16.4.2","react-dom":"^16.4.2"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.0.0","@babel/preset-env":"^7.0.0","@babel/preset-react":"^7.0.0","autocapitalize":"^1.0.0","babel-core":"^7.0.0-bridge.0","babel-jest":"^23.4.2","babel-plugin-react-remove-properties":"^0.2.5","docz":"^0.11.0","docz-plugin-css":"^0.11.0","downshift":"^3.1.5","enzyme":"^3.6.0","enzyme-adapter-react-16":"^1.5.0","eslint":"^5.4.0","eslint-config-airbnb":"^17.1.0","eslint-plugin-import":"^2.14.0","eslint-plugin-jsx-a11y":"^6.1.1","eslint-plugin-react":"^7.11.1","husky":"^1.1.0","jest":"^23.5.0","react":"^16.4.2","react-dom":"^16.4.2","react-test-renderer":"^16.4.2","regenerator-runtime":"^0.12.1","styled-base-components":"^1.3.0","styled-button-component":"^2.0.0","styled-components":"^3.4.5","styled-form-component":"^2.0.0","styled-grid-system-component":"^2.0.0","styled-system":"^3.0.2"},"dependencies":{"input-is":"^2.0.0","prop-types":"^15.6.2","warning-message":"^1.1.0"},"gitHead":"405041532545f641fc10f89393df235a17bf1ca6","_id":"react-form-package@1.10.1","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"aichbauer","email":"l.aichbauer@gmail.com"},"dist":{"integrity":"sha512-wQN/+7+OVcO2hQCAgjvnBIt9mK12UYzSy5nExGKtvUqsnVAKqXtYEod5FdZyM1bdWbBdwvpar4umJMvtleI4IQ==","shasum":"86ea8c741f5da10be6ebf35773a98188766352b7","tarball":"https://registry.npmjs.org/react-form-package/-/react-form-package-1.10.1.tgz","fileCount":22,"unpackedSize":105104,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb96w/CRA9TVsSAnZWagAAXOsP/RnMFYKKDTEA1cBgKWmI\nXYPgBhA0fFSCkIH1lfiC0CmZquluuCWMxHE8jZoda1dXSuFYYyCcNUHVeScf\nhoGFiOhO4lBvAjaZw2s/VxynZLdSst9KDI5g8sUUYK/LqpRlDQQuf9FDKWJ+\nyyyU6AkwVqylZbk6DvD015fI50ENUvHRa0oK3y8Ovg5ooDpYgg5IEev2dAQ7\nc5ajGyQ2af5zN4O4FYT1rHVDJ14JCqQc1yWRXsO4E+Aw4xjsuv8EhGNAnsRY\nOiVakCDMLzzFbE8X8i6WhGc9c9dR7F6IndWT7jDv7tq5U/hIIb1Z28IGBZEG\nn9UxS9/IuEuNx4tB3g4KhSx7O1mqwgiwiQNJhR5ZVcv5dLhXFI21USVMVi4L\nVm3YM5w3F3y3HpP/K6pfRtNDxLepMx0BN3Kr8i0JjVuDaeTQ+ICDvhOKRaX8\n1rVbvVlYMRXUKkzQlGuhYh+wJbVuxbeCFptEf7Ohix/i4QSI6CxkJXsQCW5N\nIXiidYMssusZzXzJzx4u5XxZNm+jBsajp1O4CN93fC9YdtNl4j/ws44tfu/3\nyg3CJQwAmG133pKxPfRER9+DZLVWQf1mlFZKLhmP4nbGfztHrzI37kBxRHq/\nNzjlcqbWvcCiE63fhpF5re8iQUlDcGUq05wFg1VDwC792gnbSdHkmhzh64W7\npL3d\r\n=wxdo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDlQzZM2D1XqckLOlxyg746R4iVquDyYD4qFUnD4bzKNwIhAMXH6sDgnlozvLAg8VLAUPr4vRrwb3EwaInshc9TlUhM"}]},"maintainers":[{"name":"aichbauer","email":"l.aichbauer@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-form-package_1.10.1_1542958142296_0.5564856288260867"},"_hasShrinkwrap":false},"1.11.0":{"name":"react-form-package","version":"1.11.0","description":"A declarative form component with inbuilt validation and state management","main":"./lib/index.js","license":"MIT","private":false,"author":{"name":"Lukas Aichbauer","email":"l.aichbauer@gmail.com","url":"https://lukasaichbauer.com/"},"scripts":{"docz:dev":"docz dev","docz:build":"docz build","lint":"eslint src --fix","pretest":"yarn run lint","test":"jest --coverage --env=jsdom","prepush":"yarn run test","build":"rm -rf lib; babel src --out-dir lib","prepare":"yarn run build"},"keywords":["react","form","react-form-package"],"repository":{"type":"git","url":"git+https://github.com/aichbauer/react-form-package.git"},"bugs":{"url":"https://github.com/aichbauer/react-form-package/issues"},"homepage":"https://aichbauer.github.io/react-form-package","jest":{"globals":{"__DEV__":true},"collectCoverageFrom":["src/**/*.js"],"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/"]},"peerDependencies":{"react":"^16.4.2","react-dom":"^16.4.2"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.0.0","@babel/preset-env":"^7.0.0","@babel/preset-react":"^7.0.0","autocapitalize":"^1.0.0","babel-core":"^7.0.0-bridge.0","babel-jest":"^23.4.2","babel-plugin-react-remove-properties":"^0.2.5","docz":"^0.11.0","docz-plugin-css":"^0.11.0","downshift":"^3.1.5","enzyme":"^3.6.0","enzyme-adapter-react-16":"^1.5.0","eslint":"^5.4.0","eslint-config-airbnb":"^17.1.0","eslint-plugin-import":"^2.14.0","eslint-plugin-jsx-a11y":"^6.1.1","eslint-plugin-react":"^7.11.1","husky":"^1.1.0","jest":"^23.5.0","react":"^16.4.2","react-dom":"^16.4.2","react-test-renderer":"^16.4.2","regenerator-runtime":"^0.12.1","styled-base-components":"^1.3.0","styled-button-component":"^2.0.0","styled-components":"^3.4.5","styled-form-component":"^2.0.0","styled-grid-system-component":"^2.0.0","styled-system":"^3.0.2"},"dependencies":{"input-is":"^2.0.0","prop-types":"^15.6.2","warning-message":"^1.1.0"},"gitHead":"0f65ec3ee6c04034283b335db17e83a72ff568e0","_id":"react-form-package@1.11.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"aichbauer","email":"l.aichbauer@gmail.com"},"dist":{"integrity":"sha512-QasOjRsQRmdGm7oO8dMxewWqQ05FPAQv9wxgiqhpp6xJPZZSTHBAjxT5pXgRFWCjaXYjXWbz9fK/avm8iPn91w==","shasum":"27e899e0f6ca163a423102d34565943c550bb548","tarball":"https://registry.npmjs.org/react-form-package/-/react-form-package-1.11.0.tgz","fileCount":22,"unpackedSize":105959,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb9/1/CRA9TVsSAnZWagAApOQP/jbeTz+OPcNm3e4aBL/E\nCMWCzbslVkrlrBiE7JbLdn48TE4c3UV7ea+Rxt1yr2avZHldpxpjyyXT44Ib\nWgCA2Jwqexh414eL+tZX339WDBLbVmhnjkOHslI3NlPNPjV7VJINrAvtUsP2\nSFVA5phslzYee0gLo+yJC98Bq40OrT4WvB5i2AjrKRjeB5HX8p8oUy6/x4g3\nyZsEB1xORaBI4FL/+ttVhQZ+luAFwTrqkTr1Vv96A0abgrL8dy9JsQBZ30Nh\nX/M9uWyBZFgc5g/u9elqU4g0ZweBi2tPUrmxxwydcicLUyzWidQ/nSmxTPXZ\nNU1/r5lSSCgNDkcpjleLAPgzBsRZfOPuPqlNRlWmlGh12Z+ivdVSpRmgi3yo\naYZiMw1pxP3Ay94vfbk/xFVwQFIVc4wqPDdIEPkWWJSjm9I0uoAjs/28pjo5\nPjoa3h9pDHGUbRyxq8d8rCNToxfXVK3noi8GVuIhP3xvxNJpOVQQ6U+lUG2L\nG70jxDTu81O3peN48GxTdO8FBdJL/29nTq/edTClxLOJPdeFUY1yL/7xjId8\nuS8qfZzbMwpoKDCeVChqlNCkWBxc8uNn40ADEsRbHCDoe48eYC8VURjDwSV7\nTj3ecVo46GRnl7cpS0S2wPek9qeWXkOSLvKnuX3H9QEOvBOqeYt4Cf1TSH1a\nyHg9\r\n=RB2m\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCj+qI+0fN2peYNKjEGitInORbw3pAPwXNjL4kuntlV+gIhAJrL13O0BwwIvAJ0l2HXr5LRDphID+cR3bxoXIBCf8YW"}]},"maintainers":[{"name":"aichbauer","email":"l.aichbauer@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-form-package_1.11.0_1542978942497_0.10623695411646783"},"_hasShrinkwrap":false},"1.11.1":{"name":"react-form-package","version":"1.11.1","description":"A declarative form component with inbuilt validation and state management","main":"./lib/index.js","license":"MIT","private":false,"author":{"name":"Lukas Aichbauer","email":"l.aichbauer@gmail.com","url":"https://lukasaichbauer.com/"},"scripts":{"docz:dev":"docz dev","docz:build":"docz build","lint":"eslint src --fix","pretest":"yarn run lint","test":"jest --coverage --env=jsdom","prepush":"yarn run test","build":"rm -rf lib; babel src --out-dir lib","prepare":"yarn run build"},"keywords":["react","form","react-form-package"],"repository":{"type":"git","url":"git+https://github.com/aichbauer/react-form-package.git"},"bugs":{"url":"https://github.com/aichbauer/react-form-package/issues"},"homepage":"https://aichbauer.github.io/react-form-package","jest":{"globals":{"__DEV__":true},"collectCoverageFrom":["src/**/*.js"],"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/"]},"peerDependencies":{"react":"^16.4.2","react-dom":"^16.4.2"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.0.0","@babel/preset-env":"^7.0.0","@babel/preset-react":"^7.0.0","autocapitalize":"^1.0.0","babel-core":"^7.0.0-bridge.0","babel-jest":"^23.4.2","babel-plugin-react-remove-properties":"^0.2.5","docz":"^0.11.0","docz-plugin-css":"^0.11.0","downshift":"^3.1.5","enzyme":"^3.6.0","enzyme-adapter-react-16":"^1.5.0","eslint":"^5.4.0","eslint-config-airbnb":"^17.1.0","eslint-plugin-import":"^2.14.0","eslint-plugin-jsx-a11y":"^6.1.1","eslint-plugin-react":"^7.11.1","husky":"^1.1.0","jest":"^23.5.0","react":"^16.4.2","react-dom":"^16.4.2","react-test-renderer":"^16.4.2","regenerator-runtime":"^0.12.1","styled-base-components":"^1.3.0","styled-button-component":"^2.0.0","styled-components":"^3.4.5","styled-form-component":"^2.0.0","styled-grid-system-component":"^2.0.0","styled-system":"^3.0.2"},"dependencies":{"input-is":"^2.0.0","prop-types":"^15.6.2","warning-message":"^1.1.0"},"gitHead":"4a42080f68e1aeea6d54ef50387db8dcab2ad2bd","_id":"react-form-package@1.11.1","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"aichbauer","email":"l.aichbauer@gmail.com"},"dist":{"integrity":"sha512-i+J+WGz8yj5W5Rz135znFH71TscKkDepjU906xg2J7Lwi8pET4YEwqZco5j8Wu81oHihKSN2vGq7hyhpv4Nq4w==","shasum":"c0d93e0c451d61a9db020f439a6efcac6fc1361f","tarball":"https://registry.npmjs.org/react-form-package/-/react-form-package-1.11.1.tgz","fileCount":22,"unpackedSize":106299,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb+AtOCRA9TVsSAnZWagAAcecP/1ItZcf0DCgdmvULVsrz\nSUL5O+zL2ZmpH09lUjYLjL9RLSvEYVg6UXrmIMm6Ma2Ejn8K+eQPP2mVyWgU\nuCVmjvb0euNfPbo3qfPS7rltbwAY63PeUPsNBunc2mWNT1+SUYTDzddatG3F\nJofnC3HDfBx+92L94ql4BlH6Vi8ApZ17/wGxnyN9opWmhdgjhs5K2FSQzSWu\nQlm+oUECCKB5vL4FNWdKxCKq9QDxfmv4cxRgQaK1yMq+CfzkiKOD0b7wyuh9\nlKdIFxMqw/NiYhllu0GlOz3uAfdvopni/ypPWFtkGZupHSZZenFhON6sCuUd\nL2tGtPm7ox/UU/tEF3r3yOIXXmdrRRrO2p3aMMq+CcWoTCQKAuFJKlbj9lh4\n0YPoKovyqqHIpZy/gykppp6UE6w6IKoMF++T/dYb0sX9VJx+L+8Z3z/iOO2u\nRbOq6rA9Pif7q5oIA4f3aQD7O9irhDYSJH/RwYmnYJFznWyH8OKuJpz/xkND\nrBlApd1ayDys6bYTLSzjSNFjKqsGnuw5GG2QzUhLjYvlLOG5/9I6xZU1ZRSK\nH/q1vGEwG10jiOHcXDQSRAUJ71MVoGLw+bLVOrGqrvxnmKdmG0Q5QTp+mMbY\n4CtOYItrWyzmG0M8BuPpeg84IprNzKSq8zBPaExiE3Do9VTFG93giKWP4kiz\n9WW9\r\n=CDYi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMGQMhuAKstM/a8s/DTFIxt/p3ib83ylft2LwolUf0rgIgQemYpxXICk4Ypvj2nIr5YKYsep1HWWG4KppeFOfvVvc="}]},"maintainers":[{"name":"aichbauer","email":"l.aichbauer@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-form-package_1.11.1_1542982477647_0.25322846613875294"},"_hasShrinkwrap":false},"1.12.0":{"name":"react-form-package","version":"1.12.0","description":"A declarative form component with inbuilt validation and state management","main":"./lib/index.js","license":"MIT","private":false,"author":{"name":"Lukas Aichbauer","email":"l.aichbauer@gmail.com","url":"https://lukasaichbauer.com/"},"scripts":{"docz:dev":"docz dev","docz:build":"docz build","lint":"eslint src --fix","pretest":"yarn run lint","test":"jest --coverage --env=jsdom","prepush":"yarn run test","build":"rm -rf lib; babel src --out-dir lib","prepare":"yarn run build"},"keywords":["react","form","react-form-package"],"repository":{"type":"git","url":"git+https://github.com/aichbauer/react-form-package.git"},"bugs":{"url":"https://github.com/aichbauer/react-form-package/issues"},"homepage":"https://aichbauer.github.io/react-form-package","jest":{"globals":{"__DEV__":true},"collectCoverageFrom":["src/**/*.js"],"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/"]},"peerDependencies":{"react":"^16.4.2","react-dom":"^16.4.2"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.0.0","@babel/preset-env":"^7.0.0","@babel/preset-react":"^7.0.0","autocapitalize":"^1.0.0","babel-core":"^7.0.0-bridge.0","babel-jest":"^23.4.2","babel-plugin-react-remove-properties":"^0.2.5","docz":"^0.11.0","docz-plugin-css":"^0.11.0","downshift":"^3.1.5","enzyme":"^3.6.0","enzyme-adapter-react-16":"^1.5.0","eslint":"^5.4.0","eslint-config-airbnb":"^17.1.0","eslint-plugin-import":"^2.14.0","eslint-plugin-jsx-a11y":"^6.1.1","eslint-plugin-react":"^7.11.1","husky":"^1.1.0","jest":"^23.5.0","react":"^16.4.2","react-dom":"^16.4.2","react-test-renderer":"^16.4.2","regenerator-runtime":"^0.12.1","styled-base-components":"^1.3.0","styled-button-component":"^2.0.0","styled-components":"^3.4.5","styled-form-component":"^2.0.0","styled-grid-system-component":"^2.0.0","styled-system":"^3.0.2"},"dependencies":{"input-is":"^2.0.0","prop-types":"^15.6.2","warning-message":"^1.1.0"},"gitHead":"059be450bec6424ff3200489ed43d441ac3331ed","_id":"react-form-package@1.12.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"aichbauer","email":"l.aichbauer@gmail.com"},"dist":{"integrity":"sha512-QQKpwsibQ9jaipZ3pLinpM2Lbp3k556OdEUTG289QAjIoS86B7hAKXVdotiNSEAjTpMzI7ULIKDJ4ULCaFbNQg==","shasum":"0afcd6c6fd7ec7884651036d7841a6bfd5759df8","tarball":"https://registry.npmjs.org/react-form-package/-/react-form-package-1.12.0.tgz","fileCount":22,"unpackedSize":109792,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb+SvlCRA9TVsSAnZWagAA/5QP/A6c9wfcMmThmEZVkb2C\nmQB+hBdrYHEoCryKdBfEzEuB+xSb93XZDPfXpXsc0jiC0RcViy82JTrGQvDZ\n1ngWlMMRmmrmo7oX9yeoP9w+wOhP2m1FTsehuyXUkV6bOr2CJHsLY4TLA7g3\nCCUwxcBanAuRyheuoPMhF1gn8yNLmlJ7W0ZZ3ynp6X5EshvBCPkLI2CzHv5I\nNkzjEgbThf30evw0BP+5RgXJwRAtHlOlvG0bL4kgbfprP4c5YuGk/lx37Oa1\nwInfMkblqiICsI65j/BiPlHKn7ZNKMlI1zHnUnMc+NYlV0uaq12n7tEkkwo3\nB85FgeM78OiEEn1xNpCTZ71Toc4nTM3kOGuLIvHQWYk2ssMNE84DlBvKhIGv\n8vQUB41I9N/OGaA19tAzZnhrOfjj2/Gxw/mKOmmd9Q2V+MKX/mU47xttj4PQ\nIxCuGzRtE1Q/5ZM1P/DyGq4ahIqTwZqvrmCYAyCtrtS2YVtnPJGnV2NzDizj\nOt4Y0LWk68obnkarDBEk4Kwe6sjcqAzPF+Hlg8r0Z1MsQI2SOCIMauQAMqtl\n/zmAOE8+IerIKkxPTcXNl491YyZ9n55Gjm0DgZLaqs0H4bTTKSACEQ0zGnCW\ne98btdyey0vkiTCoqqyKZoz9h+nUVCEemha/ENpCsPjE0U3X0vDNlwSjYGp9\nYn+Y\r\n=DFi1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEoycY0oKqcOQTthzDQ89e1EWVeqRZ420cv+3zoIDyYxAiEApJ71HHSGCYiwbIvB0JXkcc1UMuO+YuLWA0ID/Fz87C8="}]},"maintainers":[{"name":"aichbauer","email":"l.aichbauer@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-form-package_1.12.0_1543056356616_0.6881258185707637"},"_hasShrinkwrap":false},"1.12.1":{"name":"react-form-package","version":"1.12.1","description":"A declarative form component with inbuilt validation and state management","main":"./lib/index.js","license":"MIT","private":false,"author":{"name":"Lukas Aichbauer","email":"l.aichbauer@gmail.com","url":"https://lukasaichbauer.com/"},"scripts":{"docz:dev":"docz dev","docz:build":"docz build","lint":"eslint src --fix","pretest":"yarn run lint","test":"jest --coverage --env=jsdom","prepush":"yarn run test","build":"rm -rf lib; babel src --out-dir lib","prepare":"yarn run build"},"keywords":["react","form","react-form-package"],"repository":{"type":"git","url":"git+https://github.com/aichbauer/react-form-package.git"},"bugs":{"url":"https://github.com/aichbauer/react-form-package/issues"},"homepage":"https://aichbauer.github.io/react-form-package","jest":{"globals":{"__DEV__":true},"collectCoverageFrom":["src/**/*.js"],"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/"]},"peerDependencies":{"react":"^16.4.2","react-dom":"^16.4.2"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.0.0","@babel/preset-env":"^7.0.0","@babel/preset-react":"^7.0.0","autocapitalize":"^1.0.0","babel-core":"^7.0.0-bridge.0","babel-jest":"^23.4.2","babel-plugin-react-remove-properties":"^0.2.5","docz":"^0.11.0","docz-plugin-css":"^0.11.0","downshift":"^3.1.5","enzyme":"^3.6.0","enzyme-adapter-react-16":"^1.5.0","eslint":"^5.4.0","eslint-config-airbnb":"^17.1.0","eslint-plugin-import":"^2.14.0","eslint-plugin-jsx-a11y":"^6.1.1","eslint-plugin-react":"^7.11.1","husky":"^1.1.0","jest":"^23.5.0","react":"^16.4.2","react-dom":"^16.4.2","react-test-renderer":"^16.4.2","regenerator-runtime":"^0.12.1","styled-base-components":"^1.3.0","styled-button-component":"^2.0.0","styled-components":"^3.4.5","styled-form-component":"^2.0.0","styled-grid-system-component":"^2.0.0","styled-system":"^3.0.2"},"dependencies":{"input-is":"^2.0.0","prop-types":"^15.6.2","warning-message":"^1.1.0"},"gitHead":"b739889156aeccd456b17c5f826b2249009d1398","_id":"react-form-package@1.12.1","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"aichbauer","email":"l.aichbauer@gmail.com"},"dist":{"integrity":"sha512-cijrnQj3b8HGQshtTM848L5n+R/3Yh5T95TWwUsor6uiX3Egmp3YJA59209zEt786apU7OfHIiTFgEsKR4Dkzg==","shasum":"ee7b2493dbb2f7ab4c950fe333c5d5cb729f92bb","tarball":"https://registry.npmjs.org/react-form-package/-/react-form-package-1.12.1.tgz","fileCount":22,"unpackedSize":110416,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb+VrvCRA9TVsSAnZWagAAv54P/A5P7zJemwOoegMfL11h\nWEftfJZjcBxCM1bDT2JU9U7gxnkrfphUtr/HIQI2Zn6LGYX7vboJr2ZtWujd\n3hywjYvbMzp4IS5UrMnNzAAU2mfPNbnoCwr8MmkBPF/2gTS/OWkagnjD19V0\nyGT5EnlZ52DrWLEKHD6j1BVdbWV6SpARYAsaHBcVip3kkg0gsagJw3YYJDNz\nxRQSvXI87DAwimSNA/XGSL6UeTFAmm9Tsk1d4XKrIMZduiJIV6eO9hHNZ5ji\nckAH2uqn43d7bF86ZomJpkv0MawzM5dNv4+xJciApEqUdt0G+ul14tfT4OzC\nWWwajFfasuD04avSSmCcLcKMtkqbBfoqZghDgdHj4nw7toScdZSSpo07J3o9\nbRU/e4+pvnsnmRtjSJ36nPgC6jER/CnEQ7kq7eOnIm2soqipAjWqncjcKJtC\nQuHIvqVWR/t3wtRgEMsG6LGgE2GenvR8wHgkPyqvmMkYTS80CIqR8Oo38fLN\nNI7KpAPaFjw5SrOW6KZPCCUXIzFyZkTvG62Q1vsWm3n3fQuBgwcSB0GvIIWE\npqu+7ofjLACw+42lDY/9GeoqR+d9KI/D8V6uFovu3yqSawmlyxs03mCx661i\nqfhHdRubYBG42lkHUTANuM2Hd1ILql2sG1sGG1CSvkHI3cMElnDR9KMd0fSi\nA64B\r\n=Xhmt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCZ5OI1/Ij8PJtnZAkVzIFAS6t9uotb5bQtOh+C8dEMtAIhANjfUR6T17l8gVioCAGCUeAGQk9bVfRMbeIALElIGimQ"}]},"maintainers":[{"name":"aichbauer","email":"l.aichbauer@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-form-package_1.12.1_1543068398844_0.54141272988167"},"_hasShrinkwrap":false},"1.12.2":{"name":"react-form-package","version":"1.12.2","description":"A declarative form component with inbuilt validation and state management","main":"./lib/index.js","license":"MIT","private":false,"author":{"name":"Lukas Aichbauer","email":"l.aichbauer@gmail.com","url":"https://lukasaichbauer.com/"},"scripts":{"docz:dev":"docz dev","docz:build":"docz build","lint":"eslint src --fix","pretest":"yarn run lint","test":"jest --coverage --env=jsdom","prepush":"yarn run test","build":"rm -rf lib; babel src --out-dir lib","prepare":"yarn run build"},"keywords":["react","form","react-form-package"],"repository":{"type":"git","url":"git+https://github.com/aichbauer/react-form-package.git"},"bugs":{"url":"https://github.com/aichbauer/react-form-package/issues"},"homepage":"https://aichbauer.github.io/react-form-package","jest":{"globals":{"__DEV__":true},"collectCoverageFrom":["src/**/*.js"],"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/"]},"peerDependencies":{"react":"^16.4.2","react-dom":"^16.4.2"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.0.0","@babel/preset-env":"^7.0.0","@babel/preset-react":"^7.0.0","autocapitalize":"^1.0.0","babel-core":"^7.0.0-bridge.0","babel-jest":"^23.4.2","docz":"^0.11.0","docz-plugin-css":"^0.11.0","downshift":"^3.1.5","enzyme":"^3.6.0","enzyme-adapter-react-16":"^1.5.0","eslint":"^5.4.0","eslint-config-airbnb":"^17.1.0","eslint-plugin-import":"^2.14.0","eslint-plugin-jsx-a11y":"^6.1.1","eslint-plugin-react":"^7.11.1","husky":"^1.1.0","jest":"^23.5.0","react":"^16.4.2","react-dom":"^16.4.2","react-test-renderer":"^16.4.2","regenerator-runtime":"^0.12.1","styled-base-components":"^1.3.0","styled-button-component":"^2.0.0","styled-components":"^3.4.5","styled-form-component":"^2.0.0","styled-grid-system-component":"^2.0.0","styled-system":"^3.2.1"},"dependencies":{"input-is":"^2.0.0","prop-types":"^15.6.2","warning-message":"^1.1.0"},"gitHead":"0a472c258cba718cb93add8cfdf12c3b372b0c98","_id":"react-form-package@1.12.2","_npmVersion":"6.5.0","_nodeVersion":"10.15.0","_npmUser":{"name":"aichbauer","email":"l.aichbauer@gmail.com"},"dist":{"integrity":"sha512-Obzp4I4qpbkPj0TJ0tgVSg2LtD43DtKl94Ljf5pH/gWLxUP5N2t6mtjTVdCoQKpgr3AVYa4gEXzlieLv0tfTEw==","shasum":"43cf5518ba8d726886ee5dbf65a66673233aeb6d","tarball":"https://registry.npmjs.org/react-form-package/-/react-form-package-1.12.2.tgz","fileCount":22,"unpackedSize":110601,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcRhhQCRA9TVsSAnZWagAAb4AP/0tYPj6wsrJwPGDed+kS\nmKv6lvWcBGAxT/YvQrINML6+XOLpPFQf4uXXxmVotsjZ5H711Zo0KEtNEfLA\nrpQRSQ6vqBjE+Pl+vs8ZYmbfmb2/QmipIYJDOL6XYwW7uwnXxgkUYcCQMYGv\nkMVXlJoqH5Do/DL832t8uQLm7D0sCmv3vSX5Tj5GAT54f3clyizQ77EhHuNs\nMAgDWFvWsAvOFNTz6392ZsTwUHTMLTbO9Ac9YNLM8UZIwrUkjZtEfQ7JfyEL\nPXrpa5gcFYdjn+DOGluQXYyev9chloUmB2F69PlMKhOywhQueg3zzLyxzvuL\nz4C+fClKmkOLsLwRjCweqaiT7lZweP3xNZ/qS/QdhhyQtCZv3zA8/KcYI4gr\np1BWQj6Z6i+86A8mzfbaoCZPlH43S14scL7r97c2SZZE62rf3PnlzupdQlj5\nF9xzIk6ccKKuNe/YIbc7T3tjgvq50Nlz2Bdpcv/i04qSQ6pQcf2R2ZBwcmGR\n5KAQy9mYnBL/KCBRO/RE3QQAcBLPwYJSSWu8rT6qjBElNViuhVnCrOfgtsFi\nODGTQkKqAYejvZ1hqxBYk4MD63fX+YOBrkPU9p8fYUut71UW6hxkuOXhif2n\nO48bcKUZDRyLkr7UtUsXXqk8Smt1RD+67sIS0sq17NJg/H0UUWjolCp6h0fh\nRF2K\r\n=A95a\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCsEfKIIhQq1yvsDEOsSutLJv2SEorV8l9c5aWJuwLl6gIgNvnWiZLQ969zF/P4FDJUvjNEF36/AqakpU8GjwQ0Mnc="}]},"maintainers":[{"name":"aichbauer","email":"l.aichbauer@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-form-package_1.12.2_1548097615152_0.3342131307441534"},"_hasShrinkwrap":false},"1.13.0":{"name":"react-form-package","version":"1.13.0","description":"A declarative form component with inbuilt validation and state management","main":"./lib/index.js","license":"MIT","private":false,"author":{"name":"Lukas Aichbauer","email":"l.aichbauer@gmail.com","url":"https://lukasaichbauer.com/"},"scripts":{"docz:dev":"docz dev","docz:build":"docz build","lint":"eslint src --fix","pretest":"yarn run lint","test":"jest --coverage --env=jsdom","prepush":"yarn run test","build":"rm -rf lib; babel src --out-dir lib","prepare":"yarn run build"},"keywords":["react","form","react-form-package"],"repository":{"type":"git","url":"git+https://github.com/aichbauer/react-form-package.git"},"bugs":{"url":"https://github.com/aichbauer/react-form-package/issues"},"homepage":"https://aichbauer.github.io/react-form-package","jest":{"globals":{"__DEV__":true},"collectCoverageFrom":["src/**/*.js"],"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/"]},"peerDependencies":{"react":"^16.4.2","react-dom":"^16.4.2"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.0.0","@babel/preset-env":"^7.0.0","@babel/preset-react":"^7.0.0","autocapitalize":"^1.0.0","babel-core":"^7.0.0-bridge.0","babel-jest":"^23.4.2","docz":"^0.11.0","docz-plugin-css":"^0.11.0","downshift":"^3.1.5","enzyme":"^3.6.0","enzyme-adapter-react-16":"^1.5.0","eslint":"^5.4.0","eslint-config-airbnb":"^17.1.0","eslint-plugin-import":"^2.14.0","eslint-plugin-jsx-a11y":"^6.1.1","eslint-plugin-react":"^7.11.1","husky":"^1.1.0","jest":"^23.5.0","react":"^16.4.2","react-dom":"^16.4.2","react-test-renderer":"^16.4.2","regenerator-runtime":"^0.12.1","styled-base-components":"^1.3.0","styled-button-component":"^2.0.0","styled-components":"^3.4.5","styled-form-component":"^2.0.0","styled-grid-system-component":"^2.0.0","styled-popover-component":"^1.3.0","styled-system":"^3.2.1"},"dependencies":{"input-is":"^2.0.0","prop-types":"^15.6.2","warning-message":"^1.1.0"},"gitHead":"2cca0982d26d0fb3668d76a99d942696518c1ed4","_id":"react-form-package@1.13.0","_npmVersion":"6.5.0","_nodeVersion":"10.15.0","_npmUser":{"name":"aichbauer","email":"l.aichbauer@gmail.com"},"dist":{"integrity":"sha512-86KkQns+gemYDPNGw4fsSBzMBJWZvvIQrf002geclGp1CMt/7kzLT9rAyITBV052+m+oJ6AW4Qouezmw8NNR8A==","shasum":"09bf0d8a18aaa793ba22a368f6f935103627a8b6","tarball":"https://registry.npmjs.org/react-form-package/-/react-form-package-1.13.0.tgz","fileCount":22,"unpackedSize":111521,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcWYlZCRA9TVsSAnZWagAACx8QAI2uzuvUHuihTr+PycR9\nmRu3+mLYDNpQ8AwK8zzemPsCT7qPiFUy4mMxkB4Eq9oyCM51YIvGcPVF1aF1\nslsVuMIa5Dtozxl7xuSpT/F1H10AuvNMt+AgU4WTsjn/oKKtId532aOKPBTd\nIwpmC1Ks1+QMtKQGvdQD0bpC7F7UFIFolOLHF/JgZOLoul54rtD8L7GGa/6W\n6zWUXdPi2adNVUh471MNTd0jGxMA5e9uIwPnKnSfuP8I7hPqwWJY8z9guUBP\nJdV+djnVlUbj0TzshxPdB1hahBa2A9oCxm71Tz03S8s6foI/x645Dni4ByLr\nEed4xIwPV+RJMaTSxQlZM7ng54qo3NF7g1VBRNQx7ZgP6GH9sVKa47yLnHFq\noqUYK+kjYtuOxlSjs0vkIUfFiLpQ7drCYzECMh+tbv5OvFXMqLqPPHA2guua\nX1zfZj6kMabhUJmM2yy9Suc0WcJHD3PgGHt70dIhPzmKtZMC+nsDECr4Znli\nacKPzuvzj8F43CWNGvOqXFaURTAvm62GW+1vQXsRYqjTRupaSDuQQyvmQKcB\nNJ90uBfl0Am8Ejseh/utToXKp24MbWbQVQYXHENbFyJ5qSB7nTRPZnWJlvdR\nX56c1+XOXOaMeBOlOZNEvIdh6Lr2gcOiRKrUeVVaWaC68vjDMbFN8MA7AXau\n5C/G\r\n=L4Zn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDfftwlqg5o6818bah9BQxxBFNlHLlGyO1S0KDZzeN7UAiEAof9iXlSyeZCENq3qhf1YN+Zf1zqCsbF+DGdXWjQ/3ds="}]},"maintainers":[{"name":"aichbauer","email":"l.aichbauer@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-form-package_1.13.0_1549371737009_0.34012506146439425"},"_hasShrinkwrap":false},"1.14.0":{"name":"react-form-package","version":"1.14.0","description":"A declarative form component with inbuilt validation and state management","main":"./lib/index.js","license":"MIT","private":false,"author":{"name":"Lukas Aichbauer","email":"l.aichbauer@gmail.com","url":"https://lukasaichbauer.com/"},"scripts":{"docz:dev":"docz dev","docz:build":"docz build","lint":"eslint src --fix","pretest":"yarn run lint","test":"jest --coverage --env=jsdom","prepush":"yarn run test","build":"rm -rf lib; babel src --out-dir lib","prepare":"yarn run build"},"keywords":["react","form","react-form-package"],"repository":{"type":"git","url":"git+https://github.com/aichbauer/react-form-package.git"},"bugs":{"url":"https://github.com/aichbauer/react-form-package/issues"},"homepage":"https://aichbauer.github.io/react-form-package","jest":{"globals":{"__DEV__":true},"collectCoverageFrom":["src/**/*.js"],"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/"]},"peerDependencies":{"react":"^16.4.2","react-dom":"^16.4.2"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.0.0","@babel/preset-env":"^7.0.0","@babel/preset-react":"^7.0.0","autocapitalize":"^1.0.0","babel-core":"^7.0.0-bridge.0","babel-jest":"^23.4.2","docz":"^0.11.0","docz-plugin-css":"^0.11.0","downshift":"^3.1.5","enzyme":"^3.6.0","enzyme-adapter-react-16":"^1.5.0","eslint":"^5.4.0","eslint-config-airbnb":"^17.1.0","eslint-plugin-import":"^2.14.0","eslint-plugin-jsx-a11y":"^6.1.1","eslint-plugin-react":"^7.11.1","husky":"^1.1.0","jest":"^23.5.0","react":"^16.4.2","react-dom":"^16.4.2","react-test-renderer":"^16.4.2","regenerator-runtime":"^0.12.1","styled-base-components":"^1.3.0","styled-button-component":"^2.0.0","styled-components":"^3.4.5","styled-form-component":"^2.0.0","styled-grid-system-component":"^2.0.0","styled-popover-component":"^1.3.0","styled-system":"^3.2.1"},"dependencies":{"input-is":"^2.0.0","prop-types":"^15.6.2","warning-message":"^1.1.0"},"gitHead":"e8df138ab060984cc6f079d3df8883edeaa0cb5b","_id":"react-form-package@1.14.0","_npmVersion":"6.5.0","_nodeVersion":"10.15.0","_npmUser":{"name":"aichbauer","email":"l.aichbauer@gmail.com"},"dist":{"integrity":"sha512-NVFhuzWsXCxzMpoSx3Wle4ENmUD3yfIZAbGJownsEHFEuJTZBrpna+OI4WHQBlGixWZBPk6CCKXhV4odlWgAQQ==","shasum":"4e29138babaaa63be38806c71436c4177180c22d","tarball":"https://registry.npmjs.org/react-form-package/-/react-form-package-1.14.0.tgz","fileCount":23,"unpackedSize":119885,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcXX/RCRA9TVsSAnZWagAAdrcP/RA/6bEgWllDJF/383YU\ncVgxqy81Gx5VuAAld1ojypot4ndMdADyCcsIddiyhYqAXk98TaRe7fCXdDVZ\nCpnkzkj/DNwasQvY8ZLNB3jgZKs0yHVEHZ/mbMlg4F0VxDumbXaT3vzYNX7m\nbtKw3+TISTZwFOcQqa6aCeRjIlqx/YVn1j8NToFqzbYzm9WS30LCJX83xZ6f\nl74HBBKcRvfnPkjZ5jl8OIDcihjKK1OaLCbn1EWHMOkQUehFnDf9OsZFwq35\nMlZqiSocowpebJdSSFDM1meSKVAca0wKF67zydRS4NcserthKLDI647T1tDy\n9D7HEGb2d+VTYuZTTXkA/vBhTHrI1rT8jJnPJKO9+wuDTJITFkl+ieFBKI4p\n9dJ6r5Q5Dnoom2XcSLbVIZrEH2DtGVO/CESyq+sb7fR3KipL1MGVznQrHQXQ\nX02Xwr0upfTznmf52C5/U1h2KnQd1wh40Je07EXQT1/3hxpaTSZlUwcCk13m\nw+rHv2Us+ULG1GzSNZ0CFipbiBJS0SuPMtGJG3HeOgNqjerQv51HIKQZMDHq\ncDoF0VE9A6Y0bIBl8L+61hjrxokF1eM/oNk/7rCvw1Pm4ZND1QVuZ9b3Qqo/\n5oDk7EKC5DfKIwfdXbAPNjsefSBO7Clfc/EwClZiVwIUqAzjKohj+WSSAXTL\nJBqw\r\n=UHV4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA9tHjMNPyexWsK15rg0wst80M+pRnT5p3n96ItkbdbqAiEAqyFfCahl+ylfJPVd2gJWGdbwkCfDNR6B/xGJc4kbGKc="}]},"maintainers":[{"name":"aichbauer","email":"l.aichbauer@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-form-package_1.14.0_1549631439981_0.330179658594981"},"_hasShrinkwrap":false},"1.14.1":{"name":"react-form-package","version":"1.14.1","description":"A declarative form component with inbuilt validation and state management","main":"./lib/index.js","license":"MIT","private":false,"author":{"name":"Lukas Aichbauer","email":"l.aichbauer@gmail.com","url":"https://lukasaichbauer.com/"},"scripts":{"docz:dev":"docz dev","docz:build":"docz build","lint":"eslint src --fix","pretest":"yarn run lint","test":"jest --coverage --env=jsdom","prepush":"yarn run test","build":"rm -rf lib; babel src --out-dir lib","prepare":"yarn run build"},"keywords":["react","form","react-form-package"],"repository":{"type":"git","url":"git+https://github.com/aichbauer/react-form-package.git"},"bugs":{"url":"https://github.com/aichbauer/react-form-package/issues"},"homepage":"https://aichbauer.github.io/react-form-package","jest":{"globals":{"__DEV__":true},"collectCoverageFrom":["src/**/*.js"],"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/"]},"peerDependencies":{"react":"^16.4.2","react-dom":"^16.4.2"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.0.0","@babel/preset-env":"^7.0.0","@babel/preset-react":"^7.0.0","autocapitalize":"^1.0.0","babel-core":"^7.0.0-bridge.0","babel-jest":"^23.4.2","docz":"^0.11.0","docz-plugin-css":"^0.11.0","downshift":"^3.1.5","enzyme":"^3.6.0","enzyme-adapter-react-16":"^1.5.0","eslint":"^5.4.0","eslint-config-airbnb":"^17.1.0","eslint-plugin-import":"^2.14.0","eslint-plugin-jsx-a11y":"^6.1.1","eslint-plugin-react":"^7.11.1","husky":"^1.1.0","jest":"^23.5.0","react":"^16.4.2","react-dom":"^16.4.2","react-test-renderer":"^16.4.2","regenerator-runtime":"^0.12.1","styled-base-components":"^1.3.0","styled-button-component":"^2.0.0","styled-components":"^3.4.5","styled-form-component":"^2.0.0","styled-grid-system-component":"^2.0.0","styled-popover-component":"^1.3.0","styled-system":"^3.2.1"},"dependencies":{"input-is":"^2.0.0","prop-types":"^15.6.2","warning-message":"^1.1.0"},"gitHead":"b11fde98abdb9e4d66700ae2dbc90244732da6e3","_id":"react-form-package@1.14.1","_npmVersion":"6.4.1","_nodeVersion":"8.16.0","_npmUser":{"name":"aichbauer","email":"l.aichbauer@gmail.com"},"dist":{"integrity":"sha512-nhfi+TxZYKoVgm/hngd9useii62ZwlKe0dNkNJDb6zxNKJRgBGanGzRq3R5NcDn4eN6N0oY1/ne9EjSPxpLudA==","shasum":"5162ac838f73856589a770f6c90368efe6983ba0","tarball":"https://registry.npmjs.org/react-form-package/-/react-form-package-1.14.1.tgz","fileCount":23,"unpackedSize":120086,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc7nzmCRA9TVsSAnZWagAA4P0QAJhLTWRrHTrQ3GZwdYOD\nhQS9elDM5scJpPrjNWlgCzEdVtwEWZm85x22t3KnzFoceqGJ1a/qvzdS4XME\nLr9JPBv2+g1UZelflfMEl7hivFd5mjAomYwwxutzf2J9WGZrHBq7b4sJahJr\ntKHeUzY5XBpANT+RkcTi6v8nydUu4y9DAMsXMjxNQQjDlzn4qdUK5LVyB1ar\ncH/6cmFzxdVzDtce0rjLSmT1smRBzbeeQMxHd7o8qjhP+r8PtLoyH6cHk9b+\nN0iRXwUYcKJ5e4PF82jsAIAhizqOzVgpRcOXsowSH/mShOEE9zit5YoSSbI4\n4DPWDjcfJKMUWKFaUDLqtFf+f7yFKqEhlk8YGATcpV/mPeSX7X5wJnHMbJ5C\nRrPlGKXm8/foqzYAnyJ7KMsA2u2n/eUc5X9jd//OrsxCKyTdqmFbrlSguXvc\nlfNXEoVY4s3Q6enBiawHKhAeTCLoIk6eVC+F9yvltNGZ7+KQu0mNtwIA5SiT\nMQjQgk/tTBz3Ko26c1ADp8JgeNMLJAtjEpe3e/RNuGEsenehjmWCrh3Pid9d\nuaYC44ZH+8rRyiDAoBh9PH1WymlF6bX9950xYJ2fOaEHh1jSvF5ZuA/gTnW0\nnogdzu3Xtly9lnzKWsobE227sG5F56TeE1sZ3wW/xRAJGjr4tH3gBD/dkmOi\nBH9G\r\n=3dTl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD7X2t9L9dQ++Qx0LU9VGn7myKZ7IgfqBQ31jUZGoUrOgIhAPGxndwU98o5JdoH5BS7GRIjKBCcoqdH3MkIbmjtFKkB"}]},"maintainers":[{"name":"aichbauer","email":"l.aichbauer@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-form-package_1.14.1_1559133411177_0.17519576791721425"},"_hasShrinkwrap":false},"1.15.0":{"name":"react-form-package","version":"1.15.0","description":"A declarative form component with inbuilt validation and state management","main":"./lib/index.js","license":"MIT","private":false,"author":{"name":"Lukas Aichbauer","email":"l.aichbauer@gmail.com","url":"https://lukasaichbauer.com/"},"scripts":{"docz:dev":"docz dev","docz:build":"docz build","lint":"eslint src --fix","pretest":"yarn run lint","test":"jest --coverage --env=jsdom","prepush":"yarn run test","build":"rm -rf lib; babel src --out-dir lib","prepare":"yarn run build"},"keywords":["react","form","react-form-package"],"repository":{"type":"git","url":"git+https://github.com/aichbauer/react-form-package.git"},"bugs":{"url":"https://github.com/aichbauer/react-form-package/issues"},"homepage":"https://aichbauer.github.io/react-form-package","jest":{"globals":{"__DEV__":true},"collectCoverageFrom":["src/**/*.js"],"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/"]},"peerDependencies":{"react":"^16.4.2","react-dom":"^16.4.2"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.0.0","@babel/preset-env":"^7.0.0","@babel/preset-react":"^7.0.0","autocapitalize":"^1.0.0","babel-core":"^7.0.0-bridge.0","babel-jest":"^23.4.2","docz":"^0.11.0","docz-plugin-css":"^0.11.0","downshift":"^3.1.5","enzyme":"^3.6.0","enzyme-adapter-react-16":"^1.5.0","eslint":"^5.4.0","eslint-config-airbnb":"^17.1.0","eslint-plugin-import":"^2.14.0","eslint-plugin-jsx-a11y":"^6.1.1","eslint-plugin-react":"^7.11.1","husky":"^1.1.0","jest":"^23.5.0","react":"^16.4.2","react-dom":"^16.4.2","react-test-renderer":"^16.4.2","regenerator-runtime":"^0.12.1","styled-base-components":"^1.3.0","styled-button-component":"^2.0.0","styled-components":"^3.4.5","styled-form-component":"^2.0.0","styled-grid-system-component":"^2.0.0","styled-popover-component":"^1.3.0","styled-system":"^3.2.1"},"dependencies":{"input-is":"^2.0.0","prop-types":"^15.6.2","warning-message":"^1.1.0"},"gitHead":"0b83e367964853acf6e7ea917f9ec57e6e69e0d4","_id":"react-form-package@1.15.0","_npmVersion":"6.4.1","_nodeVersion":"8.16.0","_npmUser":{"name":"aichbauer","email":"l.aichbauer@gmail.com"},"dist":{"integrity":"sha512-c+fKuJ3vxsWTigQWKww3qqnA5/i99mtBUJ1sB733kJY1Ob0r4K6BfIY//LCaX+71HsWizCwo7tpQwQO1je0pYA==","shasum":"da491f416f3294b85eff86d4aab86620e4377ada","tarball":"https://registry.npmjs.org/react-form-package/-/react-form-package-1.15.0.tgz","fileCount":23,"unpackedSize":120770,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc+7X5CRA9TVsSAnZWagAAMzIQAJCwDYO5RkCPpsAUNd94\nAdkLFMrLeAWJQQdRJAHu4mXgCT3MhTO5J56ISeKdw6t82xfG6daa6DIfEOXv\npyKVzhQ4+2oN2vm1ZN8Y+camWKTQjZ2EOXJxuSvOs1Uq8ep2HFem8VouArDv\nFNmKP6YiJ+d1aPjhRuxMdFy6KmpViVo6RS/4iaFqPFoREo+MGcp49oznwfxn\nCRRlP624jdm6OzMqmyIaI4H9FovKPEaTpYp0p2xYi7bPeyArEL9GfCNpLrhW\ng1HSBsPoNuLARmW3RCuXvgrQfYZrYr7O2OixrBML9rreD6KgZWGbILE/5biZ\nGKe4BTG9gZ3F+gxuRSjTDQyf+D2TPP3D0NJ2o1Ad5DGdKfR9Uc0GkJNwqdmZ\nKBxWAsqXk/YBy0kSMZaPq9SA4Zj5iWH+w0o0xidBPTiwYfZBvPKAPmvbj3u5\nbcJg8ceFWxq9lnCQj/HG3wYViATs3fRrhr/fHtZeRqShgzxYzIQ3mZdNgx63\nZslKqsXsIgMEmBP/CzR7B8bOBhdSrKih8vUOfZwYwm/Ly8e2iuwQ8FJu6ab8\n09D+d4+7gSF40jwp2I0ZN9DhJCbRlZrizg9zC4QPIDNv/CN1i7fZGvacCTrE\n9X7RtomK/v+F3gnGBDkkfudEqbL+6mJ/dulS19afT3ChqBt6bdHNaD96XO1f\ntR0v\r\n=OQKa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCe3qFn7wRs0tA9bBi18wYHDumQ13lLnJyF6wd3cImu2wIgD2kalShB1nBwHMdYf9yl9sGJZKT3ew1dHv714FPrSao="}]},"maintainers":[{"name":"aichbauer","email":"l.aichbauer@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-form-package_1.15.0_1559999992120_0.5522885277134839"},"_hasShrinkwrap":false},"1.15.1":{"name":"react-form-package","version":"1.15.1","description":"A declarative form component with inbuilt validation and state management","main":"./lib/index.js","license":"MIT","private":false,"author":{"name":"Lukas Aichbauer","email":"l.aichbauer@gmail.com","url":"https://lukasaichbauer.com/"},"scripts":{"docz:dev":"docz dev","docz:build":"docz build","lint":"eslint src --fix","pretest":"yarn run lint","test":"jest --coverage --env=jsdom","prepush":"yarn run test","build":"rm -rf lib; babel src --out-dir lib","prepare":"yarn run build"},"keywords":["react","form","react-form-package"],"repository":{"type":"git","url":"git+https://github.com/aichbauer/react-form-package.git"},"bugs":{"url":"https://github.com/aichbauer/react-form-package/issues"},"homepage":"https://aichbauer.github.io/react-form-package","jest":{"globals":{"__DEV__":true},"collectCoverageFrom":["src/**/*.js"],"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/"]},"peerDependencies":{"react":"^16.4.2","react-dom":"^16.4.2"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.0.0","@babel/preset-env":"^7.0.0","@babel/preset-react":"^7.0.0","autocapitalize":"^1.0.0","babel-core":"^7.0.0-bridge.0","babel-jest":"^23.4.2","docz":"^0.11.0","docz-plugin-css":"^0.11.0","downshift":"^3.1.5","enzyme":"^3.6.0","enzyme-adapter-react-16":"^1.5.0","eslint":"^5.4.0","eslint-config-airbnb":"^17.1.0","eslint-plugin-import":"^2.14.0","eslint-plugin-jsx-a11y":"^6.1.1","eslint-plugin-react":"^7.11.1","husky":"^1.1.0","jest":"^23.5.0","react":"^16.4.2","react-dom":"^16.4.2","react-test-renderer":"^16.4.2","regenerator-runtime":"^0.12.1","styled-base-components":"^1.3.0","styled-button-component":"^2.0.0","styled-components":"^3.4.5","styled-form-component":"^2.0.0","styled-grid-system-component":"^2.0.0","styled-popover-component":"^1.3.0","styled-system":"^3.2.1"},"dependencies":{"input-is":"^2.0.0","prop-types":"^15.6.2","warning-message":"^1.1.0"},"gitHead":"f90d308c64199a3f8a2a00a7db40ea3859463857","_id":"react-form-package@1.15.1","_npmVersion":"6.4.1","_nodeVersion":"8.16.0","_npmUser":{"name":"aichbauer","email":"l.aichbauer@gmail.com"},"dist":{"integrity":"sha512-w9yvznZfHyKMHJkAsvVQviZW6P0sFVjEdHzdssR4ylTMrlJVBRTIsK7WLcc4jxq0y8NGL6Hm4QAMHRPEKKa30Q==","shasum":"8fb8058631f22759abf045ee4c2468528f174b1a","tarball":"https://registry.npmjs.org/react-form-package/-/react-form-package-1.15.1.tgz","fileCount":23,"unpackedSize":120910,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdFJfECRA9TVsSAnZWagAAJaQP/1HFy7UeCscurDv3LwKt\n7+xm5NN1poEP9pvCbZE4lP+v8whRfT8XnA6SqYf9J5CU1WSyAV3fEERJCXp6\nSBiq5X839pPFD7ud8YMnFqTVlamhvFvRC9epNITv+pq6fwmmm1Xncar/TqtW\nFeRW/pQs0vGZPuERQLtBkjZhMj3N7pzcj/CwBDV5cEWXMh+fStTKhcE0yNrk\n7wkWajuzHHSEAzvSEHjfQKUxGsMY4Jsn3fpeIGpxC9nJTrx4sGmMfouzEc+b\nlaM5iz0NAJEsomSu4sBujC2mjCvl+bKqmj8xW0EZMlb55S2do1mGwqdH7Wnl\nfmzmN0bzjwWhEanapYksF2U1L73dOx6r7Ii37WnEhW94NJ0fPOUW3xrCFCnm\nagkQzdf6HWiNb8bJf8zCtHE7G6rvHvRWPItqq3FEbghYqcvnboW4243JNeWl\nwFKgFYnsaV6lm+3bueNAi7pssp7gyXrTUmCnkVuNjM7HRn6mbIazEbQ8Gw2d\nY2c2qD5htcLpZM+5sBlWvJKy8eQzOo3MTmiWqCAzuXD5vdH2vrToUQojycbu\njbUuso1hGUV+jvDUrrWXKwPSPJhCgR0+W6OVzlC0VONcJKg0mDCwswCmkVUs\nuSBrB3biVt4G28RLLsoCGfld27aAhCLgfGFUxueFvmkLw0m1ppZcOSo7+/Ow\n+Cyv\r\n=mFtQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBN85JTT0xbbFs+QJhtIl9sB/X2F82ZsE1NyNbn7f8g7AiEA5l0EpmTd23wrHj3N3G2pmf9GvL1wdltSrMhPIGC4l8o="}]},"maintainers":[{"name":"aichbauer","email":"l.aichbauer@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-form-package_1.15.1_1561630659821_0.2850865856586704"},"_hasShrinkwrap":false},"1.15.2":{"name":"react-form-package","version":"1.15.2","description":"A declarative form component with inbuilt validation and state management","main":"./lib/index.js","license":"MIT","private":false,"author":{"name":"Lukas Aichbauer","email":"l.aichbauer@gmail.com","url":"https://lukasaichbauer.com/"},"scripts":{"docz:dev":"docz dev","docz:build":"docz build","lint":"eslint src --fix","pretest":"npm run lint","test":"jest --coverage --env=jsdom","prepush":"npm run test","build":"rm -rf lib; babel src --out-dir lib","prepare":"npm run build"},"keywords":["react","form","react-form-package"],"repository":{"type":"git","url":"git+https://github.com/aichbauer/react-form-package.git"},"bugs":{"url":"https://github.com/aichbauer/react-form-package/issues"},"homepage":"https://aichbauer.github.io/react-form-package","jest":{"globals":{"__DEV__":true},"collectCoverageFrom":["src/**/*.js"],"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/"]},"peerDependencies":{"react":"^16.4.2","react-dom":"^16.4.2"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/plugin-syntax-object-rest-spread":"^7.0.0","@babel/preset-env":"^7.0.0","@babel/preset-react":"^7.0.0","autocapitalize":"^1.0.0","babel-core":"^7.0.0-bridge.0","babel-eslint":"^10.0.2","babel-jest":"^24.8.0","docz":"^0.11.0","docz-plugin-css":"^0.11.0","downshift":"^3.1.5","enzyme":"^3.6.0","enzyme-adapter-react-16":"^1.5.0","eslint":"^5.4.0","eslint-config-airbnb":"^17.1.0","eslint-plugin-import":"^2.14.0","eslint-plugin-jsx-a11y":"^6.1.1","eslint-plugin-react":"^7.11.1","husky":"^1.1.0","jest":"^24.8.0","react":"^16.4.2","react-dom":"^16.4.2","react-test-renderer":"^16.4.2","regenerator-runtime":"^0.12.1","styled-base-components":"^1.3.0","styled-button-component":"^2.0.0","styled-components":"^3.4.5","styled-form-component":"^2.0.0","styled-grid-system-component":"^2.0.0","styled-popover-component":"^1.3.0","styled-system":"^3.2.1"},"dependencies":{"input-is":"^2.0.0","prop-types":"^15.6.2","warning-message":"^1.1.0"},"gitHead":"409b976e1a46de2c70cbcd353982ceb32a0bc62b","_id":"react-form-package@1.15.2","_npmVersion":"6.4.1","_nodeVersion":"8.16.0","_npmUser":{"name":"aichbauer","email":"l.aichbauer@gmail.com"},"dist":{"integrity":"sha512-naeT34CFWITqQNK4tWK1dgy/uJ9zDVgq300xPdkjE0kytntRXM46rK105+HhwzrdZLzoAGeQ9SLRJUbq0eG8FA==","shasum":"3b580fbef2f9a559ff7a725460fe30689f4bfa96","tarball":"https://registry.npmjs.org/react-form-package/-/react-form-package-1.15.2.tgz","fileCount":23,"unpackedSize":126688,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdQ/lDCRA9TVsSAnZWagAAM/AP/2biLgSe78j4D/p6eo1L\n1OWxyq+eV0s2VjEcJ4c15ISfsvdwI5t6WbKE8+FRjTshq6Q+textybMZFovd\nN0IGQV03MAx5tPZA58+SfHDdDHukxIOMcvIRPx97Lg2EUyS+hXk92K5n+9iT\nWioJlR8mx5VA2Loc7ZvbsU1CzLMkKwni9jPgl+wR/iJ44OMaO4vEmdg5YTNN\n0iJGQSYGII5V3GKITAAUZUsNlvhdJyxrEK3odgkBNQFIodAt+Dytgc7Td3/j\n8VoNtNqJBJf5L0Uxx9eMjRA6BHW8/rZByfb2mOwh7ETDpw6NwWwGuD5F5wrZ\n6wS/vwI7v+1FEWeKy4tfqLD55pCA15S9vNEAztGV3B+/2/lZH1CDax/BFPp/\nYCU8HFC+SwNz73CAJNj4JNtQ90VKjHiLezGwYGKHmv0/FI1pKd3lE+1kyoZC\nZf5t7oZOoukd8O2kQ9153XYxDdrPgSK/TZq/YPCrn3+fz8gkT9eju+GGOsGf\nRspR2UOltpT5LifaIQL2oQfL8I42WboS1MQRIs7ch+a0ITXBrlgiVwwOXfBj\nIs3pFQx9CsNLYp1kgiUJnYzP40miJFoLytiVC3Ot77Rg1N+AjXzANgChVxfr\n1glPMm3ic6m9IG/RjU1DDG64qRjFSCaDBxKU0+g7fpTvf0Qtb2Sp8IGKDp45\ncdn9\r\n=ak+L\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDC4F1yJs3LhU5G72naNMzrLXGOScsd+A7X+oA2EW5NBAIgBQVjsdV5myfM6tWx/Dir4Y7vlxRg+nGW7fCc1qqXtwQ="}]},"maintainers":[{"name":"aichbauer","email":"l.aichbauer@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-form-package_1.15.2_1564735810288_0.8303236279404322"},"_hasShrinkwrap":false},"1.15.3":{"name":"react-form-package","version":"1.15.3","description":"A declarative form component with inbuilt validation and state management","main":"./lib/index.js","license":"MIT","private":false,"author":{"name":"Lukas Aichbauer","email":"l.aichbauer@gmail.com","url":"https://lukasaichbauer.com/"},"scripts":{"docz:dev":"docz dev","docz:build":"docz build","lint":"eslint src --fix","pretest":"npm run lint","test":"jest --coverage --env=jsdom","prepush":"npm run test","build":"rm -rf lib; babel src --out-dir lib","prepare":"npm run build"},"keywords":["react","form","react-form-package"],"repository":{"type":"git","url":"git+https://github.com/aichbauer/react-form-package.git"},"bugs":{"url":"https://github.com/aichbauer/react-form-package/issues"},"homepage":"https://aichbauer.github.io/react-form-package","jest":{"globals":{"__DEV__":true},"collectCoverageFrom":["src/**/*.js"],"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/"]},"peerDependencies":{"react":"^16.4.2","react-dom":"^16.4.2"},"devDependencies":{"@babel/cli":"^7.8.4","@babel/core":"^7.8.4","@babel/plugin-syntax-object-rest-spread":"^7.8.3","@babel/preset-env":"^7.8.4","@babel/preset-react":"^7.8.3","autocapitalize":"^1.0.2","babel-core":"^6.26.3","babel-eslint":"^10.0.3","babel-jest":"^25.1.0","docz":"^2.2.0","docz-plugin-css":"^0.11.0","downshift":"^5.0.0","enzyme":"^3.11.0","enzyme-adapter-react-16":"^1.15.2","eslint":"^6.8.0","eslint-config-airbnb":"^18.0.1","eslint-plugin-import":"^2.20.1","eslint-plugin-jsx-a11y":"^6.2.3","eslint-plugin-react":"^7.18.3","gatsby-plugin-sass":"^2.1.28","husky":"^4.2.3","jest":"^25.1.0","node-sass":"^4.13.1","react":"^16.12.0","react-dom":"^16.12.0","react-test-renderer":"^16.12.0","regenerator-runtime":"^0.13.3","styled-base-components":"^4.0.0","styled-button-component":"^4.0.0","styled-components":"^5.0.1","styled-form-component":"^4.0.0","styled-grid-system-component":"^4.0.0","styled-popover-component":"^4.0.0"},"dependencies":{"input-is":"^2.0.0","prop-types":"^15.6.2","warning-message":"^1.1.0"},"gitHead":"bfb5a6f44c7ce408f711315bac49eff144844232","_id":"react-form-package@1.15.3","_nodeVersion":"10.16.3","_npmVersion":"6.10.3","dist":{"integrity":"sha512-LyH9KVHeDwW1KzMMp025U/LpgN8h8CzK+Dle4LRljFYIecNFlxckNF2OwzCk8IqdjftSC8y751shVuXWB2vmUQ==","shasum":"f2a44ff672ca5a32a9071276cd3441387de26437","tarball":"https://registry.npmjs.org/react-form-package/-/react-form-package-1.15.3.tgz","fileCount":24,"unpackedSize":134797,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeSbwdCRA9TVsSAnZWagAAwzYQAJbM9ijrTTjeKr0OLsl/\nldHTbAJX5uR4E+qOyf2avIog/7QPUOwfcofM2bxFbipQycPu0I2bN3iAzslB\n0Nn/buFCqEulwzA5NLuPdAwgpPOBPAaprvQQLVfsfcCiwPQkj7LOJNxUbiBs\nvvpJrvhwjXR8mM2/oarsnPMjzfoc6F59Zjy3M5NhqlnOZTXsNl+HOmAb879P\nxbemVqP9T/07h1k+iTdzv9howFeiSR70D+btapFyF0s60fVXZvkY3l5GkEwR\nYG96hGwd5q7aIoUC+D9KzIIXLYejS3RTbs8a9gvfZQi6td4t6fKZX/26pWT4\niShyrTAvo3f+SObEFx8Jnq1TCmYVIU12c/AGr5ooWIpVZrVli4xqJ01p/6dx\n3GyxFcyOsNDDq0UhlbOPm0kkFYO4AAhBESUEJ3Je/CCW5Qq99MX9KxAd1F92\noNFH6omxZcpFQ1QXe+z6RiHAmI5t52kK5dn6NoXSerjWZiI5eH0Wzp/gV9x/\nbhMdvnqg8+Sqp33R7mY2mKdMnzww85Z7hihKIMzwJBDtnk6EOfTl2NmoBG2S\n1oTweMqDoyEm/x018eEFCBUM1Dj3wwT7AumPDwcW00da5jRvKVTMABf4ODvX\nZsFtAYHafhzZZeGor851j6NT9dU+EFJwy0qmcYNkXD5FmytfrlvmR8EpvwLf\nOxeK\r\n=7mL5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDRiTQliOq0hdR+P6A4glSgc56IulNlP6K2t3Of2pzSJQIgdnWY1tJdm3mqcum3ZIIFL0XZ+wQ/up5EZfOmlW/900Y="}]},"maintainers":[{"name":"aichbauer","email":"l.aichbauer@gmail.com"}],"_npmUser":{"name":"aichbauer","email":"l.aichbauer@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-form-package_1.15.3_1581890589186_0.5420570683587584"},"_hasShrinkwrap":false},"1.16.0":{"name":"react-form-package","version":"1.16.0","description":"A declarative form component with inbuilt validation and state management","main":"./lib/index.js","license":"MIT","private":false,"author":{"name":"Lukas Aichbauer","email":"l.aichbauer@gmail.com","url":"https://lukasaichbauer.com/"},"scripts":{"docz:dev":"docz dev","docz:build":"docz build","lint":"eslint src --fix","pretest":"npm run lint","test":"jest --coverage --env=jsdom","prepush":"npm run test","build":"rm -rf lib; babel src --out-dir lib","prepare":"npm run build"},"keywords":["react","form","react-form-package"],"repository":{"type":"git","url":"git+https://github.com/aichbauer/react-form-package.git"},"bugs":{"url":"https://github.com/aichbauer/react-form-package/issues"},"homepage":"https://aichbauer.github.io/react-form-package","jest":{"globals":{"__DEV__":true},"collectCoverageFrom":["src/**/*.js"],"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/"]},"peerDependencies":{"react":"^16.4.2","react-dom":"^16.4.2"},"devDependencies":{"@babel/cli":"^7.8.4","@babel/core":"^7.8.4","@babel/plugin-syntax-object-rest-spread":"^7.8.3","@babel/preset-env":"^7.8.4","@babel/preset-react":"^7.8.3","autocapitalize":"^1.0.2","babel-core":"^6.26.3","babel-eslint":"^10.0.3","babel-jest":"^25.1.0","docz":"^2.2.0","docz-plugin-css":"^0.11.0","downshift":"^5.0.0","enzyme":"^3.11.0","enzyme-adapter-react-16":"^1.15.2","eslint":"^6.8.0","eslint-config-airbnb":"^18.0.1","eslint-plugin-import":"^2.20.1","eslint-plugin-jsx-a11y":"^6.2.3","eslint-plugin-react":"^7.18.3","gatsby-plugin-sass":"^2.1.28","husky":"^4.2.3","jest":"^25.1.0","node-sass":"^4.13.1","react":"^16.12.0","react-dom":"^16.12.0","react-test-renderer":"^16.12.0","regenerator-runtime":"^0.13.3","styled-base-components":"^4.0.0","styled-button-component":"^4.0.0","styled-components":"^5.0.1","styled-form-component":"^4.0.0","styled-grid-system-component":"^4.0.0","styled-popover-component":"^4.0.0"},"dependencies":{"input-is":"^2.0.0","prop-types":"^15.6.2","warning-message":"^1.1.0"},"gitHead":"1706e3b4b0c1a808b5fc7192fdf34364dff69c97","_id":"react-form-package@1.16.0","_nodeVersion":"10.23.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-+OzuodObrAt7E5YDid1QNfnFa4zOYV7aFmpoZn7LHTyQivUQy/cZEnSn2jnt8r7t/zkgGJzNttZlj9N5ea23NA==","shasum":"1384b3ce10dcc9684c056e4225d8e0d8ba49469d","tarball":"https://registry.npmjs.org/react-form-package/-/react-form-package-1.16.0.tgz","fileCount":24,"unpackedSize":138182,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfyQ4WCRA9TVsSAnZWagAAwb0P/2vEfr6Ip/agAZUx/UsW\neYveQVAevmtED8N26Uvcli2ivkBv9bBYmwDUsoGxQ3QhnACn6MyQwO/UN7xb\n0T+FPVAMkCrpBFr11Iie5dCgx5/Flyh55MHwpjcXpmx9UAH3rq7vFz+MW1+N\nBFItDGayelDY/Fn2PzC850pedF8QLNfO+5YEliJHfE0ToN1GvmR5y63PDq/Q\nRYM9PAb0X0lB4jhVDHQLZv8b6ApHMpo3bAyu3rzoHji+xTgmDLQyCFHRu8Vq\nz7j514pO0XDdUgjKEV5ArAlwKFVXsTHhkLqSK1Ute2nmJNBAVCWhjpXA4Lm2\newhyoPpdSsv86hCwYy87MTEgGcwijmY/yxfHgSTJqZpVgA5quZrM233omYSp\nrCeeuR5J9+IVr/9SDfWiIo1B7klKALHMX14K119Pk5b4B8GtZEXwR/waA9ep\nGvND8dtJhCTrsYdDHzlSR+pb8UrpVjP2ylj8cNh4UVs0f2pP+y3t4fZoqLsX\nSJoOUdGvBAw2BwZg/YoAVY85zhj80ZVzM6zomRZs5TWUPTaHeuLaPA1CLxWr\niD5w1YCW2ww4uPhko+NN1FbeOToM7056NeyKT3m5r8OYfzBFXYQYZXPMF0+E\n2stZlnlMZ9g8IoYqQxBHAHGN1mbQry0vTipwwWItB4C4jqBQiT5v4y7suT0i\nH6rQ\r\n=G/zl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFjG8Ib9/oAQP1+pDoqIwcOSqoyEzPxHHkjFxuKy7Y0KAiBwm3DCb+kOMvN/neeET5w9H+BooEgsPMXCtkugageXqw=="}]},"_npmUser":{"name":"aichbauer","email":"l.aichbauer@gmail.com"},"directories":{},"maintainers":[{"name":"aichbauer","email":"l.aichbauer@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-form-package_1.16.0_1607011861436_0.9728982513219824"},"_hasShrinkwrap":false}},"time":{"created":"2018-10-04T08:03:15.252Z","1.0.0":"2018-10-04T08:03:15.558Z","modified":"2022-05-14T11:12:28.960Z","1.1.0":"2018-10-15T18:46:19.400Z","1.2.0":"2018-10-24T19:40:47.877Z","1.3.0":"2018-10-29T18:10:27.821Z","1.4.0":"2018-11-07T07:39:04.993Z","1.4.1":"2018-11-07T12:45:34.347Z","1.4.2":"2018-11-13T10:10:09.628Z","1.4.3":"2018-11-13T10:33:19.856Z","1.5.0":"2018-11-19T14:04:07.547Z","1.6.0":"2018-11-19T21:14:04.205Z","1.7.0":"2018-11-20T08:30:02.002Z","1.8.0":"2018-11-20T11:41:32.938Z","1.9.0":"2018-11-20T14:28:25.224Z","1.10.0":"2018-11-22T14:33:21.566Z","1.10.1":"2018-11-23T07:29:02.421Z","1.11.0":"2018-11-23T13:15:43.054Z","1.11.1":"2018-11-23T14:14:37.829Z","1.12.0":"2018-11-24T10:45:56.877Z","1.12.1":"2018-11-24T14:06:38.961Z","1.12.2":"2019-01-21T19:06:55.382Z","1.13.0":"2019-02-05T13:02:17.132Z","1.14.0":"2019-02-08T13:10:40.133Z","1.14.1":"2019-05-29T12:36:51.376Z","1.15.0":"2019-06-08T13:19:52.276Z","1.15.1":"2019-06-27T10:17:39.959Z","1.15.2":"2019-08-02T08:50:10.534Z","1.15.3":"2020-02-16T22:03:09.325Z","1.16.0":"2020-12-03T16:11:01.611Z"},"maintainers":[{"name":"aichbauer","email":"l.aichbauer@gmail.com"}],"description":"A declarative form component with inbuilt validation and state management","homepage":"https://aichbauer.github.io/react-form-package","keywords":["react","form","react-form-package"],"repository":{"type":"git","url":"git+https://github.com/aichbauer/react-form-package.git"},"bugs":{"url":"https://github.com/aichbauer/react-form-package/issues"},"license":"MIT","readme":"# react-form-package\n\n[![npm](https://img.shields.io/npm/v/react-form-package.svg?style=flat-square)](https://www.npmjs.com/package/react-form-package)\n![npm bundle size (minified + gzip)](https://img.shields.io/bundlephobia/minzip/react-form-package.svg?style=flat-square)\n[![Travis branch](https://img.shields.io/travis/com/aichbauer/react-form-package/master.svg?style=flat-square)](https://travis-ci.org/aichbauer/react-form-package)\n[![Codecov branch](https://img.shields.io/codecov/c/github/aichbauer/react-form-package/master.svg?style=flat-square)](https://codecov.io/gh/aichbauer/react-form-package)\n[![storybook](https://img.shields.io/badge/docs%20with-docz-1F2D3D.svg?style=flat-square)](https://aichbauer.github.io/react-form-package)\n\n> A declarative form component with inbuilt validation and state management\n\n## Table of Contents\n\n* [Documentation](https://aichbauer.github.io/react-form-package)\n* [Installation](#installation)\n* [Simple Form](#simple-form)\n* [Components](#components)\n  * [Form](#form)\n  * [Button](#button)\n  * [Field](#field)\n  * [FieldWrapper](#fieldwrapper)\n  * [RadioGroup](#radiogroup)\n  * [Select](#select)\n* [Form Validation](#form-validation)\n* [State](#state)\n* [State Manipulation](#state-manipulation)\n* [Custom Error Messages](#custom-error-messages)\n* [Show Errors on Button Click](#show-errors-on-button-click)\n* [Feedback on Disabled Button](#feedback-on-disabled-button)\n* [Styling](#styling)\n* [Dynamic Fields](#dynamic-fields)\n* [Dynamic Fields 2](#dynamic-fields-2)\n  * [Add new Fields onClick](#add-new-fields-onclick)\n  * [Add new Fields onChange](#add-new-fields-onchange)\n* [Dynamic Fields 3](#dynamic-fields-3)\n* [Bind Input Fields](#bind-input-fields)\n* [Bind Input Fields 2](#bind-input-fields-2)\n* [onFocus, onChange, onBlur](#onfocus-onchange-onblur)\n* [Third Party Components](#third-party-components)\n  * [Autocomplete with Downshift](#autocomplete)\n* [File Upload](#file-upload)\n* [Why?](#why)\n* [License](#license)\n\n## Installation\n\n```sh\n$ npm i react-form-package -S\n```\n\nor\n\n```sh\n$ yarn add react-form-package\n```\n\n## Simple Form\n\n> For more detailed information you can take a look at the [documentation](https://aichbauer.github.io/react-form-package)\n\nThere are five (six) different components within this package. The `<FieldWrapper />` component is only here for edge cases, e.g. working with third party components. So for this simple example we stick to these five:\n\n```jsx\nimport {\n  Button,\n  Field,\n  Form,\n  RadioGroup,\n  Select,\n} from 'react-form-package';\n```\n\nIf you are familiar with writing HTML forms than you are all set up. There are no complex data props or functions that you have to call before you can set up a form and validate its input like in most other libraries. Why should you care about writing the validations for your form yourself? An email, a date, a url, and so on, will always have the same structure. `react-form-package` will not only help you by your forms state management, it also will help you validating your forms correctly.\n\n### Basic Usage\n\n* Every `<Button>`, `<Field>`, `<RadioGroup>`, and `<Select>` component must have an **id property** and a **type property**\n* `<Select>` components have `<option>` childs which must have a **value property**\n* `<RadioGroup>` components have `<input>` childs which must have an **id property**, **type property**, and **name property**\n* If you want the form to valitate inputs and show error messages simply add a **validate prop** on the `<Form>` component\n\nIn this example we use all components and types this library supports:\n\n```jsx\nconst myForm = (props) => (\n<Form\n  validate\n>\n  <div>\n    <div>checkbox</div>\n    <Field type=\"checkbox\" id=\"checkbox\" />\n  </div>\n  <div>\n    <div>textarea</div>\n    <Field rows=\"5\" cols=\"30\" type=\"textarea\" id=\"textarea\" />\n  </div>\n  <div>\n    <div>date</div>\n    <Field type=\"date\" id=\"date\" />\n  </div>\n  <div>\n    <div>datetime-local</div>\n    <Field type=\"datetime-local\" id=\"datetime-local\" />\n  </div>\n  <div>\n    <div>email</div>\n    <Field type=\"email\" id=\"email\" />\n  </div>\n  <div>\n    <div>number</div>\n    <Field type=\"number\" id=\"number\" />\n  </div>\n  <div>\n    <div>tel</div>\n    <Field type=\"tel\" id=\"tel\" />\n  </div>\n  <div>\n    <div>text</div>\n    <Field type=\"text\" id=\"text\" />\n  </div>\n  <div>\n    <div>password</div>\n    <Field type=\"password\" id=\"password\" />\n  </div>\n  <div>\n    <div>time</div>\n    <Field type=\"time\" id=\"time\" />\n  </div>\n  <div>\n    <div>url</div>\n    <Field type=\"url\" id=\"url\" />\n  </div>\n  <div>\n    <div>select</div>\n    <Select id=\"select\" type=\"select\">\n      <option disabled value=\"\">--- Choose an option ---</option>\n      <option value=\"option1\">option 1</option>\n      <option value=\"option2\">option 2</option>\n      <option value=\"option3\">option 3</option>\n    </Select>\n  </div>\n  <div>\n    <div>radio</div>\n    <RadioGroup type=\"radio\" id=\"radio\">\n      <input type=\"radio\" name=\"radio\" id=\"radio1\" />\n      radio 1\n      <input type=\"radio\" name=\"radio\" id=\"radio2\" />\n      radio 2\n      <input type=\"radio\" name=\"radio\" id=\"radio3\" />\n      radio 3\n    </RadioGroup>\n  </div>\n  <div>\n    <Button id=\"submit\" type=\"submit\" onClick={(state) => console.log(state)}>submit</Button>\n  </div>\n</Form>\n);\n```\n\n## Components\n\nFor more detailed information you can take a look at the [documentation](https://aichbauer.github.io/react-form-package).\n\n### Form\n\nThis component is a wrapper for all the other components in this library. This component handles the global state for the form itself.\n\n#### Basic Usage\n\n> For more detailed information you can take a look at the [documentation](https://aichbauer.github.io/react-form-package)\n\nRender a table.\n\n```jsx\nimport { Form } from 'react-form-package';\n\nconst myForm = (props) => (\n  <Form>\n    {/*\n      here comes your form\n      mix HTML with other\n      components from this\n      library: e.g.\n      <Button />\n      <Field />\n      <RadioGroup />\n      <Select />\n    */}\n  </Form>\n);\n```\n\n#### Props\n\nProperty | Type | Required | Default | Description\n---|---|---|---|---\nvalidate| Bool | false | |\nvalidateOnClick| Bool | false | If you want to show the errors of a form on the click of the button |\ninput | Element |  `<input className=\"rfp-input\" />` | |\ncheckbox | Element |  `<input className=\"rfp-checkbox\" />` | |\nradio | Element |  `<input className=\"rfp-radio-group\" />` | |\nradioContainer | Element |  `<div className=\"rfp-radio-group-container\" />` | | The Element that wraps the radio elements.\nbutton | Element |  `<button className=\"rfp-button\" />` | |\nselect | Element |  `<select className=\"rfp-select\" />` | |\ntextarea | Element | `<textarea className=\"rfp-textarea\" />` | |\nerror | Element | `<div className=\"rfp-error-label\" />` | |\n\n### Button\n\nThis component has to be a child within the `<Form />` component. This component gets the state from the `<Form />` component and returns it on its onClick prop. If the `<Form />` component has the validate prop set, the button will be disabled as long as the form is valid.\n\n#### Basic Usage\n\n> For more detailed information you can take a look at the [documentation](https://aichbauer.github.io/react-form-package)\n\nRender a `<Form />` with a `<Button />` component.\n\n```jsx\nimport {\n  Form,\n  Button,\n} from 'react-form-package';\n\nconst myForm = (props) => (\n<Form>\n  <div>\n    <Button\n      id=\"submit\"\n      type=\"submit\"\n      onClick={state => alert(JSON.stringify(state, null, 2))}\n      onMouseEnter={(e, state) => console.log(e, state)}\n      onMouseLeave={(e, state) => console.log(e, state)}\n    >\n      Click me to see the state of the form\n    </Button>\n  </div>\n</Form>\n);\n```\n\n#### Props\n\nProperty | Type | Required | Default | Description\n---|---|---|---|---\nid | String | true | |\ntype | String | true | | `submit`\nonClick | Func | false | | returns the state of the form\nonMouseEnter | Func | false | | returns the event and the state of the form\nonMouseLeave | Func | false | | returns the event and the state of the form (does not work on `disabled` buttons)\nrfpRole | String | false | | only needed for [dynamically added fields](#dynamic-field-2), either `addField` or `removeField`\nfieldId | String | false | | only needed for [dynamically added fields](#dynamic-field-2) on a button with rfpRole `removeField` (the id of the field to remove)\nfield | Object | false | | only needed for [dynamically added fields](#dynamic-field-2) on a button with rfpRole `addField`. This object holds at least `id`, `type`, and may hold `min`, `max`, `required`, `match`, `sameAs`\n\n### Field\n\nThis component has to be a child within the `<Form />` component. This component handles its own state and on any state change it will report it to the `<Form />` component which validates the whole form.\n\n#### Basic Usage\n\n> For more detailed information you can take a look at the [documentation](https://aichbauer.github.io/react-form-package)\n\nRender a `<Form />` with an email `<Field />` and a `<Button />` component.\n\n```jsx\nimport {\n  Form,\n  Field,\n} from 'react-form-package';\n\nconst myForm = (props) => (\n  <Form>\n    <div>\n      <div>Email</div>\n      <div>\n        <Field id=\"email\" type=\"email\" reuqired />\n      </div>\n    </div>\n  </Form>\n);\n```\n\n#### Props\n\nProperty | Type | Required | Default | Description\n---|---|---|---|---\nid | String | true | |\ntype | String | true | | `checkbox`, `date`, `textarea`, `datetime-local`, `email`, `number`, `tel`, `text`, `password`, `time`, `url`, `file`\nrequired | Bool | false | false |\nmin | String (digit or date (YYYY-MM-DD)) | false | | `text`, `textarea`, `password`: has to have at least `min` characters; `number`, `date`: has to be at least `min`\nmax | String (digit or date (YYYY-MM-DD)) | false | | `text`, `textarea`, `password`: has to have at least `min` characters; `number`, `date`: has to be at least `min`\nmatch | RegEx | false | | the input value has to match the `regular expression`\nsameAs | String | the input value has to have the same value as the input field with the id specified in `sameAs`\npreOnChange | Func | false | | manipulate the state before its validated (see [State Manipulation](#state-manipulation))\nerrorMessage | String | false | | define your own custom error message for the input\nonFocus | Func | false | | get access to the state of the form when the user focus on the input\nonChange | Func | false | | get access to the state of the form when the user changes the input\nonBlur | Func | false | | get access to the state of the form when the user blurs the input\ndynamic | Bool | false | | only needed for [dynamically added fields](#dynamic-field-2)\nfield | Object | false | | only needed for [dynamically added fields](#dynamic-field-2). This object holds at least `id`, `type`, and may hold `min`, `max`, `required`\nbintTo | String | false | | only needed for [binding input fields](#bind-input-fields). The id of the inpu you want to manipulate\nbindToCallback | Func | false | | only needed for [binding input fields](#bind-input-fields). The callback to set the target's (`bindTo`) input value, which gets called `onChange`\n\n### FieldWrapper\n\n> This component is here for edge cases where you get the state from another component and you have to pass it to the `<Form />` component manually, e.g. third party components.\n\nThis component has to be a child within the `<Form />` component. This component exposes three additional props to its child component so that you are able to use third party components.\n\n#### Basic Usage\n\n```jsx\nimport {\n  Form,\n  FieldWrapper,\n} from 'react-form-package';\n```\n\nRender a `<Form />` with an `<FieldWrapper />` and a `<Button />` component.\n\nTake a look into the [Third Party Components Section](#third-party-components) to see how you can use this component properly.\n\n```jsx\n  <Form>\n    <div>\n      <FieldWrapper type=\"text\" id=\"fieldwrapper\">\n        {/*\n          Render a child component that gets access to\n\n          onFocus\n          onBlur\n          onChange\n        */}\n      </FieldWrapper>\n    <div>\n      <Button id=\"submit\" type=\"submit\" onClick={(state) => {\n        alert(JSON.stringify(state, null, 2));\n        alert('open the console to see the whole state...');\n        console.log(state);\n      }}\n      >Submit</Button>\n    </div>\n  </Form>\n```\n\n#### Props\n\nProperty | Type | Required | Default | Description\n---|---|---|---|---\nid | String | true | |\ntype | String | true | | `checkbox`, `date`, `textarea`, `datetime-local`, `email`, `number`, `tel`, `text`, `password`, `time`, `url`, `file`\nrequired | Bool | false | false |\nmin | String (digit or date (YYYY-MM-DD)) | false | | `text`, `textarea`, `password`: has to have at least `min` characters; `number`, `date`: has to be at least `min`\nmax | String (digit or date (YYYY-MM-DD)) | false | | `text`, `textarea`, `password`: has to have at least `min` characters; `number`, `date`: has to be at least `min`\nmatch | RegEx | false | | the input value has to match the `regular expression`\nsameAs | String | the input value has to have the same value as the input field with the id specified in `sameAs`\npreOnChange | Func | false | | manipulate the state before its validated (see [State Manipulation](#state-manipulation))\nerrorMessage | String | false | | define your own custom error message for the input\n\n#### Props that get exposed to the child component\n\nTo see how you can use this properties take a look at [Third Party Components](#third-party-components)\n\nProperty | Type | Required | Default | Description\n---|---|---|---|---\nonFocus | Func | false | | pass your `value` to this function to update the state of the `<Form />` component\nonChange | Func | false | | pass your `value` to this function to update the state of the `<Form />` component\nonBlur | Func | false | | pass your `value` to this function to update the state of the `<Form />` component\nmeta | Object | false | | get access to the state of the `<FieldWrapper />` component (see [State](#state))\n\n### RadioGroup\n\nThis component has to be a child within the `<Form />` component. This component must have `<input />` components with the type=\"radio\" as children. These children components must have a name prop which has to match the parents id. The id of the children will be the value of the `<RadioGroup />` component when clicked.\n\n#### Basic Usage\n\n> For more detailed information you can take a look at the [documentation](https://aichbauer.github.io/react-form-package)\n\nRender a `<Form />` with a `<RadioGroup />` component.\n\n```jsx\nimport {\n  Form,\n  RadioGroup,\n} from 'react-form-package';\n\nconst myForm = (props) => (\n  <Form>\n    <div>Choose an option</div>\n    <RadioGroup type=\"radio\" id=\"option\">\n      <div>\n        <div>option 1</div>\n        <input type=\"radio\" name=\"option\" id=\"option1\" />\n      </div>\n      <div>\n        <div>option 2</div>\n        <input type=\"radio\" name=\"option\" id=\"option2\" />\n      </div>\n      <div>\n        <div>option 3</div>\n        <input type=\"radio\" name=\"option\" id=\"option3\" />\n      </div>\n    </RadioGroup>\n  </Form>\n);\n```\n\n#### Props\n\nProperty | Type | Required | Default | Description\n---|---|---|---|---\nid | String | true | |\ntype | String | true | | `radio`\nrequired | Bool | false | false |\npreOnChange | Func | false | | manipulate the state before its validated (see [State Manipulation](#state-manipulation))\nerrorMessage | String | false | | define your own custom error message for the input\nonFocus | Func | false | | get access to the state of the form when the user focus on the input\nonChange | Func | false | | get access to the state of the form when the user changes the input\nonBlur | Func | false | | get access to the state of the form when the user blurs the input\nbintTo | String | false | | only needed for [binding input fields](#bind-input-fields). The id of the inpu you want to manipulate\nbindToCallback | Func | false | | only needed for [binding input fields](#bind-input-fields). The callback to set the target's (`bindTo`) input value, which gets called `onChange`\n\n### Select\n\nThis component has to be a child within the `<Form />` component. This component must have `<option />` components with an value prop as children.\n\n#### Basic Usage\n\n> For more detailed information you can take a look at the [documentation](https://aichbauer.github.io/react-form-package)\n\nRender a `<Form />` with a `<Select />` and a `<Button />` component.\n\n```jsx\nimport {\n  Form,\n  Select,\n} from 'react-form-package';\n\nconst myForm = (props) => (\n  <Form>\n    <div>Select an option</div>\n    <Select id=\"select\" type=\"select\">\n      <option disabled value=\"\">\n        --- Select an option ---\n      </option>\n      <option value=\"option1\">option 1</option>\n      <option value=\"option2\">option 2</option>\n      <option value=\"option3\">option 3</option>\n    </Select>\n  </Form>\n);\n```\n\n#### Props\n\nProperty | Type | Required | Default | Description\n---|---|---|---|---\nid | String | true | |\ntype | String | true | | `select`\nrequired | Bool | false | false |\npreOnChange | Func | false | | manipulate the state before its validated (see [State Manipulation](#state-manipulation))\nerrorMessage | String | false | | define your own custom error message for the input\nonFocus | Func | false | | get access to the state of the form when the user focus on the input\nonChange | Func | false | | get access to the state of the form when the user changes the input\nonBlur | Func | false | | get access to the state of the form when the user blurs the input\nbintTo | String | false | | only needed for [binding input fields](#bind-input-fields). The id of the inpu you want to manipulate\nbindToCallback | Func | false | | only needed for [binding input fields](#bind-input-fields). The callback to set the target's (`bindTo`) input value, which gets called `onChange`\n\n## Form Validation\n\nAlmost any form needs validation in some way. Fortunatly `react-form-package` comes with an declarative inbuild validation system.\n\nWhat does decalrative mean in that way?\n\n### Basic Example\n\nIf you want that your input field only allows valid emails you can add the type `email` to the `<Field />` component. If you also set `validate` property on the `<Form />` component the button only allowes to submit if the form is completely valid.\n\nIn the next example you are able to submit the form if the input is empty (because this field is not required) and if the input value is set to a valid email, but not if the input value is not a valid email.\n\n```jsx\n<Form\n  validate\n>\n  <div>\n    Email\n    <div>\n      <Field type=\"email\" id=\"email\" />\n    </div>\n  </div>\n  <div>\n    <Button\n      type=\"submit\"\n      id=\"submit\"\n      onClick={(state) => {\n        alert(JSON.stringify(state, null, 2));\n        alert('open the console to see the whole state...');\n        console.log(state);\n      }}\n    >\n      Submit\n    </Button>\n  </div>\n</Form>\n```\n\nIf you add the property `required` to the `<Field />` component, everything stays the same except that you are not able to submit the form if the input value is empty.\n\n```jsx\n<Form\n  validate\n>\n  <div>\n    Email\n    <div>\n      <Field type=\"email\" id=\"email\" required />\n    </div>\n  </div>\n  <div>\n    <Button\n      type=\"submit\"\n      id=\"submit\"\n      onClick={(state) => {\n        alert(JSON.stringify(state, null, 2));\n        alert('open the console to see the whole state...');\n        console.log(state);\n      }}\n    >\n      Submit\n    </Button>\n  </div>\n</Form>\n```\n\n### Type validation\n\nA `<Field />` component can have diffferent `type` properties.\n\nAdditionally to the validation, if the browser supports HTML5 input types the input fields will be displayed as them, only allowing numbers by default if the type is set to `number`, etc. If the browser does not support HTML5 it will automatically uses a text input that keeps the validation. If the user inputs a non numeric character in a `number` input it will display the the error message and you cannot submit the form.\n\nType| Description \n---|---\n`checkbox` | `no` additional validation\n`date` | validates if the input value matches the format `YYYY-MM-DD`\n`textarea` | `no` additional validation\n`datetime-local` | validates if the input value matches the format `YYYY-MM-DDTHH:MM`\n`email` | validates if the input value matches the `standard email format`\n`number` | validates if the input value matches a `valid number`\n`tel` | validates if the input value matches the `standard phone number format`\n`text` | `no` additional validation\n`password` | `no` additional validation\n`time` | validates if the input value matches the format `HH:MM`\n`url` | validates if the input value matches the `standard url format`\n`file` | `no` additional validation\n\n### Additional rules\n\nIf you are using a `<Field />` component you can also add some additional rules for the validation.\n`required` will work on all components, the `<Field />`, the `<RadioGroup />`, and the `<Select />`\n\nProperty | Type | Description\n---|---|---\n`required` | Bool | validates if the `input value is not empty`\n`min` | String (digit or date (YYYY-MM-DD)) | `text`, `textarea`, `password`: validates if the input value is at least `min characters long`; `number`, `date`: validates if the input value is at least `min`\n`max` | String (digit or date (YYYY-MM-DD)) | `text`, `textarea`, `password`: validates if the input value is maximum `max characters long`; `number`, `date`: validates if the input value is maximum `max`\n`match` | Regex | validates if the input value matches the `regular expression`\n`sameAs` | String | validates if the input of this field has the same value as the field specified in `sameAs`\n`validate` | Func | a function that gets access to the value of the field `(value) => // write your own validation` (do not forget to write your own errorMessage)\n\nExample with the `required`, `min`, `max`, `validate`, and `sameAs` properties:\n\n```jsx\n<Form\n  validate\n>\n  <div>\n    Text required, min, max\n    <div>\n      <Field type=\"text\" id=\"text\" min=\"2\" max=\"5\" required />\n    </div>\n  </div>\n  <div>\n    Number required, min, max\n    <div>\n      <Field type=\"number\" id=\"number\" min=\"2\" max=\"5\" required />\n    </div>\n  </div>\n  <div>\n    Text is required and has to validate the `validate` function (value === 'react')\n    <div>\n      <Field type=\"text\" id=\"validate\" validate={(value) => value === 'react'} errorMessage={'This field is required\\\\nThis field has to match \"react\"'}  required />\n    </div>\n  </div>\n  <div>\n    Date required, min, max\n    <div>\n      <Field type=\"date\" id=\"date\" min=\"2018-12-12\" max=\"2018-12-24\" required />\n    </div>\n  </div>\n  <div>\n    Password has to be the same as password 2\n    <div>\n      <Field type=\"password\" id=\"password\" sameAs=\"password2\" required />\n    </div>\n  </div>\n  <div>\n    Password 2 has to be the same as password\n    <div>\n      <Field type=\"password\" id=\"password2\" sameAs=\"password\" required />\n    </div>\n  </div>\n  <div>\n    <Button\n      type=\"submit\"\n      id=\"submit\"\n      onClick={(state) => {\n        alert(JSON.stringify(state, null, 2));\n        alert('open the console to see the whole state...');\n        console.log(state);\n      }}\n    >\n      Submit\n    </Button>\n  </div>\n</Form>\n```\n\nExample with the match property:\n\n```jsx\n<Form\n  validate\n>\n  <div>\n    Text required and has to match \"react\"\n    <div>\n      <Field type=\"text\" id=\"text\" match={/react/} required />\n    </div>\n  </div>\n  <div>\n    <Button\n      type=\"submit\"\n      id=\"submit\"\n      onClick={(state) => {\n        alert(JSON.stringify(state, null, 2));\n        alert('open the console to see the whole state...');\n        console.log(state);\n      }}\n    >\n      Submit\n    </Button>\n  </div>\n</Form>\n```\n\nThis is just a simple example, off course you are able to pass any regular expression you would like. If you would like to customize the error messages take a look at [custom error messages](#custom-error-messages)\n\n## State\n\n> Working with the state data and meta data\n\nA simple Example of how your Form could look like:\n\n```jsx\n<Form>\n  <Field id=\"email\" type=\"email\" required />\n  <Field id=\"password\" type=\"password\" required />\n  <Button\n    id=\"button\"\n    type=\"submit\"\n    onClick={(state) => this.handleOnClick(state)}\n  >\n    Submit\n  </Button>\n</Form>\n```\n\n> You can also use `onFocus`, `onChange`, and `onBlur` on every `Field`, `Select`, or `RadioGroup` components to get access to the state of the form ([more info](#onfocus-onchange-onblur))\n\nAs you can see the `<Button />` component has a `onClick` property. This property takes a function. The `handleOnClick` function could look something like:\n\n```js\nasync handleOnClick(state) {\n  // do something with the state\n  // e.g. send data to a server\n  try {\n    const response = await fetch('https://server.com/login', {\n      method: 'POST',\n      headers: {\n        'Content-Type': 'application/json; charset=utf-8',\n      },\n      body: JSON.stringify(state.data);\n    });\n    // do something with the response\n  } catch(error) {\n    // do something with the error\n  }\n}\n```\n\nAs you can see the `state` parameter is an object. It has three different properties.\n\n* **data**: `object`\n* **meta**: `object`\n* **formValid**: `boolean`\n\nIn our case `data` would hold:\n\n```js\n{\n  \"data\": {\n    \"email\": \"\",\n    \"password\": \"\"\n  }\n}\n```\n\n`meta` would hold:\n\n```js\n{\n  \"meta\": {\n    \"email\": {\n      \"initialValue\": \"\",\n      \"dirty\": false,\n      \"pristine\": true,\n      \"visited\": false,\n      \"touched\": false,\n      \"value\": \"\",\n      \"valid\": false,\n      \"invalid\": true,\n      \"rules\": {\n        \"type\": \"email\",\n        \"min\": undefined,\n        \"max\": undefined,\n        \"sameAs\": undefined,\n        \"match\": undefined,\n        \"required\": true,\n      }\n    },\n    \"password\": {\n      \"initialValue\": \"\",\n      \"dirty\": false,\n      \"pristine\": true,\n      \"visited\": false,\n      \"touched\": false,\n      \"value\": \"\",\n      \"valid\": false,\n      \"invalid\": true,\n      \"rules\": {\n        \"type\": \"password\",\n        \"min\": undefined,\n        \"max\": undefined,\n        \"sameAs\": undefined,\n        \"match\": undefined,\n        \"required\": true,\n      }\n    }\n  }\n}\n```\n\n`formValid` would hold:\n\n```js\n{\n  \"formValid\": false\n}\n```\n\n### Meta Description\n\nMeta data gives you an overview of what happened on that field. E.g. if a field is `pristine` you could deside to not send its data to the server since, nothing changed.\n\nProperty | Type | Description\n---|---|---\ninitialValue | `String` or `Bool` |\ndirty | `Bool` | `true` if the `value !== initialValue`\npristine | `Bool` | `true` if the `value === initialValue`\nvisited | `Bool` | `true` if this field was focused (`onFocus`)\ntouched | `Bool` | `true` if this field was blurred (`onBlur`)\nvalue | `String` or `Bool` |\nvalid | `Bool` | `true` if this field is valid (passed all rules)\ninvalid | `Bool` | `true` if this field is invalid (failed at least one rules)\nrules | `object` | the rules for the validation of this field\nrules.type | `String` | `checkbox`, `date`, `textarea`, `datetime-local`, `email`, `number`, `tel`, `text`, `password`, `time`, `url`, `radio`, `select`\nrules.min | `Number` or `String` (YYYY-MM-DD) |  `text`, `textarea`, `password`: this field has to have at least `min` characters; `number`, `date`: this field has to be at least `min`\nrules.max | `Number` or `String` (YYYY-MM-DD) |  `text`, `textarea`, `password`: this field has to have maximum `max` characters; `number`, `date`: this field has to be maximum `max`\nrules.match | `RegEx` | thie fields has to match the regular expression\nrules.sameAs | `String` | thie fields has to have the same value as the field with id `sameAs` (e.g. password fields)\nrules.required | `Bool` | this field is required (has to have a value)\n\n## State Manipulation\n\n> How to manipulate the state before it is validated\n\nSometimes you need to manipulate the value of a input. It is not recommended, but there are some edge cases and situations where this comes in handy, e.g. you have an input and you have to ensure that the user capitalizes the first letter, e.g. on names.\n\nFor this use cases there is a property called `preOnChange`. This property takes a function that returns the new value of the input. You can only manipulate the value of the current input field.\n\nThe next example manipulates the input value that it always capitalizes the first letter of every word in the input field.\n\n```jsx\n<Form\n  validate\n>\n  <div>\n    <div>\n      Name:\n    </div>\n    <Field \n      id=\"name\"\n      type=\"text\"\n      // `value` is the current value of the input field\n      preOnChange={(value) => autocapitalize(value, 'words')}\n      required\n    />\n  </div>\n  <div>\n    <Button\n      id=\"submit\"\n      type=\"submit\"\n      onClick={(state) => {\n        alert(JSON.stringify(state, null, 2));\n        alert('open the console to see the whole state...');\n        console.log(state);\n      }}\n    >\n      Submit\n    </Button>\n  </div>\n</Form>\n```\n\n## Custom Error Messages\n\nIf you want to display your own error messages, use the `errorMessage` property on the `<Field />`, `<Select/>`, or `<RadioGroup/>` component.\n\n```jsx\n<Form>\n  <div>\n    <div>Email</div>\n    <Field id=\"email\" type=\"email\" required errorMessage=\"This is a custom error message!\" />\n  </div>\n</Form>\n```\n\n## Show Errors on Button Click\n\nIf you want to display the the erros on the button click you need to add the prop `validateOnClick` to the form.\nWhen using the prop `validateOnClick` the state is also returned in the `onClick` function. You can check with\n`state.formValid` if the data is valid and here you can start your request or whatever you need todo with the information.\n\n```jsx\n<Form\n  validate\n  validateOnClick\n>\n  <div>\n    <div>Email</div>\n    <Field id=\"email\" type=\"email\" required />\n  </div>\n  <div>\n    <Button type=\"submit\" id=\"submit\" onClick={(state) => {\n        if (state.formValid) {\n          alert(JSON.stringify(state, null, 2));\n          alert('open the console to see the whole state...');\n          console.log(state);\n        }\n\n        // do something else if form data is not valid\n      }}>\n      Submit\n    </Button>\n  </div>\n</Form>\n```\n\n## Feedback on Disabled Button\n\nSometimes it is necessary to show an informal error message to the user when is hovering on a disabled button (which means the form is not valid yet).\n\nFor this example we use a popover for our disabled button that gives the user a hint what should be filled.\n\nFirst import all the components that we need. We use [styled-bootstrap-components](https://aichbauer.github.io/styled-bootstrap-components) for our popup. You could also use a toast or something similar to indicate the user what fields are open.\n\n```js\nimport {\n  Form,\n  Field,\n  Button,\n} from 'react-form-package';\nimport {\n  Popover,\n  PopoverArrow,\n  PopoverBody,\n  PopoverHeader,\n} from 'styled-bootstrap-component';\n```\n\nNext we make use of the buttons `onMouseEnter` function (unfortunatly the `onMouseLeave` function does not work on disabled buttons so we can not use it to hide the popover), and a `setTimeout` to hide the popover.\n\n```js\nclass PopoverHint extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      top: 0,\n      left: 0,\n      hidden: true,\n      notValidFields: '',\n    };\n\n    this.handlePopover = this.handlePopover.bind(this);\n  }\n\n  handlePopover(ev, state) {\n    const { hidden } = this.state;\n\n    let notValidFields = Object.entries(state.meta).map((entry) => {\n      if (!entry[1].valid) {\n        return entry[0];\n      }\n    });\n\n    notValidFields = notValidFields.filter((i) => i !== undefined);\n\n    if (!state.formValid) {\n      this.setState({\n        top: ev.target.offsetTop - ev.target.offsetHeight,\n        left: ev.target.offsetLeft + ev.target.offsetWidth,\n        hidden: !hidden,\n        notValidFields: notValidFields.join(),\n      }, () => {\n        const { hidden: h } = this.state;\n        setTimeout(() => this.setState({\n          hidden: !h,\n        }), 1500);\n      });\n    }\n  }\n\n  render() {\n    const {\n      top,\n      left,\n      hidden,\n      notValidFields,\n    } = this.state;\n\n    return (\n      <Form\n        validate\n        input={<FormControl />}\n        button={<Btn primary mt=\"3px\" mb=\"3px\" />}\n      >\n        <Field type=\"email\" id=\"email\" required />\n        <div>\n          <Button\n            danger\n            onClick={(state) => {\n              alert(JSON.stringify(state, null, 2));\n              alert('open the console to see the whole state...');\n              console.log(state);\n            }}\n            onMouseEnter={(e, state) => this.handlePopover(e, state)}\n          >\n            Hover button to show which fields are not valid\n          </Button>\n          <Popover\n            hidden={hidden}\n            style={{\n              top: `${top}px`,\n              left: `${left}px`,\n            }}\n            right\n          >\n            <PopoverArrow right />\n            <PopoverHeader right>You need to fill out this fields</PopoverHeader>\n            <PopoverBody right>{notValidFields}</PopoverBody>\n          </Popover>\n        </div>\n      </Form>\n    );\n  }\n}\n\nexport { PopoverHint };\n```\n\nNow we render the `<PopoverHint />` and see the result.\n\n```js\n  <PopoverHint />\n```\n\n## Styling\n\nTo style this form you have three different options, all requires to pass a React component to a form prop.\n\n### CSS-in-JS\n\n> In this section we will use a library that uses `styled-components` to style our form\n\nFirst you have to import the this library and the Form Components you want to use for your styling. In this example we will use [styled-bootstrap-components](https://aichbauer.github.io/styled-bootstrap-components).\n\n```jsx\nimport {\n Form,\n Field,\n Button,\n} from 'react-form-package';\nimport {\n  Label,\n  FormGroup,\n  FormControl,\n  Column,\n  Button as Btn,\n} from 'styled-bootstrap-components';\n```\n\nThe next step is to create you form and pass the styled components as props to the `<Form />` component\n\n```jsx\n  <Form\n    input={<FormControl />}\n    button={<Btn primary mt=\"3px\" mb=\"3px\" />}\n  >\n    <FormGroup row nomb>\n      <Column sm={6}>\n        <FormGroup>\n          <Label>Email</Label>\n          <Field id=\"email\" type=\"email\" placeholder=\"Email\" />\n        </FormGroup>\n      </Column>\n      <Column sm={12}>\n        <Button id=\"submit\" type=\"submit\" onClick={(state) => console.log(state)} primary>Submit</Button>\n      </Column>\n    </FormGroup>\n  </Form>\n```\n\n### style prop\n\n> In this section we will use a the `style` prop to style our form\n\nTo style your form pass components to the `<Form />` component that are styled with the style tag. When you create your own `<input />`, `<button />` components do not forget do bind functions like `onClick`, `onChange`, `onFocus`, `onBlur`. This functions are needed to make `react-form-package` work properly.\n\n```jsx\nconst MyButton = (props) => (\n  <button\n    type=\"submit\"\n    style={{\n      margin: '10px 0px',\n      padding: '8px 24px',\n      borderRadius: '5px',\n      border: 'none',\n      background: '#7FDBFF',\n      color: '#001f3f',\n      cursor: 'pointer',\n    }}\n    onClick={props.onClick}\n  >\n    {props.children}\n  </button>\n);\n\nconst MyInput = (props) => (\n  <input\n    style={{\n      margin: '10px 0px',\n      padding: '8px 3px',\n      border: '1px solid #7FDBFF',\n      borderRadius: '5px',\n      color: 'black',\n    }}\n    value={props.value}\n    placeholder={props.placeholder}\n    onChange={props.onChange}\n    onBlur={props.onBlur}\n    onFocus={props.onFocus}\n  />\n);\n```\n\nThe next step is to simply create you form and pass the styled components as props to the `<Form />` component\n\n```jsx\n  <Form\n    button={<MyButton />}\n    input={<MyInput />}\n  >\n    <div>\n      Email\n    </div>\n    <Field type=\"email\" id=\"email2\" placeholder=\"Email\" />\n    <Button type=\"submit\" id=\"submit2\" onClick={(state) => console.log(state)}>Submit</Button>\n  </Form>\n```\n\n### CSS and className\n\n> In this section we will use a the `className` prop and a css file to style our form\n\nTo style your form pass components to the `<Form />` component that have `className` prop and use css files (make sure to have an appropriate loader for your bundler).\n\n```css\n.button {\n  background: #001f3f;\n  border: 1px solid black;\n  padding: 8px 24px;\n  border-radius: 3px;\n  color: white;\n  cursor: pointer;\n}\n\n.input {\n  margin: 10px 0px;\n  padding: 8px 3px;\n  border: 1px solid #001f3f;\n  border-radius: 5px;\n}\n```\n\nImport your `CSS file` to your application and make sure you have a loader for css.\n\n```jsx\nimport './style.css';\n\nconst MyClassNameButton = (props) => (\n  <button\n    clssName=\"button\"\n  >\n    {children}\n  </button>\n);\n\nconst MyClassNameInput = (props) => (\n  <input\n    className=\"input\"\n    value={props.value}\n    placeholder={props.placeholder}\n    onChange={props.onChange}\n    onBlur={props.onBlur}\n    onFocus={props.onFocus}\n  />\n);\n```\n\nThe next step is to create you form and pass the styled components as props to the `<Form />` component.\n\n```jsx\n  <Form\n    button={<MyClassNameButton />}\n    input={<MyClassNameInput />}\n  >\n    <div>\n      Email\n    </div>\n    <Field type=\"email\" id=\"email2\" placeholder=\"Email\" />\n    <Button type=\"submit\" id=\"submit2\" onClick={(state) => console.log(state)}>Submit</Button>\n  </Form>\n```\n\n### Passing props\n\nTo actually make your own components working with `react-form-package` you have to pass some props.\n\n#### components\n\n* The `Prop` is the prop on the `<Form />` component.\n* `HTML` is the actual HTML element to use.\n* `Props` are the props you have to pass these components e.g. `id={prop.id} or id={this.prop.id}` or  `onChange={prop.onChange} or onChange={this.prop.onChange}`.\n* `Info` shows you which props you have to bind.\n\nProp | HTML | Props | Info\n---|--- | --- | ---\ninput | input | `id`, `type`, `onChange`, `onBlur`, `onFocus` |\ncheckbox | input | `id`,`type`, `onChange`, `onBlur`, `onFocus` |\nradio | div | `id`,`type`, `onChange`, `onBlur`, `onFocus`, `children` | this is a wrapper that renders every child, and watch out for `<input type=\"radio\" value=\"someValue\" name=\"theIdRadioGroup\" />` and handles their state\nbutton | input | `id`, `type`, `onClick`, `children` |\nselect | select | `id`, `type`, `onChange`, `onBlur`, `onFocus`, `children` | this is a wrapper that renders every child, and watch out for `<option value=\"someValue\" />` and handles their state\ntextarea | textarea | `id`, `type`, `onChange`, `onBlur`, `onFocus` |\n\nA `textarea` example:\n\n```jsx\nconst myTextarea = (props) => (\n  <textarea\n    id={props.id}\n    type={props.type}\n    onChange={props.onChange}\n    onBlur={props.onBlur}\n    onFocus={props.onFocus}\n  />\n);\n```\n\n## Dynamic Fields\n\nSometimes you need to create your `Form` out of dynamic data, e.g. from data you received from a server. This is mostly the case when using `checkboxes`, `radio groups`, or `select fields`.\n\nFor example: you could receive the data from the server and than use `setState` to set the data for your `checkboxes`, `radio groups`, and `select fields` used in your `<Form />` component.\n\n```js\nasync componentDidMount() {\n  const response = await getDataFromServer();\n\n  this.setState({\n    checkboxData: response.data.checkboxData,\n    selectData: response.data.selectData,\n    radioData: response.data.radioData,\n  });\n}\n```\n\nThan in your render function you would return something like:\n\n```jsx\n<Form>\n  <div>\n    {checkboxData.map((checkbox) => (\n      <div>\n        <div>{checkbox.name}</div>\n        <Field id={checkbox.id} type=\"checkbox\" />\n      </div>\n    ))}\n  </div>\n  <div>\n    <Select type=\"select\" id=\"select\">\n      <option\n        disabled\n        value=\"\"\n      >\n        --- Select an option ---\n      </option>\n      {selectData.map((selectOption) => (\n        <option value={selectOption.value}>{selectOption.name}</option>\n      ))}  \n    </Select>\n  </div>\n  <div>\n    <RadioGroup type=\"radio\" id=\"radioID\">\n      {radioData.map((radioOption) => (\n        <div>\n          <div>{radioOption.name}</div>\n          <input type=\"radio\" name=\"radioID\" id={radioOption.id} />\n        </div>\n      ))}  \n    </RadioGroup>\n  </div>\n  <div>\n    <Button type=\"submit\" id=\"submit\" onClick={(state) => {\n        alert(JSON.stringify(state, null, 2));\n        alert('open the console to see the whole state...');\n        console.log(state);\n      }}>\n      Submit\n    </Button>\n  </div>\n</Form>\n```\n\n## Dynamic Fields 2\n\nSometimes you do not know how many fields your form should have, so you need a way to add dynamic fields on user events, e.g. on a button click if a user should decide if a new field is needed, or on a change of a field, e.g. when a field is filled a new field should appear.\n\n### Add new Fields onClick\n\nFirst off, import your components.\n\n```js\nimport React from 'react';\nimport {\n  Form,\n  Field,\n  Button,\n} from 'react-form-package';\n```\n\nThe next step is to create a `class` that will render our form.\n\nThe state is allways handled by `react-form-package`, the only thing that you need todo is to handle the appearence of the form, e.g. add or remove the input.\n\nWe need create a `addField`, `removeField`, and optionally a `calculateAvailableId` function. The `calculateAvailableId` is only nessacary if you work on non unique index-based ids so that you ensure you do not overide an existing id.\n\nThe `addField` function is here to add a new Field when you click on a `<Button />` component.\n\nTo update the state of the `<Form />` component, you need to add a `rfpRole` property and a `field` or a `fieldId` property to a `<Button />` component.\n\nThe `rfpRole` takes a string which is either `addField` or `removeField`. \n\nIf you use the `<Button />` component to add a new field to the state of the form component you need to provide a `field` property which takes an object that represents your new `<Field />` component. This object has to have at least a `id` and a `type`, but you can extend this object with rules like: `min`, `max`, `required`, `match`, and `sameAs`.\n\nIf you use the `<Button />` component to add remove an existing field from the state of the form component you need to provide a `fieldId` property which takes a string: the `id` of the field you want to remove.\n\nIn the state of the `DynamicFields` component you have to create an array where you add refrences to the fields of your dynamic `<Field />` components. To add new fields you need to add a new refrence, so that the part of the DOM rerenders with the new Field Component. To remove the Fields not only from the state of the `<Form />` component but also from the DOM, you need to remove the refrences in your state that the component rerenders that part of the DOM.\n\n```jsx\nclass DynamicFields extends React.Component {\n  constructor(props) {\n    super(props);\n\n    this.state = {\n      // the field refrences that we use to render in our <Form /> component\n      companies: [\n        {\n          id: 'company-0',\n        },\n      ],\n    };\n\n    this.addField = this.addField.bind(this);\n    this.removeField = this.removeField.bind(this);\n    this.calculateAvailableId = this.calculateAvailableId.bind(this);\n  }\n\n  calculateAvailableId() {\n    const {\n      companies,\n    } = this.state;\n\n    const arr = companies.map((item) => parseInt(item.id.split('-')[1], 10));\n\n    let currentHighestId = Math.max(...arr);\n    currentHighestId = currentHighestId !== -Infinity ? currentHighestId : 0;\n\n    const highestAvailableId = currentHighestId + 1;\n\n    return highestAvailableId;\n  }\n\n  addField() {\n    const {\n      companies,\n    } = this.state;\n\n    const highestAvailableId = this.calculateAvailableId();\n\n    // add a new field refrence to the <Form /> component\n    this.setState({\n      companies: companies.concat({ id: `company-${highestAvailableId}` }),\n    });\n  }\n\n  removeField(idx) {\n    const {\n      companies,\n    } = this.state;\n\n    // remove a field refrence to the <Form /> component\n    this.setState({\n      companies: companies.filter((_, index) => idx !== index),\n    });\n  }\n\n  render() {\n    const {\n      companies,\n    } = this.state;\n\n    const highestAvailableId = this.calculateAvailableId();\n\n    return (\n      <Form\n        validate\n      >\n        {/* render the <Field /> components based on our field refrences */}\n        {companies.map((company, idx) => (\n          <div>\n            <Field\n              id={company.id}\n              placeholder={`Company ${company.id.split('-')[1]}`}\n              type=\"text\"\n              required\n            />\n            <Button\n              id=\"removeField\"\n              // add the rfpRole property\n              rfpRole=\"removeField\"\n              type=\"button\"\n              // add the fieldId property to remove the field from the state of the <Form /> component\n              fieldId={company.id}\n              onClick={() => this.removeField(idx)}\n            >\n              Remove Company\n            </Button>\n          </div>\n        ))}\n        <div>\n          <Button\n            id=\"addField\"\n            // add the rfpRole property\n            rfpRole=\"addField\"\n            type=\"button\"\n            // add the field property to add to the state state of the <Form /> component\n            field={{\n              id: `company-${highestAvailableId}`,\n              type: 'text',\n              required: true,\n            }}\n            onClick={() => this.addField()}\n          >\n            Add Company\n          </Button>\n        </div>\n        <div>\n          <Button\n            id=\"submit\"\n            type=\"submit\"\n            onClick={(state) => {\n              alert(JSON.stringify(state, null, 2));\n              alert('open the console to see the whole state...');\n              console.log(state);\n            }}\n          >\n            submit\n          </Button>\n        </div>\n      </Form>\n    );\n  }\n}\n\nexport { DynamicFields };\n```\n\nNow render this Component. Everytime you click on the button `Add Company` you get a new field, and everytime you click on the button `Remove Company` you remove the corresponding field.\n\n### Add new Fields onChange\n\nFirst off, import your components.\n\n```js\nimport React from 'react';\nimport {\n  Form,\n  Field,\n  Button,\n} from 'react-form-package';\n```\n\nThe next step is to create a `class` that will render our form. \n\nEverything stays the same as in the example above, except:\n\nThat we now use a `dynamic` property and the `field` property on the `<Field />` component. the `field` property takes the same properties as in the `<Button />` component. The `dynamic` property indicates that this `<Field />` component is dynamic and adds a new field in the state of the `<Form />` component when this `<Field />` is filled.\n\n```jsx\nclass DynamicFields extends React.Component {\n  constructor(props) {\n    super(props);\n\n    // the field refrences that we use to render in our <Form /> component\n    this.state = {\n      companies: [\n        {\n          id: 'company-0',\n        },\n      ],\n    };\n\n    this.addField = this.addField.bind(this);\n    this.removeField = this.removeField.bind(this);\n    this.calculateAvailableId = this.calculateAvailableId.bind(this);\n  }\n\n  calculateAvailableId() {\n    const {\n      companies,\n    } = this.state;\n\n    const arr = companies.map((item) => parseInt(item.id.split('-')[1], 10));\n\n    let currentHighestId = Math.max(...arr);\n    currentHighestId = currentHighestId !== -Infinity ? currentHighestId : 0;\n\n    const highestAvailableId = currentHighestId + 1;\n\n    return highestAvailableId;\n  }\n\n  addField(state, id) {\n    const {\n      companies,\n    } = this.state;\n\n    const highestAvailableId = this.calculateAvailableId();\n\n    // add a new field refrence to the <Form /> component\n    if (state.data[id] && parseInt(id.split('-')[1], 10) + 1 === highestAvailableId) {\n      this.setState({\n        companies: companies.concat({ id: `company-${highestAvailableId}` }),\n      });\n    }\n  }\n\n  removeField(idx) {\n    const {\n      companies,\n    } = this.state;\n\n    // remove a field refrence to the <Form /> component\n    this.setState({\n      companies: companies.filter((_, index) => idx !== index),\n    });\n  }\n\n  render() {\n    const {\n      companies,\n    } = this.state;\n\n    const highestAvailableId = this.calculateAvailableId();\n\n    return (\n      <Form>\n        {/* render the <Field /> components based on our field refrences */}\n        {companies.map((company, idx) => (\n          <div>\n            <Field\n              id={company.id}\n              placeholder={`Company ${company.id.split('-')[1]}`}\n              type=\"text\"\n              required\n              // add the dynamic property \n              dynamic\n              // add the field property to add to the state state of the <Form /> component\n              field={{\n                id: `company-${highestAvailableId}`,\n                type: 'text',\n                required: true,\n              }}\n              onChange={(state) => this.addField(state, company.id)}\n            />\n            {companies.length && (\n              <Button\n                id=\"removeField\"\n                // add the rfpRole property\n                rfpRole=\"removeField\"\n                type=\"button\"\n                // add the fieldId property to remove the field from the state of the <Form /> component\n                fieldId={company.id}\n                onClick={() => this.removeField(idx)}\n              >\n                Remove Company\n              </Button>\n            )}\n\n          </div>\n        ))}\n        <div>\n          <Button\n            id=\"submit\"\n            type=\"submit\"\n            onClick={(state) => {\n              alert(JSON.stringify(state, null, 2));\n              alert('open the console to see the whole state...');\n              console.log(state);\n            }}\n          >\n            submit\n          </Button>\n        </div>\n      </Form>\n    );\n  }\n}\n\nexport { DynamicFieldsOnChange };\n```\n\nNow render this Component. Everytime you fill out the `<Field />` component you will add a new `<Field />`, and everytime you click on the button `Remove Company` you remove the corresponding field.\n\n## Dynamic Fields 3\n\nWhen you have a part of your form that consists of multiple fields that needs to be dynamic, e.g. `streetname` and `housenumber`. >ou can add multiple fields to the state of the `<Form />` component by simle passing an array of objects to the `field` property instead of a single object. The same way you can remove multiple fields from state of the `<Form />` component, by passing an array of strings to the `fieldId` property instead of a single string.\n\n### Add multiple dynamic fields to the state\n\nFirst off, import your components.\n\n```js\nimport React from 'react';\nimport {\n  Form,\n  Field,\n  Button,\n} from 'react-form-package';\n```\n\nNow create your component:\n\n```jsx\nclass MultipleDynamicFields extends React.Component {\n  constructor(props) {\n    super(props);\n\n    this.state = {\n      companies: [\n        {\n          id: 'street-0',\n        },\n      ],\n    };\n\n    this.addField = this.addField.bind(this);\n    this.removeField = this.removeField.bind(this);\n    this.calculateAvailableId = this.calculateAvailableId.bind(this);\n  }\n\n  calculateAvailableId() {\n    const {\n      companies,\n    } = this.state;\n\n    const arr = companies.map((item) => parseInt(item.id.split('-')[1], 10));\n\n    let currentHighestId = Math.max(...arr);\n    currentHighestId = currentHighestId !== -Infinity ? currentHighestId : 0;\n\n    const highestAvailableId = currentHighestId + 1;\n\n    return highestAvailableId;\n  }\n\n  addField() {\n    const {\n      companies,\n    } = this.state;\n\n    const highestAvailableId = this.calculateAvailableId();\n\n    this.setState({\n      companies: companies.concat({ id: `street-${highestAvailableId}` }),\n    });\n  }\n\n  removeField(idx) {\n    const {\n      companies,\n    } = this.state;\n\n    this.setState({\n      companies: companies.filter((_, index) => idx !== index),\n    });\n  }\n\n  render() {\n    const {\n      companies,\n    } = this.state;\n\n    const highestAvailableId = this.calculateAvailableId();\n\n    return (\n      <Form\n        validate\n      >\n        {companies.map((street, idx) => (\n          <div>\n            <div>\n              <Field\n                id={`${street.id}`}\n                placeholder=\"Street name\"\n                type=\"text\"\n                required\n              />\n            </div>\n            <div>\n              <Field\n                id={`housenumber-${street.id.split('-')[1]}`}\n                placeholder=\"House number\"\n                type=\"number\"\n                required\n              />\n            </div>\n            <Button\n              id=\"removeField\"\n              rfpRole=\"removeField\"\n              type=\"button\"\n              // pass multiple fieldIds \n              // in an array to the \n              // fieldId\n              fieldId={[\n                `${street.id}`,\n                `housenumber-${street.id.split('-')[1]}`,\n              ]}\n              onClick={() => this.removeField(idx)}\n            >\n              Remove Company\n            </Button>\n          </div>\n        ))}\n        <div>\n          <Button\n            id=\"addField\"\n            rfpRole=\"addField\"\n            type=\"button\"\n            // pass multiple field objects \n            // in an array to the \n            // field property\n            field={[\n              {\n                id: `street-${highestAvailableId}`,\n                type: 'text',\n                required: true,\n              },\n              {\n                id: `housenumber-${highestAvailableId}`,\n                type: 'number',\n                required: true,\n              },\n            ]}\n            onClick={() => this.addField()}\n          >\n            Add Company Field\n          </Button>\n        </div>\n        <div>\n          <Button\n            id=\"submit\"\n            type=\"submit\"\n            onClick={(state) => {\n              alert(JSON.stringify(state, null, 2));\n              alert('open the console to see the whole state...');\n              console.log(state);\n            }}\n          >\n            submit\n          </Button>\n        </div>\n      </Form>\n    );\n  }\n}\n\nexport { MultipleDynamicFields };\n```\n\nNow lets render this component and see how you can add and remove multiple fields.\n\n## Bind Input Fields\n\nSometimes a input value depends on another input value, e.g. the use inputs a range of house numbers and you have to calculate the dependend household count. So that the user is able to skip some fields but is also able to chnage the value if the user knows it better.\n\n### Bind an input value to another input value\n\nTo handle such cases there are two properties available on the `<Field />`, the `<RadioGroup />`, and the `<Select />` component.\n\nProperty | Type | Required | Default | Description\n---|---|---|---|---\nbindTo | String, Array | false | | the `id`/`ids` of the field/fields you want to manipulate\nbindToCallback | Func | false | | the callback to set the target's (`bindTo`) input value, which gets called `onChange`\n\n#### Basic Usage\n\nIn our example we bind our first `housenumbers` input to the second `households` input. As long as the bound input field (`bindTo`, in our example the households field) is untouched (not blurred) the `binToCallback` will be executed `onChange` of the field where we have the `bindTo` and `bindToCallback` properties. The `bindToCallback` expects a String as return value, and gets the input value of the current input field `housenumbers`.\n\n```jsx\n<Form>\n  <div>\n    <div>\n      House numbers:\n    </div>\n    <Field\n      id=\"housenumbers\"\n      type=\"text\"\n      placeholder=\"2-7\"\n      // bind this field to field with id `households`\n      bindTo=\"households\"\n      // when this field changes set the value of the\n      // bound field (`households`) to the result of\n      // this function, either a string or a boolean\n      bindToCallback={\n        (value) => {\n          const numbers = value.includes('-')\n            ? value.split('-')\n            : value;\n\n          if (!Array.isArray(numbers)) {\n            return '1';\n          }\n\n          const number1 = parseInt(numbers[0]);\n          const number2 = parseInt(numbers[1]);\n\n          if (!number2 || number2 === number1) {\n            return '1';\n          }\n\n          if (number2 < number1) {\n            return '0';\n          }\n\n          const households = (number2 - number1 + 1).toString();\n\n          return households;\n        }\n      }\n    />\n  </div>\n  <div>\n    <div>\n      Households:\n    </div>\n    <Field \n      id=\"households\"\n      type=\"number\"\n      placeholder=\"6\"\n    />\n  </div>\n  <div>\n    <Button\n      id=\"submit\"\n      type=\"submit\"\n      onClick={(state) => {\n        alert(JSON.stringify(state, null, 2));\n        alert('open the console to see the whole state...');\n        console.log(state);\n      }}\n    >\n      Submit\n    </Button>\n  </div>\n</Form>\n```\n\n## Bind Input Fields 2\n\nSometimes it is not enough to bind the the value of an input field to just one single different input field. So you can also pass an array of ids to the `bindTo` prop. As we learned in the [Bind Input Fields](#bind-input-fields) chapter, the `bindToCallback` is only triggered when the input field to which it is bound was not touched (blurred) yet. This sometimes has a problematic effect, e.g. if you have a select input to choose a email template, but everytime the user switches the select option, the template should be switched, even if the user touched one of the fields it was bound to. This can be achieved if you set a property called `bindToAlways`. If you return a single value from the `bindToCallback` every bound field will be populated with this value. If you want to have different values for each binding thn you can return an array of values. The binding will be in the same order as the order of the `bindTo` array. If the length of the array of the return value of the `bindToCallback` does not match the length of the `bindTo` ids, only the fields with an return value will be populated.\n\n### Bind an input value to another input value\n\nTo handle such cases there are two properties available on the `<Field />`, the `<RadioGroup />`, and the `<Select />` component.\n\nProperty | Type | Required | Default | Description\n---|---|---|---|---\nbindTo | String, Array | false | | the `id`/`ids` of the field/fields you want to manipulate\nbintToAllways | Bool | false | | only needed if you want that the bindToCallback is triggered even the bound input field was already touched (blurred)\nbindToCallback | Func | false | | the callback to set the target's (`bindTo`) input value, which gets called `onChange`\n\n### Basic Usage\n\nIn our example we use `Select` input to choose between different email templates.\n\n```js\n<Form>\n  <div>\n    <div>\n      Email Template:\n    </div>\n    <Select\n      id=\"emailTemplate\"\n      bindTo={[\n        'subject',\n        'body',\n      ]}\n      bindToAlways\n      bindToCallback={(value) => {\n        if(value === 'friends') {\n          return [\n            'What\\'s up?', // subject as it appears first in the `bindTo` prop\n            'Just take a look at this meme...', // body as it appears second in the `bindTo` prop\n          ];\n        }\n\n        return [\n          'Weekly report',\n          'Dear Boss,\\n\\n...\\n...\\n...',\n        ];\n      }}\n    >\n      <option disabled value=\"\">\n        --- Select an email template ---\n      </option>\n      <option value=\"friends\">Friends</option>\n      <option value=\"boss\">Boss</option>\n    </Select>\n  </div>\n  <div>\n    <div>\n      Subject:\n    </div>\n    <Field\n      id=\"subject\"\n      type=\"text\"\n    />\n  </div>\n  <div>\n    <div>\n      Body:\n    </div>\n    <Field\n      id=\"body\"\n      type=\"textarea\"\n      rows=\"5\"\n      cols=\"40\"\n    />\n  </div>\n  <div>\n    <Button\n      id=\"submit\"\n      type=\"submit\"\n      onClick={(state) => {\n        alert(JSON.stringify(state, null, 2));\n        alert('open the console to see the whole state...');\n        console.log(state);\n      }}\n    >\n      Submit\n    </Button>\n  </div>\n</Form>\n```\n\n## onFocus, onChange, onBlur\n\n> get access to the state everytime the user interacts with your form\n\nSometimes, access to the forms state is needed even before the user submits the form. This can be if you want to store the forms state on the server on every change (e.g. every time the user changes a input or everytime the user blurs an input) or you want to check if the users input is already taken (e.g. a user might not be allowed to use a email or a username that is already taken and you want to give the user a fast respond before the user even submits the form).\n\nYou are not able to modify the state on this callbacks since `react-form-package` takes care of the state management, but you can use the state to communicate with a server or change the UI corresponding to the current state.  If you have an edge case where you have to modify the state of the input use `preOnChange` (see [State Manipulation](#state-manipulation)).\n\n### onFocus\n\n```jsx\nimport {\n  Form,\n  Field,\n} from 'react-form-package';\n```\n\nRender a `<Form />` with an email `<Field />` component and a `onFocus` property.\n\n```jsx\n  <Form>\n    {/* do something with the state onFocus */}\n    <Field\n      id=\"email\"\n      type=\"email\"\n      value=\"test@example.com\"\n      onFocus={(state) => console.log(state)}\n    />\n  </Form>\n```\n\n### onChange\n\n```jsx\nimport {\n  Form,\n  Field,\n} from 'react-form-package';\n```\n\nRender a `<Form />` with an email `<Field />` component and a `onChange` property.\n\n```jsx\n  <Form>\n    {/* do something with the state onChange */}\n    <Field\n      id=\"email\"\n      type=\"email\"\n      value=\"test@example.com\"\n      onChange={(state) => console.log(state)}\n    />\n  </Form>\n```\n\n### onBlur\n\n```jsx\nimport {\n  Form,\n  Field,\n} from 'react-form-package';\n```\n\nRender a `<Form />` with an email `<Field />` component and a `onBlur` property.\n\n```jsx\n  <Form>\n    {/* do something with the state onBlur */}\n    <Field\n      id=\"email\"\n      type=\"email\"\n      value=\"test@example.com\"\n      onBlur={(state) => console.log(state)}\n    />\n  </Form>\n```\n\n## Third Party Components\n\n> Working with third party components\n\nSometimes you need to work with third party components to make something work properly, e.g. you need an autocompletion. This `react-form-package` does not provide an autocompletion by default, but luckily you can use third party components within `react-form-package` and keep all the functionality.\n\nTo give you an example of how to create a autocompletion form we use [downshift](https://github.com/paypal/downshift#readme).\n\n`react-form-package` has a `<FieldWrapper />` component. This component exposes four props to the child component: `onFocus`, `onBlur`, `onChange` and `meta`.\n\nThis props are functions that takes exactly one argument: `value`. Which should be a `string` for input fields or a `boolean` for a checkbox.\n\n## Autocomplete\n\nFirst off, import your components.\n\n```js\nimport React from 'react';\nimport Downshift from 'downshift';\nimport {\n  FormControl,\n  Label,\n} from 'styled-bootstrap-components';\n```\n\nThe next step is to create a `Autocomplete` component.\n\nWe use the standard example from the [downshift](https://github.com/paypal/downshift#readme) documentation.\n\nWe use the exposed function props to change the state of the `<Form />`. Take a look at the `onChange` function of the `<Downshift />` component, or the `onFocus` and `onBlur` function on the input component, or the `meta` data used on the `<FormControl />` component.\n\n```jsx\n// ./Autocomplete.js\n\nconst items = [\n  { value: 'apple' },\n  { value: 'pear' },\n  { value: 'orange' },\n  { value: 'grape' },\n  { value: 'banana' },\n];\n\nconst Autocomplete = (props) => (\n  <Downshift\n    // here we are using the onChange function\n    onChange={(item) => props.onChange(item.value)}\n    itemToString={(item) => (item ? item.value : '')}\n  >\n    {({\n      getInputProps,\n      getItemProps,\n      getLabelProps,\n      getMenuProps,\n      isOpen,\n      inputValue,\n      highlightedIndex,\n      selectedItem,\n    }) => (\n      <div>\n        <Label {...getLabelProps()}>Enter a fruit: </Label>\n        <FormControl\n          {...getInputProps({\n            // here we are using the onFocus and onBlur function\n            onFocus: (e) => props.onFocus(e.target.value),\n            onBlur: (e) => props.onBlur(e.target.value),\n            placeholder: 'apple',\n          })}\n          // here we are using the meta data\n          valid={props.meta.touched ? props.meta.valid : undefined}\n          invalid={props.meta.touched ? props.meta.invalid : undefined}\n        />\n        <ul {...getMenuProps()}>\n          {isOpen\n            ? items\n              .filter((item) => !inputValue || item.value.includes(inputValue))\n              .map((item, index) => (\n                <li\n                  {...getItemProps({\n                    key: item.value,\n                    index,\n                    item,\n                    style: {\n                      backgroundColor:\n                        highlightedIndex === index ? 'lightgray' : 'white',\n                      fontWeight: selectedItem === item ? 'bold' : 'normal',\n                    },\n                  })}\n                >\n                  {item.value}\n                </li>\n              ))\n            : null}\n        </ul>\n      </div>\n    )}\n  </Downshift>\n);\n\nexport { Autocomplete };\n```\n\nNow we have to import all components that we need and use our `<","readmeFilename":"README.md","author":{"name":"Lukas Aichbauer","email":"l.aichbauer@gmail.com","url":"https://lukasaichbauer.com/"}}