{"_id":"mdx-state","_rev":"6-0f4172923cb9599381a719c5befa1df8","time":{"1.0.0":"2020-11-06T18:22:48.647Z","created":"2020-11-10T17:32:28.532Z","0.0.1":"2020-11-10T17:32:28.671Z","modified":"2022-05-09T01:48:09.105Z","0.0.2":"2020-11-10T17:44:45.252Z","0.0.3":"2020-11-27T11:23:01.564Z","0.0.4":"2020-12-08T15:46:40.818Z"},"name":"mdx-state","dist-tags":{"latest":"0.0.4"},"versions":{"0.0.1":{"name":"mdx-state","version":"0.0.1","description":"Utilities to manage global state in MDX Document.","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"prepublish":"tsc"},"keywords":[],"author":"","license":"ISC","devDependencies":{"typescript":"^4.0.5","react":"^16.8.0","react-dom":"^16.8.0","@types/react":"^16.9.53"},"peerDependencies":{"react":"^16.8.0","react-dom":"^16.8.0"},"repository":{"type":"git","url":"git+https://github.com/biowaffeln/mdx-state.git"},"bugs":{"url":"https://github.com/biowaffeln/mdx-state/issues"},"homepage":"https://github.com/biowaffeln/mdx-state#readme","gitHead":"21d49d39ddd43580d6143d17c094e1b0a456152e","_id":"mdx-state@0.0.1","_nodeVersion":"14.12.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-u+QwOxfLIM15EjUh+6BaUMtZl6ddgnpfUfar+E+xoOhOWuuRGNjAhawsvBqiu4Y8YBMoYjKbwdSOOp0mZW365Q==","shasum":"9816937204b66944c5cfdf85dd653db11dfed63d","tarball":"https://registry.npmjs.org/mdx-state/-/mdx-state-0.0.1.tgz","fileCount":11,"unpackedSize":9325,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfqs6tCRA9TVsSAnZWagAAkFMP+QEk/4uzOxfYNQVT9PAp\nKMsp6q++TyXonvOUps/or7nP3sLN7LoSJd/la36pkxf3hlXUldFS6vCcAG9R\nD+zlWK79cyRtdgdOR5PB7LDFnYqXeJI8rzdWz2U7MpKI9EeKKjKALmEEc2cj\nzQk7ktua8FuDJpLAdfimfNzGAl6gil/ahTmetrDXeTsbp9lltIq5+DeyqkEl\nJSwcen8Ut0L5D+m9qvQN2FhzYlQuisPCw7PRbBuvZHgkAOGTuVZ7emtVs6m2\nBhy/PKKQb9tis6Tdyp/++gAKHrLKyf24w/YBJGjVifZFRZY9O/hfzZD4EL2O\n3S3hNMc90xOlvGsRp3mulU+3RU2U1G1aKzwvRnTNR4gu327oTVZeN+SYYc/e\nzE4fB67+wAihHbQF4b80q3SoCsDFs6o/TVrGYle5Fi4BrDcgLg9p+U+JWJZz\nu+vmHdXb7Nsbf5zssItGgz5uPtkmNmhz8Tuy3TTFQJey6qVCWJ91SV8p3pE5\nfrTAHLh19o/sGQ+I3bqNbRQvc4YflPma54cdLj/UdVRynZSi2Z22ovVt7DaU\nKzJd5okdY785lOzh2KmqLiZizLEslqkyoiu2DVHVzfgUErC4ywknAEsFcp1A\nqlbTsV70AAHBurm9gdmmPMOPIHN6AuUARwXULEWQGnUhO+006bSbnOdcaRwX\nUwEe\r\n=9RlB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAPjJnBamjb0uQPmgNyrzyiFnKFiqhiqvg7PorqKHV+hAiB9USx0LAFsm7Kie3PaiaE7zvI+aUhRizGx2UIqw0LyOQ=="}]},"_npmUser":{"name":"biowaffeln","email":"biowaffeln@gmail.com"},"directories":{},"maintainers":[{"name":"biowaffeln","email":"biowaffeln@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mdx-state_0.0.1_1605029548533_0.32879980598497904"},"_hasShrinkwrap":false},"0.0.2":{"name":"mdx-state","version":"0.0.2","description":"Utilities to manage global state in MDX Document.","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"prepublish":"tsc"},"keywords":[],"author":"","license":"ISC","devDependencies":{"typescript":"^4.0.5","react":"^16.8.0","react-dom":"^16.8.0","@types/react":"^16.9.53"},"peerDependencies":{"react":"^16.8.0","react-dom":"^16.8.0"},"repository":{"type":"git","url":"git+https://github.com/biowaffeln/mdx-state.git"},"bugs":{"url":"https://github.com/biowaffeln/mdx-state/issues"},"homepage":"https://github.com/biowaffeln/mdx-state#readme","gitHead":"21d49d39ddd43580d6143d17c094e1b0a456152e","_id":"mdx-state@0.0.2","_nodeVersion":"14.12.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-ttpOW8b6BJL1ClUgD/Ky/glwnQRjwW8a6fgab+wsVjiySq3EJjDAuBFXMsiI8elJz0kr55IKz9qvh3KwttTFYQ==","shasum":"7efbf9f2ca98d217f23344c6cf4004dca066e4f1","tarball":"https://registry.npmjs.org/mdx-state/-/mdx-state-0.0.2.tgz","fileCount":11,"unpackedSize":9328,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfqtGNCRA9TVsSAnZWagAA4CgP/3jJWU7rgcP+xggtNkUb\nnFg0a4XyBWki7QLr4VdFbYzxbhzF7wlkerOo0uHUj0yQj0OhuY/Vx4Rmbnxq\nMe2xPGkGUD7It2rdtWJKzf2R6FsGiGb2jd2KEOJRcwa4ufJwHGsFwLsV2b+L\n0B1150/XMSrV1Zl55ASELMGGVtvyof4Dbx2ZdyfC9VOG0q7Ussm1NvuDEGv7\nKsJMwV9n230GKpMD2/XnPbeBqBxMZtIrWIBOBBm7pt18PfUrf8O/9gD+yH2q\ncifSiqCYta30EQ/6ostqHClpb7YVx0MVRzKDDykzWh8kD3v0i9WjuGfdlqU2\n3D5bCIJJopaI7mlXfFX5IuXUpbemVpLiOAefGVjFR0GkE0W6tn6AlJzz5W9l\nCyDiYcVtYrLUTg+/+zFD0q2JvAW6KKwYiK5l4BVgQMp+Pe2zYNzVaL+a/4or\nVGiEjPKlegVCOsylSY9T9Pqd2J6XJFAUU6S3WQNMeOQpaCNqNI18RsFBiK+J\n8KKTKaKqFsppod2Yk1/GcrMurAMkyMbalJt7a1UqCQTdKIzwkWYZAIVmnozr\n3efIXY+mP0I5ASIhCfCd0CisAoKI50Ja5+0ik3xAiYjc+Cw1OYQB8Q/+hNqr\nXv+9qBdR6mNHz56nf8N4iU/KExfnLRaJnVrZDMEVhpiS34J0GmtsQtpLG71x\nW5Bm\r\n=ANns\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICTkhLkd6PxzZEigRFQR34PSiUmEfzMVmzymvpI0L8u/AiEArvA3amyinjlNr5QAJbqj0wKkIg8h7O2r5o0laAnEFH0="}]},"_npmUser":{"name":"biowaffeln","email":"biowaffeln@gmail.com"},"directories":{},"maintainers":[{"name":"biowaffeln","email":"biowaffeln@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mdx-state_0.0.2_1605030285142_0.7357091138217855"},"_hasShrinkwrap":false},"0.0.3":{"name":"mdx-state","version":"0.0.3","description":"Utilities to manage global state in MDX Document.","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"prepublish":"tsc"},"keywords":[],"author":"","license":"ISC","devDependencies":{"@types/react":"^16.9.53","react":"^16.8.0","react-dom":"^16.8.0","typescript":"^4.0.5"},"peerDependencies":{"react":"^16.8.0","react-dom":"^16.8.0"},"repository":{"type":"git","url":"git+https://github.com/biowaffeln/mdx-state.git"},"bugs":{"url":"https://github.com/biowaffeln/mdx-state/issues"},"homepage":"https://github.com/biowaffeln/mdx-state#readme","dependencies":{"glslCanvas":"^0.1.7"},"gitHead":"1e653044a2cefdf07b6b705a93b0b3b2e505c0ae","_id":"mdx-state@0.0.3","_nodeVersion":"14.12.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-AaelJ3UrYt0RaBOoWj7l/direl3fIa02n2hTjAAmmySeC7mxPxc0CKoQhdo4kPsX6X6yx8JAmLY8b8l62tINnQ==","shasum":"a7ecf280a5c54e1b5f8e64d11c5abec304a81309","tarball":"https://registry.npmjs.org/mdx-state/-/mdx-state-0.0.3.tgz","fileCount":11,"unpackedSize":11918,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfwOGVCRA9TVsSAnZWagAAa90P/3h7WnjiquFE5x3ZKrWu\n/kLIZTy4FIwvNf9tZp05qSAOQi10obxAo0gL0ZjUW4Y7yfleaCa6esvt9plU\nx9sM/ckrE08CgpxOjYTLKySYLmt/LtY8tu90zQtHG9ZyJf1qWsoZFRM7wtvU\nPNcu3fUKtzLvPsEbNV2RI52+pCYMY9Nq08gGEKAA3h6jiZVNNV8Wcz3Raron\nu5DXt4FBayBSNBWare3affJ1xNhIRlpMxrkHHq7sbUpVvOAP8qmRH0zynenQ\nAbSTJxx5OXKk2CSTCjht/iKBIB/GF2UXXC1ATGl/zGxAOfDK6psN7gudVrfX\n9IXO+wjdf70targXuL06mYYchUwUXFhkv2b96NUihwmGKjtJZPcR5kw2Boyg\nRqzhsWQEe6Gd2XUxbQLtc+VNs6xZNfIPn1sJkaFiQ5e48cKLbxecM6Gpb94P\n4BabW0lzzQNY62bkRIXzIhx4orpM8fQsclj/lSc9Z5Yz8BeWGZhyhCBfLBzr\nLHmfK6kqVySH3MB5sZxNBSRtYAuxx3RlVVIf6KxiPo/vn8NtngEydLjoddob\nzhWhTn8DY2dfKMcJ0sQoRX5MUo5PN9VfhRFP8g7ULsoaw3wg7Wy00+0YXmzJ\nf3cLFKxZ/lvff8+f0XdLg3orhkAEz1Ub4MKe5xQdZaZ+d7nmm4z3vkvbv4kl\nQ6a9\r\n=+Eox\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBx79ALRbBGWx0O0SodCqk6G5M3fCPlLyBi3W5yWWzhNAiEAgTGL5etTlmGfnGotcj4ZfR1qb+09HkJF7qNs9K0TfKU="}]},"_npmUser":{"name":"biowaffeln","email":"biowaffeln@gmail.com"},"directories":{},"maintainers":[{"name":"biowaffeln","email":"biowaffeln@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mdx-state_0.0.3_1606476181387_0.8746726150338713"},"_hasShrinkwrap":false},"0.0.4":{"name":"mdx-state","version":"0.0.4","description":"Utilities to manage global state in MDX Document.","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"prepublish":"tsc"},"keywords":[],"author":"","license":"ISC","devDependencies":{"@types/react":"^16.9.53","react":"^16.8.0","react-dom":"^16.8.0","typescript":"^4.0.5"},"peerDependencies":{"react":"^16.8.0","react-dom":"^16.8.0"},"repository":{"type":"git","url":"git+https://github.com/biowaffeln/mdx-state.git"},"bugs":{"url":"https://github.com/biowaffeln/mdx-state/issues"},"homepage":"https://github.com/biowaffeln/mdx-state#readme","gitHead":"257d8ff68f0a9e73443159327d5fbc0930bb9b06","_id":"mdx-state@0.0.4","_nodeVersion":"15.3.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-XCQ+vFqBrOPWM2RdzMMDWq2tBVdHod53vKY+tfEhBPkiF8l7OJJpIVF8heXQJf24kR1hXtwajIcA5nyxSjuoQg==","shasum":"09a47688e150fa10b4dc2ed1e8758f8a73b59085","tarball":"https://registry.npmjs.org/mdx-state/-/mdx-state-0.0.4.tgz","fileCount":11,"unpackedSize":11870,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfz5/hCRA9TVsSAnZWagAA0doP/jUA/tWCcUSGLHyv5q3n\n8vibCjUGAOXIIBGpb76upORT0gDSBVUbVnMO7zVsr2J/LQhGxZswwi3LdHj3\nyjNHvUyakKrg83n+h0xHmh4lJ1ivugBfGmbQgxY0oIOsoxsvsoZEVP139BSs\n03yazZV4X7PdTnzxGD981Rw750jTQ1VEAcSUmIZbKJzhmjbyCvJL8xEybCzP\nB/bNhrycFLh85Tl/94Ohy/TlVN7s63QNCI9VS8QygNBbuBSk4AkyJDc0wzDt\n6+/7LUz1aah+24cc0sDUewepLXZMdVeN1bEXkWbOowTmaOWk1MX65A96cn8e\nTH21bfMb5XNLtxX71SCS+YnuJX8EMgZMkaL6jCzvlz2r72tBJSfdZNja5bMn\n71lDwrI9Jt5QG5NpCGLSiOKf3ld8XUGZehSIgMdrC1919rtSFGJ31aK/0jXf\nqU4AodCedPIQ7k5HNZJPBVHvixaBXFLU4S5zGpdu8iGyxdf0n6FOjaQVPK0a\nTiTpkL7yWtlHSrAC+RPOYhLTKgCC8gksErletctfn49D8fAtSe0pYQj/9as5\nqPIFqZZdTB7JcYGQKcoM6GoEvS3auI+Vol8h8pLkOsW6EVzuOpphxVDT38/R\nROz6XSXUQI1u97s30UFBO3/n0WEjtIVx/OsxjTycHzTOtAxZIX1UrFevnTLt\nBBSB\r\n=flsl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC/NLYB4ZPog/FRHZyFgVeU3PblwQFn0Ju/DMaU8nCmcAIgNMsRN0DbiPd3cLdXLreYqoQe2f8QevhrjMWL9XSJyG8="}]},"_npmUser":{"name":"biowaffeln","email":"biowaffeln@gmail.com"},"directories":{},"maintainers":[{"name":"biowaffeln","email":"biowaffeln@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mdx-state_0.0.4_1607442400698_0.6610332758148114"},"_hasShrinkwrap":false}},"maintainers":[{"name":"biowaffeln","email":"biowaffeln@gmail.com"}],"description":"Utilities to manage global state in MDX Document.","homepage":"https://github.com/biowaffeln/mdx-state#readme","keywords":[],"repository":{"type":"git","url":"git+https://github.com/biowaffeln/mdx-state.git"},"bugs":{"url":"https://github.com/biowaffeln/mdx-state/issues"},"license":"ISC","readme":"# MDX-State\n\nA simple state managment solution for MDX Documents.\n\n## Installation\n\nYou can install the library using npm:\n\n```bash\nnpm install mdx-state\n```\n\n## Why?\n\nManaging state in MDX documents is complicated; the usual state mananagement solutions such as React's Hooks are unfortunately not available inside MDX. mdx-state tries to solve this problem by providing the simplest API to managing state within MDX documents.\n\n## Getting Started\n\nHere is an example of implementing a counter mdx-state:\n\n```jsx\nimport { createState, Observe } from \"mdx-state\";\n\n// create the state using the `createState` function:\nexport const counter = createState({ count: 0 });\n\n# Counter Example\n\n// to read the state, wrap it with `Observe`\n<Observe state={counter}>\n  {({ count }) => {\n    return <div> The counter currently has a value of {count}.</div>;\n  }}\n</Observe>\n\n\n// simply mutate the state from anywhere in your document!\n<button onClick={() => counter.count++}>increase count!</button>\n\n```\n\n⚠️ createState uses the [Proxy API](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy) internally and cannot be used in obsolete Browsers like IE11 without polyfills.\n\nIf you want to mutate state in more complex ways, mdx-state provides an `Input` component can help you with that. For example, let's manipulate our counter with a range slider:\n\n```jsx\nimport { createState, Observe, Input } from \"mdx-state\";\n\n# Counter Example\n\n<Observe state={counter}>\n  {({ count }) => {\n    return <div> The counter currently has a value of {count}.</div>;\n  }}\n</Observe>\n\n<Input type=\"range\" min=\"0\" max=\"10\" state={counter} name=\"count\" />\n\n```\n\nWhenever the input value changes, the text will update correctly!\n\n## API\n\n### `createState`\n\nTakes an object and returns a proxy object that can notify `Observe` and `Input` about when it is changed.\n\n### `Observe`\n\nTakes a `state` prop that has to be produced by the `createState` function, and re-renders every time the state is changed. Expects a function as a child that gets called with the new state.\n\n### `Input`\n\nTakes two props, a `state` that comes from the `createState` function, and a `name` that corresponds to the name of the key that the input should mutate.\n\n## Acknowledgements\n\nThis library is heavily inspired by Alex Krolick's [MDX-Observable](https://github.com/alexkrolick/mdx-observable). mdx-state is a similar take on the problem of state management in MDX that tries to reduce the number of render props and simplify the syntax as much as possible.\n","readmeFilename":"README.md"}