{"_id":"@carpenjk/prop-x","_rev":"14-8b8330dd4764120fb8a3e2b576b53012","name":"@carpenjk/prop-x","dist-tags":{"latest":"3.0.1"},"versions":{"1.0.0":{"name":"@carpenjk/prop-x","version":"1.0.0","description":"A library for responsive props and prop manipulation.","main":"lib/core.js","scripts":{"build":"babel src -d lib","test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/carpenjk/prop-x.git"},"keywords":["responsive","responsive props","prop","properties","manipulation","styled-components","styled components","css","server side rendering","SSR","prop-x","breakpoint"],"author":{"name":"Jeremy Carpenter"},"license":"Apache-2.0","bugs":{"url":"https://github.com/carpenjk/prop-x/issues"},"homepage":"https://github.com/carpenjk/prop-x#readme","devDependencies":{"@babel/cli":"^7.18.9","@babel/core":"^7.18.9","@babel/preset-env":"^7.18.9","eslint":"^8.20.0","eslint-config-standard":"^17.0.0","eslint-plugin-import":"^2.26.0","eslint-plugin-n":"^15.2.4","eslint-plugin-promise":"^6.0.0"},"publishConfig":{"access":"public"},"gitHead":"55e841a5f7eff15b30dd99c72dc4f0cbf659f418","_id":"@carpenjk/prop-x@1.0.0","_nodeVersion":"14.18.0","_npmVersion":"6.14.15","dist":{"integrity":"sha512-R/bMcOzUnbKLlg374cyBCQ6DlpOF3ImEx3jZnm7ZjQMYM/Ei2ef8fl/1LUcpDEke9QZRudM2mm4gb60vTHH5oA==","shasum":"1c4e52ea1fb2af8e9069d09793a3c2f61ed91f3b","tarball":"https://registry.npmjs.org/@carpenjk/prop-x/-/prop-x-1.0.0.tgz","fileCount":17,"unpackedSize":61059,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDTbDQyVFJRRrlVZHpeLzow3ASyqPb+4SkqLm8mbrJ5cgIhALc5uvKzimiJAiADCDW/zBaXZ1/OWSTmgvBeY4Xyd4ce"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi6U6iACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmorgQ//QckDc7KY2ZmxwMCuENOWtWjVfRMH17gCAl9uZzTJM3g+EGcq\r\nv0pLZjL4ku7L819laxot0cAD1iLh5EopXIlWASa8sN8EWEmBRsf9zdut60a3\r\nOxUpS2a44ATip1L4eqiT/KWUD4PMRITfGlcHaQHjfp0sPnjPuZM37VpJ7RqR\r\nn1cVucysDaO7qJmHIPodCqlNy3bP2LkJvzZUL1akP4CNpB1ZG7gu2xiXJMkP\r\nauTgzrDBh+v5/40lJxHbBEneZOYeFx8rFVUdRkD0KbrqvwbTW4hl9rYge5xI\r\nZ8XtLpKk0BDviY8MCxySH9CX98mgTZj5IsGa6A4g9tIy48r2Gk9+kudhCoSq\r\nrG46EFtO8TUl5FPrBD/CDzyx9ZRbDA9fcFDSgoPe7gMHt5Kb1i6Wu7Dz9PVe\r\nZ/SRD6fvaa2xZZYHHYzHIGOt/LuNSNvtW7OB90u2yMqjFXeZw7PvfKpjLzPy\r\n3ZXQLPbaxnk7mu4ORPzUzRxWswiLPPFSGCElVv43Hx2Pgft5fgwrByB1Uzph\r\n7N80uQsPXTEyscFfuUNU43ipRXz8YyejZJ3ZsvEndq63q/awwmIt7aokIL+q\r\nyY+D9sChFoBR7GfyEpFE26vVCXfGWitI0DUCk14dreeE4iE6s7cw9DhSoMof\r\nkf27L10WSHsddqAzkL6N6GJcv7bz9gwLfTE=\r\n=INGQ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"carpenjk","email":"jcarpenterwebdev@gmail.com"},"directories":{},"maintainers":[{"name":"carpenjk","email":"jcarpenterwebdev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prop-x_1.0.0_1659457186229_0.6962249565446248"},"_hasShrinkwrap":false},"1.0.1":{"name":"@carpenjk/prop-x","version":"1.0.1","description":"A library for responsive props and prop manipulation.","main":"lib/core.js","scripts":{"build":"babel src -d lib","semantic-release":"semantic-release --branches main","commit":"git-cz"},"repository":{"type":"git","url":"git+https://github.com/carpenjk/prop-x.git"},"keywords":["responsive","responsive props","prop","properties","manipulation","styled-components","styled components","css","server side rendering","SSR","prop-x","breakpoint"],"author":{"name":"Jeremy Carpenter"},"license":"Apache-2.0","bugs":{"url":"https://github.com/carpenjk/prop-x/issues"},"homepage":"https://github.com/carpenjk/prop-x#readme","devDependencies":{"@babel/cli":"^7.18.9","@babel/core":"^7.18.9","@babel/preset-env":"^7.18.9","cz-conventional-changelog":"^3.3.0","eslint":"^8.20.0","eslint-config-standard":"^17.0.0","eslint-plugin-import":"^2.26.0","eslint-plugin-n":"^15.2.4","eslint-plugin-promise":"^6.0.0","semantic-release":"^19.0.3"},"publishConfig":{"access":"public"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"7d86a9a846a499f608797ad070cf0f1237f33cf9","_id":"@carpenjk/prop-x@1.0.1","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-dpJAV+2lBQRebtt1tXYc9T/GocUv5YyyN8HFbj9Zg5haece9Svo10b10XySLTYVq/0yquNURlAjlZ7Teu6+zZA==","shasum":"b324bfe4929842186958341933e6b1fa7762ff1a","tarball":"https://registry.npmjs.org/@carpenjk/prop-x/-/prop-x-1.0.1.tgz","fileCount":17,"unpackedSize":60271,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD2K7+VsCesyOmjGI+8ZA1stWUdWCyj2eoednKDrEvkkAIgGT//ybMPjsNddlx+79vGJO/NdfA+7oz5023gUyB5shg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi6YeNACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmofew//flT1kvwG4f4kGTsuF4NTd8L85/QtyoplITFOVyoBqbnBQ3h6\r\nsbe1Io+lokUxrsybbLNmevS0Nvby+4qt6c2++g9Y34eSKNK1SOj23GFGOQ6P\r\nUm4DHsJMjWU24gWnfshj2qDRDku5VFz0wJosFfNZ/TVPSqxx4vjkhnF+iS9w\r\n3AW+0+JuFUgVQLg1uGJ24jlGBn9FHsK+8F5hKky+KEdJWqfT+J7NNUtfNa+G\r\nlRqJF9dszUFJEuJZtkSjezA/72JqCGe0u20LEGSSZ+mvKI7eYacIX6kyB58n\r\nltOxlfztPLYjd7pXETSVo3UfmGvykUQbLsnr1/t0D8D12Am225/hYrsQcBqj\r\nIKkjkSCw53azIAaG1Mi6XpVOfYCVDXyeqsnkwRkviFtXnnjA2vr1yp/vC7YD\r\nyu8H2rpIe+9crccIPHdqwltkiXyDjqbYkFOLgNzt7IGzS1P0P2/E8S+ZM4X0\r\nr2vcICn88pVERISgODhd9GvX+Q+lg25K3W47UfQuQtrllBDCusmDLTbh5KTk\r\nduE47Pr51kmRjyJS5ZGm3dxC/0I/iMPUagi0OCUhps6gh6woBXClOSrBiGEw\r\nD0PnRHz+i9Fyk+DTidYwCqPJgCKGoWqaCwoK8t5fFBb+jADuoHRM8Iyolw2W\r\nkFrMZT59s0Z7Wq6RiLG4lYEDniPJlLbG1oY=\r\n=mtXH\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"carpenjk","email":"jcarpenterwebdev@gmail.com"},"directories":{},"maintainers":[{"name":"carpenjk","email":"jcarpenterwebdev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prop-x_1.0.1_1659471757471_0.39269176634069414"},"_hasShrinkwrap":false},"1.0.2":{"name":"@carpenjk/prop-x","version":"1.0.2","description":"A library for responsive props and prop manipulation.","main":"lib/core.js","scripts":{"build":"babel src -d lib","semantic-release":"semantic-release --branches main","commit":"git-cz"},"repository":{"type":"git","url":"git+https://github.com/carpenjk/prop-x.git"},"keywords":["responsive","responsive props","prop","properties","manipulation","styled-components","styled components","css","server side rendering","SSR","prop-x","breakpoint"],"author":{"name":"Jeremy Carpenter"},"license":"Apache-2.0","bugs":{"url":"https://github.com/carpenjk/prop-x/issues"},"homepage":"https://github.com/carpenjk/prop-x#readme","devDependencies":{"@babel/cli":"^7.18.9","@babel/core":"^7.18.9","@babel/preset-env":"^7.18.9","cz-conventional-changelog":"^3.3.0","eslint":"^8.20.0","eslint-config-standard":"^17.0.0","eslint-plugin-import":"^2.26.0","eslint-plugin-n":"^15.2.4","eslint-plugin-promise":"^6.0.0","semantic-release":"^19.0.3"},"publishConfig":{"access":"public"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"1ea1c4e4eb2ffd6d8fe710c109591e6c1658c3f2","_id":"@carpenjk/prop-x@1.0.2","_nodeVersion":"16.16.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-9Mc5fztLkx4njME2Gm2ggCF6PUMK5ATssKJLfIq3eZf9oT/o4i4xSW303pVzBXbIT+XRC0KXShUdhuA0rqxwvA==","shasum":"0a4c25c8a8ccb9aacfe86890013cfdd20cbb4713","tarball":"https://registry.npmjs.org/@carpenjk/prop-x/-/prop-x-1.0.2.tgz","fileCount":18,"unpackedSize":60320,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDr23EAgQNTalXCWegsvtumdSywNu7jLt3J8+fBJsyqpwIgK/RAsYvZydH/2O+LKHjE47L/6GRoCVdA31UpYekrOeQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi6pPBACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpEQA//WbNS4Lp5gDyqWSWKGtATpNWmytpInFboRE3IBTKaPTWPigLg\r\nfDFuH36zWd8XTLfr/eixWsKwIv3qA31VuuRjn/j2g9TSfjWdrL5wPnPpIuB1\r\nVWO994Er4j2NDP2WLRATKESdP1wujzLIii72fZh973cZ+ULZgaaeIqV24+iV\r\nEPxAECJu2AeMflKtpupNEP1lZuvpnbeLAJhl9CRUcVctTt09c3snR1WLg7wh\r\nc6p2V77LXSiM1F1wFktpajYSM0eNHTMV/NKd9pc63BR9KHtp5CkqrMqTQMQB\r\nkBUMT4FryPRic01ZhDJka5T3bsmolEVsx/kzEDKuSxtiPEXcaUtJvNxuGL0a\r\nrc7E7iQd+1hj6M/fJP17cNx3+QPhs8FBMiMiAPAE3sKG+mthIC/GMfYvXPnG\r\n1O+sOZPwFAkORPckPxXTkfsHL1dgoL5dCk4b2yT9Mlfi1zutopdyCl2LXlY8\r\n36B+OcMOdXkd43mkxgoTigDDEWyeP8SpH97B8xOpYAECJ7/u1yZYr4BZS1Ed\r\n6hDF4zuccGVvFeMMHN0jRXbOfFLQUDODklkVUfduVJOFvITR//IpOYYFwvwd\r\neMyExxc4tCeeTBur+ImfW0RrtLIfYnnCvrZ3BDSkINzw7Cbj2UX7H8y9aaaH\r\nMd/Fja4w4OgAvQEDe3szV07ki2wF0XO5Tis=\r\n=ZERC\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"carpenjk","email":"jcarpenterwebdev@gmail.com"},"directories":{},"maintainers":[{"name":"carpenjk","email":"jcarpenterwebdev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prop-x_1.0.2_1659540417395_0.32431407270537416"},"_hasShrinkwrap":false},"1.0.3":{"name":"@carpenjk/prop-x","version":"1.0.3","description":"A library for responsive props and prop manipulation.","main":"lib/core.js","scripts":{"build":"babel src -d lib","semantic-release":"semantic-release --branches main","commit":"git-cz"},"repository":{"type":"git","url":"git+https://github.com/carpenjk/prop-x.git"},"keywords":["responsive","responsive props","prop","properties","manipulation","styled-components","styled components","css","server side rendering","SSR","prop-x","breakpoint"],"author":{"name":"Jeremy Carpenter"},"license":"Apache-2.0","bugs":{"url":"https://github.com/carpenjk/prop-x/issues"},"homepage":"https://github.com/carpenjk/prop-x#readme","devDependencies":{"@babel/cli":"^7.18.9","@babel/core":"^7.18.9","@babel/preset-env":"^7.18.9","cz-conventional-changelog":"^3.3.0","eslint":"^8.20.0","eslint-config-standard":"^17.0.0","eslint-plugin-import":"^2.26.0","eslint-plugin-n":"^15.2.4","eslint-plugin-promise":"^6.0.0","semantic-release":"^19.0.3"},"publishConfig":{"access":"public"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"0d3643bbe1ed0fe10cf68d78609f73d66a153c8b","_id":"@carpenjk/prop-x@1.0.3","_nodeVersion":"16.17.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-81TiAmkpf7RoxSAtfOGofxBAQPo8Z9TKCV+cNehIvS4DgshGwMOQX9O1xXMqD3K0+oi7h8EmSwLYDaVGBabyCg==","shasum":"1d533ddb3716323e4138dcc1eb99dad7619c9cf6","tarball":"https://registry.npmjs.org/@carpenjk/prop-x/-/prop-x-1.0.3.tgz","fileCount":18,"unpackedSize":60385,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCXL9F1eYzeDUbcanCdWcXQxUksLeHcMcPghIOfMDmQoAIgD+XKOtziUFHk0UKukP2dfoTa39PDVsKinGJCWuNLmIc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjG3z/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoGrA/9FLpHQvWt2YuroRT+iBfrHbi/MPePQviQ2Cj8VVTSmobM6v2K\r\n6B3YPwAi7dd+XWfL27eyCdvDESIp3QDStH1Kue32RgmvZmNA/OP5XvuyYVqs\r\nJipIuf3rpPNPSSrHatOkhY43qb/pyXbFM3XKBxvhY0VVAau71trZyjB860Xb\r\nxnTxWbm7LrRqo4gBwMuEpmTxmniPPGj66ax2tvKk3dQxNdW+6znvEB6wjEbx\r\n5qb/IuYHSERf+yEQ8ycJ0gD18Xz9iVYzqz8j+JYrgDLq9aRos6xkMPQPbZO7\r\nfngzjYfntAJA8TVlpLkkLmKGiClH0aOId90YUsCargrJG+TbxzfRJDKuH61w\r\nSTyI7yCKxshWguJMNRrCqp2Lw4xt5quw9iezRI2Dd0jeKMtypX8PMDYZlr5o\r\nmLguJz78FM0ePZWUK+tcjhfxqz42hh5Z0EZy45nIE4R+aMyG/zAF/Q5xHAcB\r\n4LsdFYE75+Hy99HWuE6LOorG/9kK5x5ZkDb7XyJxLqy0RWfRbjmwWYeJZtvq\r\nQxuSy3NumvHNK8FfQZZaOr73Xtl10NDklWsaoP0kQgej/PvZ2JU+AuDQx4wW\r\n74pA9a9coviK6oBmIgHk10TakiuMuOmtCMjy3746OrC6g18TAglgU2ewfflq\r\n6tkuOAgyHartPvI3pE58i7pUqMv+SK/HSjs=\r\n=nw2E\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"carpenjk","email":"jcarpenterwebdev@gmail.com"},"directories":{},"maintainers":[{"name":"carpenjk","email":"jcarpenterwebdev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prop-x_1.0.3_1662745854903_0.8753331953836117"},"_hasShrinkwrap":false},"1.0.4":{"name":"@carpenjk/prop-x","version":"1.0.4","description":"A library for responsive props and prop manipulation.","main":"lib/core.js","scripts":{"build":"babel src -d lib","semantic-release":"semantic-release --branches main","commit":"git-cz"},"repository":{"type":"git","url":"git+https://github.com/carpenjk/prop-x.git"},"keywords":["responsive","responsive props","prop","properties","manipulation","styled-components","styled components","css","server side rendering","SSR","prop-x","breakpoint"],"author":{"name":"Jeremy Carpenter"},"license":"Apache-2.0","bugs":{"url":"https://github.com/carpenjk/prop-x/issues"},"homepage":"https://github.com/carpenjk/prop-x#readme","devDependencies":{"@babel/cli":"^7.18.9","@babel/core":"^7.18.9","@babel/preset-env":"^7.18.9","cz-conventional-changelog":"^3.3.0","eslint":"^8.20.0","eslint-config-standard":"^17.0.0","eslint-plugin-import":"^2.26.0","eslint-plugin-n":"^15.2.4","eslint-plugin-promise":"^6.0.0","semantic-release":"^19.0.3"},"publishConfig":{"access":"public"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"486b75f340a2bd33e0236bbd2ea1abdd52e79fe8","_id":"@carpenjk/prop-x@1.0.4","_nodeVersion":"16.17.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-Ya8csHcaa86NlT8zS1a5HTYiIlyaJYbfTRIdZRNBFZVLgx//xY0LSvTpm2ip85BKQUjX7QHY7LqWpXtgpgiM7A==","shasum":"237a08fab4f7321e28bd7e3c81a65332e484a983","tarball":"https://registry.npmjs.org/@carpenjk/prop-x/-/prop-x-1.0.4.tgz","fileCount":18,"unpackedSize":60401,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDjZDnZR+r9ApgQRubL3HH+DcNcR5gaCmPcJZshgc5P0AiAKLPrFNqqzr6oaS72exVMwZknicca7kPY0qhAPrqclcw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjNyBqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrKlg//eSU0l0kTPeRKe3GmbPsKDYw1Ry3BhZ/h+mRQZpJ6xu6LYVvs\r\nUvjOqXDJBShU/q5nZGcAGdgnuYP7Uh6P9ocnWuGNnMY8ZNBmWkwtuV+oxDQE\r\nBEeFhCwYH2TKVD5/SCNLkm5WB3fz4dOe4lVZx/e92r7MljNgxnWzZTU87Lab\r\n0puiz81JTg1UY1d3ibiCXsSHmIq/4YqrKU98r6KhPvV7nTnM5UlFTSV8WiQX\r\nWAv95YZuIoB/4vR0dNenX74mAwWrXyqXbLmcWjYpinRqRqgXmzhPxxRUEnNP\r\ngWlCByo2OiNUmcZpSdmoNrJ3pYd4jYMWdmHEbaYXIx4tMyrKs5X5rGVdia92\r\naAgOJu1eRFOb1Baq9PF9bAfILXNcAiSwI7embrN3SNuqaP0AgySAQG8EjgMC\r\nn/x8q64lavspbkB7ALvguJ+Tcr4k0Oq2R/EFaFdAkBoRlOwye1F6lN/EQiij\r\nFHfUf7LVJu1RoGm39znPfuZTwH5HkhC7xUttZ3ml/i/qoVsaHGy6zDeFbD8r\r\nmh6UAdbc2vAGKWsfacNUmQBzPUCefiTrlB15W6ObXVfbtqtVE4nus7EijznG\r\n+MZCr9a/8w4KciOSpGTHpv6cxrraUIw0IsZ/rTw/qH8zgQIcn0InvWrBa5nt\r\nKqfbD0qmb7Hr3WJdupAVH0aMn+U5pasi9qk=\r\n=YdI2\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"carpenjk","email":"jcarpenterwebdev@gmail.com"},"directories":{},"maintainers":[{"name":"carpenjk","email":"jcarpenterwebdev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prop-x_1.0.4_1664557161874_0.24699400623047407"},"_hasShrinkwrap":false},"1.1.0":{"name":"@carpenjk/prop-x","version":"1.1.0","description":"A library for responsive props and prop manipulation.","main":"lib/core.js","scripts":{"build":"babel src -d lib","semantic-release":"semantic-release --branches main","commit":"git-cz"},"repository":{"type":"git","url":"git+https://github.com/carpenjk/prop-x.git"},"keywords":["responsive","responsive props","prop","properties","manipulation","styled-components","styled components","css","server side rendering","SSR","prop-x","breakpoint"],"author":{"name":"Jeremy Carpenter"},"license":"Apache-2.0","bugs":{"url":"https://github.com/carpenjk/prop-x/issues"},"homepage":"https://github.com/carpenjk/prop-x#readme","devDependencies":{"@babel/cli":"^7.18.9","@babel/core":"^7.18.9","@babel/preset-env":"^7.18.9","cz-conventional-changelog":"^3.3.0","eslint":"^8.20.0","eslint-config-standard":"^17.0.0","eslint-plugin-import":"^2.26.0","eslint-plugin-n":"^15.2.4","eslint-plugin-promise":"^6.0.0","semantic-release":"^19.0.3"},"publishConfig":{"access":"public"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"b1ae261f6346d7d56afe74dff4a0fe9d70195d98","_id":"@carpenjk/prop-x@1.1.0","_nodeVersion":"16.17.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-TpuxmoqFnEA7dx1MvkRCVo7hFB+jdX1XbIr4YUgrpjqLZGe1XtKWR8+19I15wLR6Ih9HZbChimQrbnLhl/UhCw==","shasum":"7ee793a550ff1538cdc3178ff733cd0385bd1912","tarball":"https://registry.npmjs.org/@carpenjk/prop-x/-/prop-x-1.1.0.tgz","fileCount":18,"unpackedSize":61619,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD3Yqk1FC8ULNN+BDIqTLF98kV0YUNsOhfS8FYE2JBEkwIhALRjuTQ37pk/9MMrsu5YT4zNlASfhqplr8vb/96hTlQR"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjOgDHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrprg//eLqkH5+aPCISMqYepbCQovft6EjTt4LRWNxoW5Nmy+b9DEje\r\nC7vnWpwWaPZ2FWqvaCs32SDaT1u7uuRcdnOiFtZfjznqs7JpidFnDKCJrj0K\r\nHJdO83x4xqcnzSrFWzDlEqWplrjJrusQTXluZ2c1nF+a6dIaX7btJ6iuyzNK\r\nsyZHLxI87eL96+PGf+RbIBD1VPpn0pljcVNJOAVBM5yUqM54XVksqN7YLfly\r\nUPB461QCU3Kcs/rLAbZk7pnJLKD7z/M0FYJ+JNJ2QnGuUMAPF73axm6nPFr0\r\nQUMPblzzl0hEkeZBBL1aeTh9mOXN0BQLkemlPi1pSUqCmHL88Cl148+4/0yw\r\n/zw3uE/13G80fOtUG4bAIhfruNaRP4UoFtGMzKT/T+6LQsJ/W6DHWt/XUSUk\r\nv40w3y11SEE9EJhd7ZUlDZ10hKILXzgro2yKOmcmQfq201ZYX6+ccImL9Fsu\r\ntaahN6NK9w537SJBKi0Ex8JVmHtPgD7GLfD6re5qA7t6pt9hS6bd50A0260e\r\n9YHC7Zr8LYfOkFLLaFDCPWWvntf9awj4gXHQdRZNJZxbK/gOZ1XLRZvjiUzc\r\n01dr18kURGgfKylg2GrDk/+9+72u3etbUkJzmqBV/c77meWh4w1w4MzFreH+\r\nPigBCEiwUaW7D3gwAl4bXn0kuR1lHNzv3kI=\r\n=8oSP\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"carpenjk","email":"jcarpenterwebdev@gmail.com"},"directories":{},"maintainers":[{"name":"carpenjk","email":"jcarpenterwebdev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prop-x_1.1.0_1664745671019_0.3839779581038474"},"_hasShrinkwrap":false},"1.1.1":{"name":"@carpenjk/prop-x","version":"1.1.1","description":"A library for responsive props and prop manipulation.","main":"lib/core.js","scripts":{"build":"babel src -d lib","semantic-release":"semantic-release --branches main","commit":"git-cz"},"repository":{"type":"git","url":"git+https://github.com/carpenjk/prop-x.git"},"keywords":["responsive","responsive props","prop","properties","manipulation","styled-components","styled components","css","server side rendering","SSR","prop-x","breakpoint"],"author":{"name":"Jeremy Carpenter"},"license":"Apache-2.0","bugs":{"url":"https://github.com/carpenjk/prop-x/issues"},"homepage":"https://github.com/carpenjk/prop-x#readme","devDependencies":{"@babel/cli":"^7.18.9","@babel/core":"^7.18.9","@babel/preset-env":"^7.18.9","cz-conventional-changelog":"^3.3.0","eslint":"^8.20.0","eslint-config-standard":"^17.0.0","eslint-plugin-import":"^2.26.0","eslint-plugin-n":"^15.2.4","eslint-plugin-promise":"^6.0.0","semantic-release":"^19.0.3"},"publishConfig":{"access":"public"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"77d604d37560ee99ae0408907ff5fee72ac37a32","_id":"@carpenjk/prop-x@1.1.1","_nodeVersion":"16.17.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-Zub9M3/8vBeTZECs3CMPOXn9hxgOk5jLNDo8KseKYiUMpo5yyjnH/gMnMdyh0PJJZXebr1EdHMVqxnQ5r+gxaQ==","shasum":"5a3b52999769bc9347b33c40c5ca4f00065afe01","tarball":"https://registry.npmjs.org/@carpenjk/prop-x/-/prop-x-1.1.1.tgz","fileCount":18,"unpackedSize":61890,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDLAwZXb1MBdR7sF3aEuTA0bBKnPB90zokwEIJjFCgM0QIgN8gsF79n2koZ8AEJyad7IUOI4q1spKVa1qztWInSkj4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjOiPRACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpaEQ//X+BBSltUuXHkzfSNbvFoUFh6hIFOUsUhWipE0GnwV9SLfBpK\r\ndzPbA2g4b6WRUjNXOxum9rojEH2JT2O+zIM4OMIzbtrt0giKa4tv65RXwDpf\r\nuJHhssPbZfRPfi0UUVqXH0blwTv+J7kvehwbge2grP+3nzBRJ0lpAspT79xT\r\nnlQIS6QCd6Vqw/DJek+QWvB1N2hnKBnRyUQggDEXuCcAHI2G1AdxxN6nxQAT\r\n6SR4wKw/lePcfIUDcvvDjBqTOYZcQzilZ3abZhDbLqcGxyncBPKlsjKmQgXB\r\noG8AhCoSbzAFCQSadieQ8JxiMRzg5p73d7f0u/xTMzOkypI6UbY/pMPpNOnO\r\na2ARwYdQMwTj+sf4L6KLunzLF9TUlcIAxdrtK6PIW+l2lp3zJRx7e6N51wlb\r\nA09xsX3YSKb3bEs1HyxHYwFzj9UQ+EQ7TQl5sU3+v8I53GWk1AHXo7ki+wZU\r\nClJ9IKaEgmEsJu6vJpptzz7MeB1CWm1NNF2gDJNkKKFpDuCEwJHxVeqD90m2\r\nFSdd3yh68BCoclP70VeuGd/4OzjU14LepEZXHHoJk6iIPDMa7hIFX5fR3mwx\r\n0lPDLxRVAkPpBg5M4Y1Ola9j00Pyy+MRkhmXb5+nsa1yoc+zEFmuC5lQd8Wd\r\nxVmsy4vqzwCQ7Zb05LCHln87spuFdIt3A8s=\r\n=f7Em\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"carpenjk","email":"jcarpenterwebdev@gmail.com"},"directories":{},"maintainers":[{"name":"carpenjk","email":"jcarpenterwebdev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prop-x_1.1.1_1664754641525_0.4842403753491107"},"_hasShrinkwrap":false},"1.1.2":{"name":"@carpenjk/prop-x","version":"1.1.2","description":"A library for responsive props and prop manipulation.","main":"lib/core.js","scripts":{"build":"babel src -d lib","semantic-release":"semantic-release --branches main","commit":"git-cz"},"repository":{"type":"git","url":"git+https://github.com/carpenjk/prop-x.git"},"keywords":["responsive","responsive props","prop","properties","manipulation","styled-components","styled components","css","server side rendering","SSR","prop-x","breakpoint"],"author":{"name":"Jeremy Carpenter"},"license":"Apache-2.0","bugs":{"url":"https://github.com/carpenjk/prop-x/issues"},"homepage":"https://github.com/carpenjk/prop-x#readme","devDependencies":{"@babel/cli":"^7.18.9","@babel/core":"^7.18.9","@babel/preset-env":"^7.18.9","cz-conventional-changelog":"^3.3.0","eslint":"^8.20.0","eslint-config-standard":"^17.0.0","eslint-plugin-import":"^2.26.0","eslint-plugin-n":"^15.2.4","eslint-plugin-promise":"^6.0.0","semantic-release":"^19.0.3"},"publishConfig":{"access":"public"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"8eb21348d0c735211f5065aa5e2fd7857584ac4b","_id":"@carpenjk/prop-x@1.1.2","_nodeVersion":"16.17.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-iOO8CBvkNaB4Dvn8WFsZxuoS5+xacTUb9qjRT91/WgBvxJ+umEiG5sFj1Egvh9/smYnpDThuRO2DC8RsHJ+w9Q==","shasum":"7d46f1e8e89ee5fa65f4e37b1e3ef4487aa257ab","tarball":"https://registry.npmjs.org/@carpenjk/prop-x/-/prop-x-1.1.2.tgz","fileCount":18,"unpackedSize":61894,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCoHXWj3nyvLhZNhTR/zgdZdRz5j3RnhspmsgdZSellYwIgAiadAPZeJAU+98MsPMcRy/DgxuPQkd9AcJrds3EOPvA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjOikvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmppkQ/+JKeWxhj569X+WOYHTBKB5spPyIqsOs8E1huzCbC3sL1QH44Y\r\n8pQwlwvat7br65UnLaxcq8LCLXK2hbHz0zQ11HLY9qNbAEJuZJyeUu4jvu2m\r\nH27S0fNfoxG1oRoFMBpUOyKXbaXDinWS/Lhj0Lbcit08hP9w75CUV6pL+jpD\r\nBvElSWXYmhK7YQFk1TAO/VR7vl2LFvFSMlKBGAP7C7nxRDMfjEVbBXeN9p5z\r\nRgblWOZa2jdpnZLX/p5kRFRd1q0SV0qYnncWysUMulsabmBxF3I5Kr8KVxMb\r\n31enppGGlPNpR20QQqwMRlfFh9OM2WLZX4CkKyKTJFtZ8Hy7ewj4ldtunBgH\r\n+VN8ZVeUMdZg0BpvNmVxZITcK3ZDveEcMkiWhA7T5eqDDFWvnfniZaavBNQi\r\njhEP2h92Z7p16fnBc1KtS9g9ZKAQwFUNzyodGzqdhqbGZsnazIZ51Oa7WjGH\r\nhLodzA9Zo0eIXFALgy0lQbzXgVtdzEfA8DLYnXFp4ltjjuhepmrlhZ0BIrmX\r\nWHoEpME17JI5diH7Y3UEDig9+GluVQ+n0riU3Vv1LFGIsvSzsd7jDrmuHp6o\r\nJRnf3m8x1invZvZrSu4FVAFWX4xKIOjss4qE1EAxnCr3Hr+B54oztsrbI8XP\r\nGXoFaBhmO61B7jnKRePKEuOUDPoxCKRYY38=\r\n=byVm\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"carpenjk","email":"jcarpenterwebdev@gmail.com"},"directories":{},"maintainers":[{"name":"carpenjk","email":"jcarpenterwebdev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prop-x_1.1.2_1664756015598_0.5872629687697613"},"_hasShrinkwrap":false},"1.1.3":{"name":"@carpenjk/prop-x","version":"1.1.3","description":"A library for responsive props and prop manipulation.","main":"lib/core.js","scripts":{"build":"babel src -d lib","semantic-release":"semantic-release --branches main","commit":"git-cz"},"repository":{"type":"git","url":"git+https://github.com/carpenjk/prop-x.git"},"keywords":["responsive","responsive props","prop","properties","manipulation","styled-components","styled components","css","server side rendering","SSR","prop-x","breakpoint"],"author":{"name":"Jeremy Carpenter"},"license":"Apache-2.0","bugs":{"url":"https://github.com/carpenjk/prop-x/issues"},"homepage":"https://github.com/carpenjk/prop-x#readme","devDependencies":{"@babel/cli":"^7.18.9","@babel/core":"^7.18.9","@babel/preset-env":"^7.18.9","cz-conventional-changelog":"^3.3.0","eslint":"^8.20.0","eslint-config-standard":"^17.0.0","eslint-plugin-import":"^2.26.0","eslint-plugin-n":"^15.2.4","eslint-plugin-promise":"^6.0.0","semantic-release":"^19.0.3"},"publishConfig":{"access":"public"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"702f337783be5784daf04b609c1b2fde7e758930","_id":"@carpenjk/prop-x@1.1.3","_nodeVersion":"16.17.1","_npmVersion":"8.15.1","dist":{"integrity":"sha512-xZbQC88abFz+b5irjUa4nsQwnioZtW20tjoo1wbsZvELl2iuMgGuxtXaJXVJ1xyPt/NZWPNSMikNiDMmATvCBQ==","shasum":"a136af9e3c853fe00b9401a37cc6ccc66862b23b","tarball":"https://registry.npmjs.org/@carpenjk/prop-x/-/prop-x-1.1.3.tgz","fileCount":21,"unpackedSize":70954,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIACUCgcxOpRLZiGixT1JpkPep5Yyaqj5yQgb6NtruVQpAiBs+3hCe9r2iRGfVjYCWP0xnTxV/xwdWX/ToQIYIyngpg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjRfuQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqqfA/9Ejugpn3zbqsdFusN03jJYfZRjwROECIt3FLrx97oPd3JXJ3c\r\nwcdk05G/Y75GWfv3HK8Tw2LylqzkVrrQ5EEaR//5f1BtUef72Yt7e6yshvg2\r\nvsJG1pjsuEKa4F08oVDWYlvD3XCbTZUWupiwNaeXzEVhbavkcM0X0IeIgbYF\r\nsVtb31fcW+rgpqmIPRCSXdSnbzrMipkHIvWBYU+Eaz4QEypqDA7wC3hZJOmm\r\nbC2/LIlV8OyIgJl894BxFxsLYKOS9xzt+AWEurEnDswt0lEQaXskk2NSj+1+\r\nxySaYe6cZJA3Z7ufhAWkBvZvnizp5ex5fxMY9Kbxn6IeWbWBQ0sLknWNnemg\r\n5BrLOW+ilIvnDJTSGafRvXK21hP2b/OabPefmzKmP2kYAhh+xwN8jaEhNVy8\r\nRaIqCHlMjSK9vtdeiM1pHxGyUxuSnzBv/ZBdTDxTlGIJG4DO9sxrcFpduUZK\r\nsSOj2/ohsKXQQATWBU8f2NKj/WocDg50P2O0dnb/ZmI/1oY/KgDRaC323o9E\r\nNNXJR1WtaTTcbXqepf8Y06mILCh2czQDwVJU5bK/wPpCIArvAki9+m6+6L0x\r\nCwwc4Q5nhANuVarWzyUEDK8K4rFY/ZjgEaiNBael/PibN1zLld4oRBDGxCUM\r\nrnXOHikN+zGXkW+yM7UwWyqbgaXjcdYqfs0=\r\n=goyh\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"carpenjk","email":"jcarpenterwebdev@gmail.com"},"directories":{},"maintainers":[{"name":"carpenjk","email":"jcarpenterwebdev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prop-x_1.1.3_1665530768280_0.4518848999118248"},"_hasShrinkwrap":false},"2.0.0":{"name":"@carpenjk/prop-x","version":"2.0.0","description":"A library for responsive props and prop manipulation.","main":"lib/core.js","scripts":{"build":"babel src -d lib","semantic-release":"semantic-release --branches main","commit":"git-cz"},"repository":{"type":"git","url":"git+https://github.com/carpenjk/prop-x.git"},"keywords":["responsive","responsive props","prop","properties","manipulation","styled-components","styled components","css","server side rendering","SSR","prop-x","breakpoint"],"author":{"name":"Jeremy Carpenter"},"license":"Apache-2.0","bugs":{"url":"https://github.com/carpenjk/prop-x/issues"},"homepage":"https://github.com/carpenjk/prop-x#readme","devDependencies":{"@babel/cli":"^7.18.9","@babel/core":"^7.18.9","@babel/preset-env":"^7.18.9","cz-conventional-changelog":"^3.3.0","eslint":"^8.20.0","eslint-config-standard":"^17.0.0","eslint-plugin-import":"^2.26.0","eslint-plugin-n":"^15.2.4","eslint-plugin-promise":"^6.0.0","semantic-release":"^19.0.3"},"publishConfig":{"access":"public"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"9fb03dc2e96a3c720fa491a17e0603566e2c0ed8","_id":"@carpenjk/prop-x@2.0.0","_nodeVersion":"16.17.1","_npmVersion":"8.15.1","dist":{"integrity":"sha512-aHMbz2ueBoCK2/CtpivXH1/2ezgbTRdiAgLJRwKIRiPIpHMg3BPUQ/zUTsmoboSg/9Og6Tg7gBMNU2koIuC1LQ==","shasum":"4aaac271c801a9f64ff3086da66a236ce7fa35fd","tarball":"https://registry.npmjs.org/@carpenjk/prop-x/-/prop-x-2.0.0.tgz","fileCount":21,"unpackedSize":70867,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH3lobPYeJ9B+NMXE2hmbRNjENOsv6EE7EKive0CKDLsAiAqikJqO9f88+7tJx5kSevWXXBE4RTb78UCye0DYtv8VQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjRf5CACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr7vBAAn9UIu7mCNLH6JbhrnGjPioNfkRjXi43JNYn+p1HuJwA40W22\r\nZyrg86rUMDAzp7YIux5Xo70hi+PDZXTsstzJ97HbPasZGn9G6XSj32x65QYL\r\nAkkTe+Hf1BqCAJ4KBwVdxaFpGO0/vLNjR9uYbYfGD5gY0nXBsZSqkI1sY996\r\nIzrA7TCvfWwZzbuQ9XtdeQIvMJ6a8d+IlSwFy+FD8/oAAR1G+pfJA4QRWhn6\r\nOeQN0UzojyUBqU/8T3x12I8xpkd96KjXXYEwB3mDQXN2+IWTk3PmpOGsA5+5\r\n30vd+I+SrusPg+GnsPNfin3ZgC89x4Wr4Q+mlk4Pu5iTLFOdBp87PCZ3FnV0\r\nieFE4c4/JQkH8Dyvs18NzJQInNOuWiZK4FtAu/TG333lRxJn7TBzyftHdsMS\r\noTbgSda1YTneWdRCxBadV9zm59igjWGcMKz5lDum21OeuNmglYCyQhg5B/Tu\r\n6RdVwo9BayLUs0IoXsECusuWqzA5krgGKZtf9sHrNWDenlda5CKfhxmLqWqp\r\n5GWi1kiXA+KW1qBn79vgdhnI4nC67dT6EURbsJ4USskbQ7F1uXyIPngEbk9q\r\n/qKGSfw9mVdwasumpSmq/btdkcwLWjd5Kqn5fF2Nv9fovpl5RkqtEMFlFcPd\r\ngYlCiL8BFnbXwDeHcL3T/jtPThq56EueaC0=\r\n=5taP\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"carpenjk","email":"jcarpenterwebdev@gmail.com"},"directories":{},"maintainers":[{"name":"carpenjk","email":"jcarpenterwebdev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prop-x_2.0.0_1665531458636_0.8422551244949892"},"_hasShrinkwrap":false},"2.0.1":{"name":"@carpenjk/prop-x","version":"2.0.1","description":"A library for responsive props and prop manipulation.","main":"lib/core.js","scripts":{"build":"babel src -d lib","semantic-release":"semantic-release --branches main","commit":"git-cz"},"repository":{"type":"git","url":"git+https://github.com/carpenjk/prop-x.git"},"keywords":["responsive","responsive props","prop","properties","manipulation","styled-components","styled components","css","server side rendering","SSR","prop-x","breakpoint"],"author":{"name":"Jeremy Carpenter"},"license":"Apache-2.0","bugs":{"url":"https://github.com/carpenjk/prop-x/issues"},"homepage":"https://github.com/carpenjk/prop-x#readme","devDependencies":{"@babel/cli":"^7.18.9","@babel/core":"^7.18.9","@babel/preset-env":"^7.18.9","cz-conventional-changelog":"^3.3.0","eslint":"^8.20.0","eslint-config-standard":"^17.0.0","eslint-plugin-import":"^2.26.0","eslint-plugin-n":"^15.2.4","eslint-plugin-promise":"^6.0.0","semantic-release":"^19.0.3"},"publishConfig":{"access":"public"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"7d92f500bf68080b500d5ee374facad42775c99f","_id":"@carpenjk/prop-x@2.0.1","_nodeVersion":"16.17.1","_npmVersion":"8.15.1","dist":{"integrity":"sha512-5h42Cei+4wVCT2TQJp+o6KfKshnqgUvbat5Wrrf/NHurpp0fZDw08J4LwNgVy8V6yhQNUe6vbiZtrKMUce1ipA==","shasum":"a236da38d01785fb1b9b0d9034bd183a7cb75bf6","tarball":"https://registry.npmjs.org/@carpenjk/prop-x/-/prop-x-2.0.1.tgz","fileCount":21,"unpackedSize":70930,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDsUVI0h0zwGeiyxOTem0tAkHtpCKUA4g57KrpKZDMpugIgOY47RGAd8zuE4ocf7fi5HEIwbalTvmYB4uJ9qEziG64="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjTxZnACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoCRQ//WNEJjgH2yT+cY9dNCMs+Nbambssj8RrUM1DDtiZ0Fx7n4lcb\r\nwNGwkAxjJehraXZFOA6lZOsEh86A+1VK5P3ZassNenFoFP2QFC+Te6q3RAkw\r\ntUQWkFljk7Ke5nBOXS+MQiwRJQ+fnnFcBOezL35P0r+ADjSqyi2oKLpEiZ7C\r\nsRH9WdFcv5bwTDcsmCpOJeffjaEU3ME83AEycQLUCk4ATZlJ0kQN5wHy2kjp\r\nm6Ni/InxWf4lPq5gmKMfYXfQoaiBM5sg4BL5LsSjZ1LnGN2sd2IJFBhbAruH\r\ncOZtvLfGAuQOLAcdpPz8CLJbhoef9MWRXx8wnf8hBe16ut/qokPQRi9AVoCS\r\ntPpG/OrdfOCIGjF1SMO/+KMLkHRHXtWG9k3NZNm/KLv8y061Rtek/kIkEN0b\r\nI1wWdZMryKaF6oAd9SI7y9akUbZAvxtgO+beSqJwPiMQJz9Lm5w16Qsc4fV0\r\nDq5+cGdMqCBJFX1o9QEtEPCtlyfU4SfW8fbEv2wFGEJK5+/Y5eUMsYu4XFIu\r\nfiHQW9sSrW0NDosbF8c2HqF0NivGtVGWfAVNkRpI2vfL5L5ZFxd2JdKVs8Ua\r\nqneR/hsn/YJR0Ntq3QgVwPx6CC6hzQAo2rKXkllfUrXIAxWkHh9KV6PRMX+a\r\nyDI4tcwjrc/kRvHTjgXSmIULs0LwUkpDwCE=\r\n=6Kzv\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"carpenjk","email":"jcarpenterwebdev@gmail.com"},"directories":{},"maintainers":[{"name":"carpenjk","email":"jcarpenterwebdev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prop-x_2.0.1_1666127463668_0.42344762633604094"},"_hasShrinkwrap":false},"2.0.2":{"name":"@carpenjk/prop-x","version":"2.0.2","description":"A library for responsive props and prop manipulation.","main":"lib/core.js","scripts":{"build":"babel src -d lib","semantic-release":"semantic-release --branches main","commit":"git-cz"},"repository":{"type":"git","url":"git+https://github.com/carpenjk/prop-x.git"},"keywords":["responsive","responsive props","prop","properties","manipulation","styled-components","styled components","css","server side rendering","SSR","prop-x","breakpoint"],"author":{"name":"Jeremy Carpenter"},"license":"Apache-2.0","bugs":{"url":"https://github.com/carpenjk/prop-x/issues"},"homepage":"https://github.com/carpenjk/prop-x#readme","devDependencies":{"@babel/cli":"^7.18.9","@babel/core":"^7.18.9","@babel/preset-env":"^7.18.9","cz-conventional-changelog":"^3.3.0","eslint":"^8.20.0","eslint-config-standard":"^17.0.0","eslint-plugin-import":"^2.26.0","eslint-plugin-n":"^15.2.4","eslint-plugin-promise":"^6.0.0","semantic-release":"^19.0.3"},"publishConfig":{"access":"public"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"3fad05f40ae742684aaf24a6367259d9a1298f0d","_id":"@carpenjk/prop-x@2.0.2","_nodeVersion":"16.17.1","_npmVersion":"8.15.1","dist":{"integrity":"sha512-QlTy5MAnH+XRHI1abyhJqNr1JbSASgyC9yhgYG5beyIM+ICPfikwmIvnL63EM+Bztc4pPhzNcpXQrn3qi9IsZA==","shasum":"75f76f99ae3f62f2f0137b19a41d3416db92c97b","tarball":"https://registry.npmjs.org/@carpenjk/prop-x/-/prop-x-2.0.2.tgz","fileCount":21,"unpackedSize":70992,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDZ0duVN15S6fB6eVGqJhpgwMpO7Ai3N/KLPeJZrAK7ugIgE8K05VSGYUzBedJQaUXJw1K1lVhlkqYZnAT4Ym7WdCo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjUEysACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr5vA//QI35ne7r/IR39AgvgGbIKD0k3cnHeZxKYkvICatF3EpbTD+Q\r\nVoWaclQiVzncOz7PfnkK5mx5QFjAPqBZHt1mYUncQCx1NEPO5SlKmW9fRbDS\r\nzSC4LqUeJQC55g5kjm3kP+pEN+Sh17Ebh22Zw0eCo9qmrukVsjhgq16TCckX\r\nLoSfPSVKHEKZ4/z6rXHWOkDQ9UxPL3B0MK1VsGJQVNwMdOMpNeJ1YqLW9pkh\r\nlcCEM/7ZHpGEv3tNJWvHPbXKsAbFBZCzHLZCql1RmIJe/CzqGL6pXJQqCWOr\r\nxDjDY0H6MIeeosHcjBpypV5tOtqG01aIYdV7c+gMlhtZ64kCYG6ZwSkY+eZr\r\nbaOlti17qXyvZ/VYd8oJFyWMcVf0D1BMkK6pfStnIehjnGLMHInpcEhmL2Jp\r\ndPY/zAeKW4dT+JoBB5h5e4F6VbZAu6qKPzkW5vw2tHthwPRl1XVEcwKXnj7Q\r\npbQUoBRNGr9edJ6UFePVVx0IW4YritK2IQKa0HKF/P5lVVwyD89jh1q8jKyk\r\nCkBfRMV7Uzx7ScmTP7hX2H/yEcUMaeXvHtclu/u/pG4qaApqw8vnc62XEP9C\r\nJGWGRQPEhxgiwgMlKV8QMEUVTHmgVjC7DPX4wC9nZbUL0b41Jk98VX0lryUu\r\n4Mv8mV7FDaiiNPjWrnaFtwqz6nr/juqV7Fo=\r\n=6Tlo\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"carpenjk","email":"jcarpenterwebdev@gmail.com"},"directories":{},"maintainers":[{"name":"carpenjk","email":"jcarpenterwebdev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prop-x_2.0.2_1666206892071_0.14307013387679057"},"_hasShrinkwrap":false},"2.0.3":{"name":"@carpenjk/prop-x","version":"2.0.3","description":"A library for responsive props and prop manipulation.","main":"lib/core.js","scripts":{"build":"babel src -d lib","semantic-release":"semantic-release --branches main","commit":"git-cz"},"repository":{"type":"git","url":"git+https://github.com/carpenjk/prop-x.git"},"keywords":["responsive","responsive props","prop","properties","manipulation","styled-components","styled components","css","server side rendering","SSR","prop-x","breakpoint"],"author":{"name":"Jeremy Carpenter"},"license":"Apache-2.0","bugs":{"url":"https://github.com/carpenjk/prop-x/issues"},"homepage":"https://github.com/carpenjk/prop-x#readme","devDependencies":{"@babel/cli":"^7.18.9","@babel/core":"^7.18.9","@babel/preset-env":"^7.18.9","cz-conventional-changelog":"^3.3.0","eslint":"^8.20.0","eslint-config-standard":"^17.0.0","eslint-plugin-import":"^2.26.0","eslint-plugin-n":"^15.2.4","eslint-plugin-promise":"^6.0.0","semantic-release":"^19.0.3"},"publishConfig":{"access":"public"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"a5bae4f652048bcd6e049b7a66ecccc23ff62e4e","_id":"@carpenjk/prop-x@2.0.3","_nodeVersion":"16.18.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-sXbQKIzf0GlTEQ84EEnx+qLhnF5cwhqkmvdrjk34oNxxjx05cfaMk5aN+jqw/nm5YT+O/udbSVTQq/XSeSdvdQ==","shasum":"41868eedf83bc1ef1ad678fa3407fc8fd0ed7855","tarball":"https://registry.npmjs.org/@carpenjk/prop-x/-/prop-x-2.0.3.tgz","fileCount":21,"unpackedSize":73105,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAW9+CKmQumvITxcx1haitWimln0p0cTxSE+i71J6D6PAiEA3aQbSpIXI89YWb9bYXfGIiEBrspjDEjgzJ6qKuvuoeA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjZVxEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr2PQ/+LZzwISIqk7n4z0JAt/RFVVHSjm2yoWe0fr8U1clEK27zqdvS\r\nLQYWZbDwk2WOMgrhjFv6HEgX6RwIa2JWr9SEMdasijfTkc7idZ+qFaChgxBy\r\n7ogQU79ST5A35jlLoRe8y1YF/REEvU1+LO/y5UNkbtSe/paTTX4kd+kltWYg\r\nMBJYc6/xbWKpFI5XaF3dhxU7dD6NX55nbi1AKw4A0sjvbq4yy8NZvT5NJ5qP\r\n69s0/kLny8hbWP5DaHRb4cOXqgweWVt/q4896OzswTxzvfTuphNsMWHTKP0M\r\n9yQ0+85/XxsHL7zjdnSKNrrEeEIqrg5DFzSfY/0xrVQZIw7qbkk8dIPsbSiU\r\n4lKKRkzp52invwS0Ea1XesM5FVrckECiaCm4tqjDKw6w0B6HKxlB+auM48a2\r\nzu+MWNkpIUi/3KGIejG1xxDbAZbdyM5e7QFemPdqs0KYb2KjOEKOXRUbVubx\r\n642oqVp18/Y+ErIgSotutTADkxSCn9u3LZRGcjT3L+5YwZuBqaRE6Iqtc29X\r\nE2fgxJ7JY0l8hU3kI5wWlKgBjWVHttaVLpEVSphfsptHWDMhibXeBNqKB+7P\r\n9hGubwFmMNn3lcZ4KQVieMtOkgK+Fon3ZGjsPqGafqVMuLirOhogpzXxgTCt\r\n/HADFxm93hM1pw0hgz+01FkxrKtnPlzM+Ko=\r\n=JHtP\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"carpenjk","email":"jcarpenterwebdev@gmail.com"},"directories":{},"maintainers":[{"name":"carpenjk","email":"jcarpenterwebdev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prop-x_2.0.3_1667587140562_0.40699154418262284"},"_hasShrinkwrap":false},"3.0.0":{"name":"@carpenjk/prop-x","version":"3.0.0","description":"A library for responsive props and prop manipulation.","main":"lib/core.js","scripts":{"build":"rimraf ./lib && tsc","semantic-release":"semantic-release --branches main","commit":"git-cz"},"repository":{"type":"git","url":"git+https://github.com/carpenjk/prop-x.git"},"keywords":["responsive","responsive props","prop","properties","manipulation","styled-components","styled components","css","server side rendering","SSR","prop-x","breakpoint"],"author":{"name":"Jeremy Carpenter"},"license":"Apache-2.0","bugs":{"url":"https://github.com/carpenjk/prop-x/issues"},"homepage":"https://github.com/carpenjk/prop-x#readme","devDependencies":{"@babel/cli":"^7.18.9","@babel/core":"^7.18.9","@babel/preset-env":"^7.18.9","@babel/preset-typescript":"^7.18.6","@types/node":"^18.11.17","@types/react":"^18.0.26","@typescript-eslint/eslint-plugin":"^5.46.1","@typescript-eslint/parser":"^5.46.1","cz-conventional-changelog":"^3.3.0","eslint":"^8.29.0","eslint-config-standard":"^17.0.0","eslint-plugin-import":"^2.26.0","eslint-plugin-n":"^15.2.4","eslint-plugin-promise":"^6.0.0","rimraf":"^3.0.2","semantic-release":"^19.0.3","typescript":"^4.9.4"},"publishConfig":{"access":"public"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"peerDependencies":{"react":"17 - 18","react-dom":"17 - 18"},"types":"./lib/core.d.ts","gitHead":"16c86d283535974d5d29feedba9aef80b8d2577c","_id":"@carpenjk/prop-x@3.0.0","_nodeVersion":"16.18.1","_npmVersion":"8.15.1","dist":{"integrity":"sha512-clZrzFjlPOb6B6/9dw054odAoX+ZkVnTaaSnO8KnFPj9uUBR+M2apIb8k2yAU6t26ap3lg9KKEfua7U7TQ/9PQ==","shasum":"f6c264a42e1672d3bd2eb73f91611b33d4528348","tarball":"https://registry.npmjs.org/@carpenjk/prop-x/-/prop-x-3.0.0.tgz","fileCount":26,"unpackedSize":59340,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAVqU/avcYmSfQkXqns+LfLaRRLMwuzkodDU8enFTQ2hAiBhZ537gZnMhumEhyhGBc/Vwbj0JIpB0vIYevyyevYhhQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjtFudACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpFhA/7BGwTBTxcXn/1hjcwYezlLaF6HpvZJUL9OWDG/FfSRXhVY9pI\r\nx1zTGssGYuxqQzO+NlGx6XSo0QllJD1Dq6nyIbe1CqYGJgsZ5683ve1JnFLa\r\naaru8TkkXovlthQGvY4bn7b0S7HwbzKK5wxFh2laQ6dCjLSBYLu1ZlG7umy7\r\nKxsab1UEN/4WYNfs2A+meB4jNKSOILar7NC+swJQrawqHMuUwJlV6TmDSnCr\r\nKJ4WyJ/goSxv00AUYwAf+zmLgkxSEn6hAM4pFc1RLqvFCGbpfKYnK7o/AQ7Q\r\nKv70R16Vw07F5O7moaUq6D3ZNwUktcOnJs/VNIgFJsCRot3I3Of2GkSbUqmF\r\nKy4ZgzrpG0q1dICzh//vpeF7bmcVtFAlEWJx8XUB6YPREO/8UajvFfZdB/nQ\r\n13dUM8L75a2fkMfGy3HI6+tm2S60MOheVZsvls1K81pFYsw0VKVSIDKsKxHW\r\nF4PtWGjywo+9Ea+3gcYSWEFmqIVK3aSBHduw722UD65VjhDhrzzVR5quY8f/\r\nOCJ9RqGBy1q7kooO1w67cHB5fSVkkT947twBARSqlj+nmOTC6JMNcTEt7O6n\r\nB4ZVIYyX1DG743R4BAMPxGG/TaMlf1+xmQ/9Df7VWVc3RsVBofooI2Z0EScA\r\nrqNFm1BTAK3x8rAXDRIDeu5Qr/17fhqyg20=\r\n=2u/7\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"carpenjk","email":"jcarpenterwebdev@gmail.com"},"directories":{},"maintainers":[{"name":"carpenjk","email":"jcarpenterwebdev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prop-x_3.0.0_1672764317287_0.5818923266808764"},"_hasShrinkwrap":false},"3.0.1":{"name":"@carpenjk/prop-x","version":"3.0.1","description":"A library for responsive props and prop manipulation.","main":"lib/core.js","scripts":{"build":"rimraf ./lib && tsc","prepublish":"npm run build","semantic-release":"semantic-release --branches main","commit":"git-cz"},"repository":{"type":"git","url":"git+https://github.com/carpenjk/prop-x.git"},"keywords":["responsive","responsive props","prop","properties","manipulation","styled-components","styled components","css","server side rendering","SSR","prop-x","breakpoint"],"author":{"name":"Jeremy Carpenter"},"license":"Apache-2.0","bugs":{"url":"https://github.com/carpenjk/prop-x/issues"},"homepage":"https://github.com/carpenjk/prop-x#readme","devDependencies":{"@babel/cli":"^7.18.9","@babel/core":"^7.18.9","@babel/preset-env":"^7.18.9","@babel/preset-typescript":"^7.18.6","@carpenjk/prop-x-types":"^1.0.0","@types/node":"^18.11.17","@types/react":"^18.0.26","@typescript-eslint/eslint-plugin":"^5.46.1","@typescript-eslint/parser":"^5.46.1","cz-conventional-changelog":"^3.3.0","eslint":"^8.29.0","eslint-config-standard":"^17.0.0","eslint-plugin-import":"^2.26.0","eslint-plugin-n":"^15.2.4","eslint-plugin-promise":"^6.0.0","rimraf":"^3.0.2","semantic-release":"^19.0.3","typescript":"^4.9.4"},"publishConfig":{"access":"public"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"peerDependencies":{"react":"17 - 18","react-dom":"17 - 18"},"types":"./lib/core.d.ts","gitHead":"411f5b9dd0ced4de1aa391cfd3a3a95b03fdb78a","_id":"@carpenjk/prop-x@3.0.1","_nodeVersion":"16.19.0","_npmVersion":"8.15.1","dist":{"integrity":"sha512-nq3QJdBBS0HpdTSyNe+3C57/XrmJEb8RFeVhZMlBBaZ2BoImoyHG3tzMOzm1Fhp07JHMUpmz8bSbbwkqOiq6qg==","shasum":"c6e808a86b89f2fc8bc2f539eb037f3e90430f82","tarball":"https://registry.npmjs.org/@carpenjk/prop-x/-/prop-x-3.0.1.tgz","fileCount":16,"unpackedSize":50363,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBNPA04O0b9RWSXR2/NkkQvYCm5wX9qG1nzaDHnqLCrWAiAVNIxnc6ClrLXeu6lDV2DHgoPXOyJVjEonqPA4FXnjPg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjxwDYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq8xBAAnujA9uwaKe0JMrE7HrUPlOEsFoyxs8uT/zc+nWSPVLQ8BYiO\r\nXqXQf1dfDjT12lhjRjd8p1FzY+bW/5oPYEof04mDX44osvwzEcPFx+KcDFzr\r\nVCexSO2PuoXJqBKQgTWYxBv89zxXVw8U+c8MDm3AYWYnCI5jLxS+MlYWBtjX\r\nHuPUDvWv3ehZ8uTqnZJlBjFp7euABPvygpk+sdLp6gRqLKtEVyLZGZuq+Qs9\r\nuNoturOXiMVtEWRg79qC9bbXEFvh+5PUTGQimzxI8dR42Dj4gqZnE6auER2K\r\nJOifsWTFqJI3G2FThWoWpZt0wOAElVs2NIg7xNnJZjlRzwwoyd7DkNe5fIus\r\nWne7ECyIaU5zMXUnQLiXqba16Bv3d0TYB5FJ2WCmfzXtl5e/WVeLE2dtrT77\r\nfa1CbheYVVhpYJu6c6gDu+wh0n/JpBuB1YJWrmZmcICglpQ7M6YjaGsPRlO6\r\nlqBhbf4wh4U6aJmBv/uxnegu7hZbPgUQI95VQC5mxyUzCpJhcQ2d/6Ua1R2g\r\nPM8fo+fDv9Lk5SOA4VWADXNHn4fpWoYIBrqI386s0kJjIB/0jW0CTZA7Sm2L\r\n0USKslrDdUzv+F4wzQeiN/pNP5HuLYfVsnV0g7h2S3KN8cwkPUonVXCC9lzU\r\nGiZ5Na/7idzHOYegCJMK54irvByPKEpgLDg=\r\n=UKpJ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"carpenjk","email":"jcarpenterwebdev@gmail.com"},"directories":{},"maintainers":[{"name":"carpenjk","email":"jcarpenterwebdev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prop-x_3.0.1_1673986264645_0.26891567677497497"},"_hasShrinkwrap":false}},"time":{"created":"2022-08-02T16:19:46.151Z","1.0.0":"2022-08-02T16:19:46.416Z","modified":"2023-01-17T20:11:04.919Z","1.0.1":"2022-08-02T20:22:37.595Z","1.0.2":"2022-08-03T15:26:57.624Z","1.0.3":"2022-09-09T17:50:55.065Z","1.0.4":"2022-09-30T16:59:22.061Z","1.1.0":"2022-10-02T21:21:11.233Z","1.1.1":"2022-10-02T23:50:41.736Z","1.1.2":"2022-10-03T00:13:35.764Z","1.1.3":"2022-10-11T23:26:08.462Z","2.0.0":"2022-10-11T23:37:38.847Z","2.0.1":"2022-10-18T21:11:03.840Z","2.0.2":"2022-10-19T19:14:52.248Z","2.0.3":"2022-11-04T18:39:00.723Z","3.0.0":"2023-01-03T16:45:17.428Z","3.0.1":"2023-01-17T20:11:04.841Z"},"maintainers":[{"name":"carpenjk","email":"jcarpenterwebdev@gmail.com"}],"description":"A library for responsive props and prop manipulation.","homepage":"https://github.com/carpenjk/prop-x#readme","keywords":["responsive","responsive props","prop","properties","manipulation","styled-components","styled components","css","server side rendering","SSR","prop-x","breakpoint"],"repository":{"type":"git","url":"git+https://github.com/carpenjk/prop-x.git"},"author":{"name":"Jeremy Carpenter"},"bugs":{"url":"https://github.com/carpenjk/prop-x/issues"},"license":"Apache-2.0","readme":"# prop-x\nA library for for passing for creating, manipulating, and using responsive props in react.\n\n## Introduction\n\nprop-x is a library to facilitate passing multiple values for each react property. The library contains utilities for obtaining the correct value based on a provided index such as a breakpoint. The library contains can be separated into three main categories:\n\n- **Core** Functions for manipulating and retrieving key pair value ojects for usage as 2d props  (i.e  {prop1: [val1, val2, val3], prop2...})\n- **CSS**  Functions for usage with styled-components that facilitate responsive styles within the styled components css.  This is especially helpful for static site generation and server side rendering as now responsive properties can generate responsive css with no reliance on javascript's window object which is unavailable on the server.\n- **Hooks** 2 hooks are available that can be useful with client side only code. These hooks are useBreakpoints and useWindowSize.\n\n## api\n\n| function            \t| path                            \t| description                                                              \t|\n|---------------------\t|---------------------------------\t|--------------------------------------------------------------------------\t|\n| [parseSizeUnits](#parseSizeUnits)      \t| @carpenjk/prop-x                \t| Utility for calculations on size props                                   \t|\n| [parseAndCalc](#parseAndCalc)        \t| @carpenjk/prop-x                \t| Utility for calculations on size props                                   \t|\n| [getPropIndex](#getPropIndex)        \t| @carpenjk/prop-x                \t| Gets usable index for a given prop                                       \t|\n| [getIndexedPropValue](#getPropIndex) \t| @carpenjk/prop-x                \t| Gets prop value for a given index                                        \t|\n| [inverseProp](#inverseProp)         \t| @carpenjk/prop-x                \t| returns array of inversed boolean values                                 \t|\n| [unwindProps](#unwindProps)         \t| @carpenjk/prop-x                \t| transforms prop arrays into an array of object key pair values           \t|\n| [windProps](#windProps)           \t| @carpenjk/prop-x                \t| transforms array of object key pair values into an object of prop arrays \t|\n| [getProp](#getProp)             \t| @carpenjk/prop-x/css            \t| retrieves a prop value for appropriate breakpoint in css in js solutions \t|\n| [breakpoint](#breakpoint)          \t| @carpenjk/prop-x/css            \t| creates media query and tells getProp which breakpoint to use            \t|\n| [condition](#condition)           \t| @carpenjk/prop-x/css            \t| conditional css for css in js solutions                                  \t|\n| [useBreakpoints](#useBreakpoints)      \t| @carpenjk/useBreakpoints \t| hook provides breakpoint and window size state                           \t|\n\n\n## License\n\n[Apache License 2.0](./LICENSE)\n\n## Get Started\n\n\n### Install\n\n```js\n    npm i @carpenjk/prop-x\n```\n\n### Usage\n\n#### Pass 2d Properties\n```js\n          <GridContainer\n            rowHeight={['auto', '250px']}\n            gridWidth={['100%', '80vw']}\n            maxGridWidth={['none','1300px']}\n          />\n```\n#### Use Properties within a styled-component\nThe most common use case is for creating responsive css by way of the getProp and breakpoint functions within a styled component tag function. \n\n##### Theme\nA theme object containing a set of breakpoints must be made available via the styled-components ThemeProvider\n\n```js\n  import { ThemeProvider } from 'styled-components';\n  const theme = {\n    breakpoints: {\n      0: 0,\n      1: 880,\n      2: 1050,\n      3: 1200,\n      4: 1400,\n    }\n  }\n\n<ThemeProvider theme={theme}>\n  <GridContainer\n    rowHeight={['auto', '250px']}\n    gridWidth={['100%', '80vw']}\n    maxGridWidth={['none','1300px']}\n  />\n</ThemeProvider>\n\n```\n\n##### use properties\nProperties indexed by breakpoint can be consumed in a styled component definition with the breakpoint and getProp functions provided in prop-x/css. In this example css is being generated with different height, width, and max-width values for different breakpoints.\n\n```js\nimport styled from 'styled-components';\nimport { breakpoint, getProp } from 'prop-x/css';\n\nconst StyledGrid = styled.div`\n  position: relative;\n  height: ${getProp('gridHeight')};\n  width: ${getProp('gridWidth')};\n  max-width: ${getProp('maxGridWidth')};\n\n  ${breakpoint(1)`\n    height: ${getProp('gridHeight')};\n    width: ${getProp('gridWidth')};\n    max-width: ${getProp('maxGridWidth')};\n\n`;\n\nconst GridContainer = ({ width, height, maxGridWidth }) => {\n  return (\n    <StyledGrid width={width} height={height} maxGridWidth={maxGridWidth}}>\n      {children}\n    </StyledGrid>\n  );\n};\n```\n\n### Full Example with Property manipulation\n```js\nimport styled from 'styled-components';\nimport { breakpoint, getProp } from 'prop-x/css';\nimport { unwindProps, parseSizeUnits, windProps } from 'prop-x';\n\nconst StyledGrid = styled.div`\n  position: relative;\n  display: grid;\n  grid-auto-flow: row dense;\n  grid-template-rows: ${getProp('rowHeight')};\n  grid-auto-rows: ${getProp('rowHeight')};\n  grid-template-columns: ${getProp('gridTemplateColumns')};\n  justify-items: stretch;\n  align-items: stretch;\n  height: ${getProp('gridHeight')};\n  width: ${getProp('gridWidth')};\n  max-width: ${getProp('maxGridWidth')};\n  overflow: hidden;\n\n  > *:last-child {\n    grid-row: unset;\n    grid-column: unset;\n    max-height: unset;\n  }\n\n  & button {\n    width: 100%;\n    height: 100%;\n  }\n  & button > img {\n    flex: none;\n    object-fit: ${getProp('imageFit')};\n    height: 100%;\n    width: 100%;\n    cursor: pointer;\n  }\n  ${breakpoint(1)`\n    display: grid;\n    grid-auto-flow: row dense;\n    grid-template-rows: ${getProp('rowHeight')};\n    grid-auto-rows: ${getProp('rowHeight')};\n    grid-template-columns: ${getProp('gridTemplateColumns')};\n    justify-items: stretch;\n    align-items: stretch;\n    height: ${getProp('gridHeight')};\n    width: ${getProp('gridWidth')};\n    max-width: ${getProp('maxGridWidth')};\n    & button > img {\n      object-fit: ${getProp('imageFit')};\n    }\n    > *:last-child {\n      grid-row: unset;\n      grid-column: unset;\n      max-height: unset;\n    }\n`}\n`;\n\nStyledGrid.defaultProps = {\n  gridWidth: '100%',\n};\n\nfunction calcProps(props) {\n  const {\n    columns,\n    columnWidth,\n    gridHeight,\n    gridWidth,\n    images,\n    maxGridWidth,\n    rows,\n    rowHeight,\n    minColWidth,\n    maxColWidth,\n    rowWidth,\n  } = props;\n\n  function getRowHeight() {\n    if (gridHeight) {\n      const _gridHeight = parseSizeUnits(gridHeight);\n      return `${_gridHeight.value / rows}${_gridHeight.unit}`;\n    }\n    return rowHeight || '1fr';\n  }\n  function getColumnWidth() {\n    const width = columnWidth || '1fr';\n    if (minColWidth && maxColWidth) {\n      return `minmax(${minColWidth}, ${maxColWidth})`;\n    }\n    if (minColWidth) {\n      // do something\n      return `minmax(${minColWidth}, ${width})`;\n    }\n    if (maxColWidth) {\n      return `minmax(${width}, ?${maxColWidth})`;\n    }\n    return width;\n  }\n  const imgCount = images && images.length ? images.length : 0;\n  const _rowHeight = getRowHeight();\n  const gridTemplateColumns = `repeat(${columns}, ${getColumnWidth()})`;\n  return {\n    ...props,\n    columns,\n    columnWidth,\n    gridHeight,\n    gridWidth,\n    gridTemplateColumns,\n    images,\n    imgCount,\n    maxGridWidth,\n    rowHeight: _rowHeight,\n    rows,\n    minColWidth,\n    rowWidth,\n  };\n}\n\nconst GridContainer = ({ images, children, ...props }) => {\n  const calculatedProps = unwindProps({ ...props, images }).map((propsAry) =>\n    calcProps(propsAry)\n  );\n  return (\n    <StyledGrid {...windProps(calculatedProps)}>\n      {children}\n    </StyledGrid>\n  );\n};\n```\n\n## core\n### getPropIndex\n```js\n  const value = getIndexedPropValue(<propValues>, <index>);\n```\n\nThis function returns the applicable index to use for the provided property and index\nThe rules for determining which index is applicable are:\n  - The lesser of provided index and last index in the prop array\n  - Undefined if prop is undefined or not an array\n\n```js\n  const index1 = getPropIndex([\"a\",\"b\",\"c\",\"d\"], 2 ) // 2\n  const index2 = getPropIndex([\"a\",\"b\",\"c\",\"d\"]) 5) // 3\n  const index3 = getPropIndex(\"a\", 2) // undefined\n```\n\n\n### getIndexedPropValue\n```js\n  const i = getIndexedPropValue(<propValues>, <index>);\n```\n\nThis function returns applicable prop value for the provided property values and index\nThe rules for determining which value is applicable are:\n  - The value at the lesser of the provided index and the last index in the prop Array\n  - The prop value if it is not an array\n\n```js\n  const index1 = getIndexedPropValue([\"a\",\"b\",\"c\",\"d\"], 2 ) // \"c\"\n  const index2 = getIndexedPropValue([\"a\",\"b\",\"c\",\"d\"]) 5) // \"d\"\n  const index3 = getIndexedPropValue(\"a\", 2) // \"a\"\n```\n\n**Array** property values must be provided in 2d form (i.e. [[val1, val2,...]]) even if only one array is needed.\n\n### unwindProps\n```js\n  const unwoundProps = unwindProps (<props>, <configObj>);\n```\nThis function transforms and object containing prop arrays into array of single key value pairs. This is useful in combination with Array.prototype.map to apply logic to each set of values corresponding to an index such as a breakpoint. The transformation follows the following rules:\n\n  - By default, the last value for a given property is used to fill the array such that every property has a value at every index unless specifically left undefined (i.e. [1,,,4])\n  - defaultValues (optional) provided in the config object are used to fill missing values in the array. getIndexedPropValue is used to find the applicable default value for each missing property value. \n  - useNoValue option provided in the config object overwrites default functionality and fills the array with undefined instead of carrying forward the last key value. Where a default value has been specified, the default value will still be used.\n  - noValue option provided in the config object overwrites the useNoValue value. This can be used to provide an empty string or any other value for instead of undefined.\n\n\n  ```js\n  const unwoundProps = unwindProps({prop1: [\"val1\", \"val2\", \"val3\"], prop2: [\"val1\", \"val2\", \"val3\"]});\n  // unwoundProps = \n  // [\n  //   {prop1: \"val1\", prop2: \"val\"},\n  //   {prop1: \"val2\", prop2: \"val2\"},\n  //   {prop1: \"val3\", prop2: \"val3\"}\n  // ]\n  \n  //missing prop values are filled in to such that all props have values at each index\n  const unwoundProps = unwindProps({prop1: [\"val1\", \"val2\", \"val3\"], prop2: [\"val1\", \"val2\"]});\n  // unwoundProps = \n  // [\n  //   {prop1: \"val1\", prop2: \"val1\"},\n  //   {prop1: \"val2\", prop2: \"val2\"},\n  //   {prop1: \"val3\", prop2: \"val2\"}\n  // ]\n\n  // single value prop\n  const unwoundProps = unwindProps({prop1: [\"val1\", \"val2\", \"val3\"], prop2: val1})\n  // unwoundProps =\n  // [\n  //   {prop1: \"val1\", prop2: \"val1\"},\n  //   {prop1: \"val2\", prop2: \"val1\"},\n  //   {prop1: \"val3\", prop2: \"val1\"}\n  // ]\n\n  //default values used to fill missing prop2 value at index 2\n  const unwoundProps = unwindProps(\n    {prop1: [\"val1\", \"val2\", \"val3\"], prop2: [\"val1\", \"val2\"]},\n    {defaultValues: {prop1: [\"defVal1\", \"defVal2\", \"defVal3\"], prop2: [\"defVal1\", \"defVal2\", \"defVal3\"}});\n  // unwoundProps = \n  // [\n  //   {prop1: \"val1\", prop2: \"val1\"},\n  //   {prop1: \"val2\", prop2: \"val2\"},\n  //   {prop1: \"val3\", prop2: \"defVal3\"}\n  // ]\n\n  //useNoValue option\n  const unwoundProps = unwindProps(\n    {prop1: [\"val1\", \"val2\", \"val3\"], prop2: [\"val1\", \"val2\"]},\n    {\n      options: {useNoValue: true}\n    }\n  )\n  // unwoundProps = \n  // [\n  //   {prop1: \"val1\", prop2: \"val1\"},\n  //   {prop1: \"val2\", prop2: \"val2\"},\n  //   {prop1: \"val3\", prop2: undefined}\n  // ]\n\n  //useNoValue option with default values\n  const unwoundProps = unwindProps(\n    {prop1: [\"val1\", \"val2\", \"val3\"], prop2: [\"val1\", \"val2\"], prop3: \"val1\"},\n    {\n      defaultValues: { prop2: [\"defVal1\", \"defVal2\", \"defVal3\"},\n      options: {\n        useNoValue: true\n      }\n    }\n  );\n  // unwoundProps = \n  // [\n  //   {prop1: \"val1\", prop2: \"val1\", prop3: \"val1\"},\n  //   {prop1: \"val2\", prop2: \"val2\", prop3: undefined},\n  //   {prop1: \"val3\", prop2: \"defVal3\", prop3: undefined}\n  // ]\n\n  //useNoValue and noValue\n  const unwoundProps = unwindProps(\n    {prop1: [\"val1\", \"val2\", \"val3\"], prop2: [\"val1\", \"val2\"]},\n    {\n      options: {\n        useNoValue: true,\n        noValue: \"\"\n      }\n    }\n  );\n  // unwoundProps = \n  // [\n  //   {prop1: \"val1\", prop2: \"val1\"},\n  //   {prop1: undefined, prop2: \"val2\"},\n  //   {prop1: undefined, prop2: \"\"}\n  // ]\n\n```\n### windProps\n  ```js\n    const windProps = unwindProps (<props>, <configObj>);\n  ```\nThis function transforms an array of single value key pair objects into a single object with array values. It is the opposite of unwindProps and is helpful for transforming property arrays that have gone through unwindProps transformation or for when properties are provided in an unwound format. The transformation follows the following rules:\n  - Missing values are transformed into the default noValue of \"\"\n  - defaultValues (optional) provided in the config object are used to fill missing values in the array. getIndexedPropValue is used to find the applicable default value for each missing property value.\n  - noValue option provided in the config object used to overwrite default noValue\n ```js\n    const windProps = windProps([\n        {\n          top: '100px',\n          left: '50%',\n          transform: 'translateX(-50%)',\n        },\n        {\n          top: '50%',\n          transform: 'translateY(-50%)'\n        }\n      ]);\n\n    // woundProps = {\n    //   top: ['100px', '50%'],\n    //   left: ['50%',''],\n    //   transform:  ['translateX(-50%)', 'translateY(-50%)']\n    // }\n\n    //use no value set to false can be helpful when it's ok to carryforward the property value for all indexes\n    const windProps = windProps([\n      {\n        width: '100%',\n        height: '50vh',\n      },\n      {\n        height: '80vh',\n      }\n    ],{options: {useNoValue: false}});\n\n    // woundProps = {\n    //   width: ['100%'],\n    //   height: ['50vh', '80vh'],\n    // }\n\n    //default values used to fill any missing values\n    const windProps = windProps([\n      {\n        width: '100px',\n        height: '50%',\n      },\n      {\n        height: '50%',\n      },\n      {\n        height:'75%',\n      },\n      {\n        height: '80%',\n      }\n    ],{defaultValues: {width: ['85px', '95px', '100%']}});\n\n    // woundProps = {\n    //   width: ['100px', '95%', '100%', '100%'],\n    //   height: ['50%','50%', '75%', '80%'],\n    // }\n\n    //noValue  used to change value used in instance of no value\n    const windProps = windProps([\n      {\n        top: '100px',\n        left: '50%',\n        transform: 'translateX(-50%)',\n      },\n      {\n        top: '50%',\n        transform: 'translateY(-50%)'\n      }\n    ],{options: {noValue: undefined}});\n\n    // woundProps = {\n    //   top: ['100px', '50%'],\n    //   left: ['50%',undefined],\n    //   transform:  ['translateX(-50%)', 'translateY(-50%)']\n    // }\n  ```\n\n### inverseProp\n```js\n  const inversed = inverseProp([true, false, true]);\n  //inversed = [false, true, false]\n```\nThis function toggles boolean values in an array.\n\n### parseSizeUnits\n```js\n  const parsed = parseSizeUnits(vars);\n```\n\nThis function parses 1 or many string size/unit value (i.e. '100px') into objects with whole, value, unit keys.\n\n```js\n  const parsed = parseSizeUnits('100px');\n  // parsed = {whole: '100px', value: 100, unit: 'px'}\n\n  const parsed = parseSizeUnits('auto');\n  // parsed = {whole: 'auto', value: undefined, unit: undefined}\n\n  const parsed = parseSizeUnits('100');\n  // parsed = {whole: '100', value: 100, unit: undefined}\n\n  const parsed = parseSizeUnits([\"100px\", \"auto\", \"1\", \"200%\"]);\n  // parsed = [\n  //   {whole: '100', value: 100, unit: \"px\"},\n  //   {whole: 'auto', value: undefined, unit: undefined},\n  //   {whole: '1', value: 1, unit: undefined},\n  //   {whole: '200%', value: 200, unit: \"%\"},\n  // ]\n```\n\n### parseAndCalc\n```js\n  const calced = parseAndCalc(vars, ([var1, var2, var3])=> var1+ var2 + var3);\n```\n\nThis function performs parses string/unit variables and passes the values into a provided callback function before returning the results as a value/unit string. It is useful for performing calculations on css size/unit values. The unit applied to the result is derived from the first variable containing a unit. This means some care must be used on the units and order of variables. These are some of the considerations when using this function:\n  - Variables usually must contain the same unit with % units being an exception\n  - Percentage units should always follow the variable with the required result unit\n\n```js\n  const calced = parseAndCalc(['100px', '100px', '200px' ], ([var1, var2, var3])=> var1+ var2 + var3);\n  // calced = \"400px\"\n\n  const calced = parseAndCalc(['100px', '5', '200px' ], ([var1, var2, var3])=> var1 * ar2 - var3);\n  // calced = \"300px\"\n\n  // percentages can be used with other units if always known\n  const calced = parseAndCalc(['100px', '50%', '200px' ], ([var1, var2, var3])=> var1 * (ar2/100) + var3);\n  // calced = \"250px\"\n\n  // percentages can be used with other units if always known\n  const calced = parseAndCalc(['100px', '50%', '200px' ], ([var1, var2, var3])=> var1 * (ar2/100) + var3);\n  // calced = \"250px\"\n\n  // \n  const calced = parseAndCalc(['100px', 'auto', '200px' ], ([var1, var2, var3])=> var2 === 'auto' ? var1 + var2 + 100  : var1  );\n  // calced = \"400px\"\n\n```\n\n## css\n\n### breakpoint\n\n```js\n${breakpoint(breakpointValue)`\n    width: ${getProp('width)};\n    ...\n  `}\n```\n\nThe breakpoint function allows for setting multiple breakpoints within the\ncomponent style. The breakpoint function calls a tag\nfunction in which the styles are inserted. A breakpoint value or array containing starting and ending breakpoint keys must be passed\nto the function as a index of the breakpoints defined in the theme property.\nThe breakpoint value is used by all of other style functions to find the correct\nstyle value from the theme definition.\n\n```js\nconst theme = {\n    breakpoints: {\n      0: 0,\n      1: 880,\n      2: 1050,\n      3: 1200,\n      4: 1400,\n    }\n  }\n\nconst StyledContainer = styled.div`\n  width: 100px;\n  ...\n  ${breakpoint(1)`\n    width: ${getProp('width')};\n    ...\n  `}\n`\nconst Container = (){\n  return (<StyledContainer width={['100px', '200px']} theme={theme}/>)\n}\n\n// produces the following css within the styled-component definition\n//\n// width: 100px;\n// ...\n// @media (min-width: 880px) {\n//    width: 200px;\n//    ...\n// }\n\n```\n\n#### Providing Breakpoints\n\nBreakpoints used by styled-components are passed inside the theme property given to the ThemeContext provider and subsequently passed as a property of the component.\nTheir are 3 supported formats for providing breakpoints:\n\nBreakpoints are supported for 3 formats:\n\n```js\n  import { ThemeProvider } from 'styled-components';\n\n  // Object literal with numerical pixel values\n  const theme = {\n    breakpoints: {\n      0: 0,\n      1: 880,\n      2: 1050,\n      3: 1200,\n      4: 1400,\n    }\n  }\n\n// Object literal with strings !!including pixel units\n// !!note keys may not be castable to a number or all keys must be castable in order to ensure size rankings\n  const theme = {\n    breakpoints: {\n      zero: \"0px\",\n      sm: \"880px\",\n      md: \"1050px\",\n      lg: \"1200px\",\n      xl: \"1400px\",\n    }\n  }\n\n  \n// Array with numerical pixel values\nconst theme = {\n  breakpoints: []\n    0,\n    880,\n    1050,\n    1200,\n    1400,\n  ]\n}\n\n// Array with numerical pixel !!including pixel units\n  const theme = {\n    breakpoints: [\n      \"0px\",\n      \"880px\",\n      \"1050px\",\n      \"1200px\",\n      \"1400px\",\n    ]\n  }\n```\n\n#### Setting Multiple Breakpoints Simultaneously\nMultiple breakpoints can be set simultaneously if they share the same dynamic css properties. This reduces the amount of getProp and breakpoint code.\n\nThe following code set's \n\n```js\nconst theme = {\n    breakpoints: {\n      0: 0,\n      1: 880,\n      2: 1050,\n      3: 1200,\n      4: 1400,\n    }\n  }\n\nconst StyledContainer = styled.div`\n  width: 100px;\n  ...\n  ${breakpoint([1,4])`\n    width: ${getProp('width')};\n    height: ${getProp('height')}\n    ...\n  `}\n`\n\n//width: \n\nconst Container = (){\n  return (<StyledContainer width={['100px', '200px', '300px', '400px', '500px'], height={['10px', '20px', '30px', '40px', '50px']}} theme={theme}/>)\n}\n\n\n// produces the following css within the styled-component definition\n//\n// width: 100px;\n// ...\n// @media (min-width: 880px) {\n//    width: 200px;\n//    height: 20px;\n//    ...\n// }\n// @media (min-width: 1050px) {\n//    width: 300px;\n//    height: 30px;\n//    ...\n// }\n// @media (min-width: 1200px) {\n//    width: 400px;\n//    height: 40px;\n//    ...\n// }\n// @media (min-width: 1400px) {\n//    width: 500px;\n//    height: 50px;\n//    ...\n// }\n\n```\n\n### condition\n```js\n${condition('hide')`\n    display: none;\n    ...\n  `}\n```\nThe condition function allows for conditional css in a styled-components definition based on a truthy/falsy property value.\n\n\n```js\n\nconst StyledContainer = styled.div`\n  display: flex;\n  ...\n  ${condition('hide')`\n    display: none;\n    ...\n  `}\n`\nconst Container = (){\n  return (<StyledContainer hide={true} />)\n}\n\n// produces the following css within the styled-component definition\n//\n// display: flex;\n// ...\n// display: none;\n\n```\n\ncondition can also be used in combination with the breakpoint function.\n\n```js\nconst theme = {\n    breakpoints: {\n      0: 0,\n      1: 880,\n      2: 1050,\n      3: 1200,\n      4: 1400,\n    }\n  }\n\nconst StyledContainer = styled.div`\n  display: flex;\n  ${condition('hide')`\n    display: 'none';\n    ...\n  `}\n  ...\n  ${breakpoint(1)`\n    ${condition('hide')`\n      display: none;\n      ...\n    `}\n  `}\n  \n`\n\nconst Container = (){\n  return (<StyledContainer hide={[false, true]} theme={theme}/>)\n}\n\n// produces the following css within the styled-component definition\n//\n// display: flex;\n// ...\n// @media (min-width: 880px) {\n//    display: none;\n//    ...\n// }\n\n```\n\n## hooks\n### useBreakpoints\n\nUseBreakpoints is a separate package so that prop-x doesn't need to have React as a peer dependency\n\n#### Installation\n\n```\n  npm i @carpenjk/use-breakpoints\n```\n\n#### import\n\n```js\n  import { useBreakpoints } from '@carpenjk/use-breakpoints\n```\n\n#### Usage\nThe useBreakpoints hooks provides access to the breakpoints and related functions and calculated values. It is useful for client side only code that needs to evaluate properties indexed by breakpoints.\n\n```js\nconst breakpoints: {\n    0: 0,\n    1: 880,\n    2: 1050,\n    3: 1200,\n    4: 1400,\n  }\n\nconst br = useBreakpoints(breakpoints);\n\n// assume current window.innerWidth = 1000\n//br = \n// {\n//   br: [0, 880 , 1050, 1200, 1400],\n//   upper: 1050,\n//   lower: 880,\n//   indexofLower: 1,\n//   ratio: 0.838, //(1- (upper - lower) / upper)\n//   current: 1000,  // current window width\n// }\n\nconst indexedPropVal = getIndexedPropValue([100, 200, 300], br.indexOfLower);\n// indexedPropVal = 200;\n\n```\n\n","readmeFilename":"README.md"}