{"_id":"bem-react","_rev":"27-1605cbed3d30c85f44e784cc6105af81","name":"bem-react","dist-tags":{"latest":"0.0.10"},"versions":{"0.0.0":{"name":"bem-react","version":"0.0.0","description":"","main":"react-bem.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"Dmitry Filatov"},"license":"ISC","_id":"bem-react@0.0.0","dist":{"shasum":"b7acb245d7726f8f6b47f08ef7cb864445f15ece","tarball":"https://registry.npmjs.org/bem-react/-/bem-react-0.0.0.tgz","integrity":"sha512-kjI6qSfY55IyrjTCvSqnvD7tX6hX4sxb1pAhxjKEgKyeZ0rwSMn8je4nJ0TaoVMnY8hu92RII7VJEsslWGI0+Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD2+CEWDqqeAK6/CIP2WgB0qGrx8apRD1Rn/DD9JoABJQIhANKkd6AQTGr6QyYAhkRxl9mrrhTutMIm/vpj1WIWeGiu"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"dfilatov","email":"dfilatov@yandex-team.ru"},"maintainers":[{"name":"dfilatov","email":"dfilatov@yandex-team.ru"}]},"0.0.1":{"name":"bem-react","version":"0.0.1","description":"BEM-flavoured React","keywords":["react","bem"],"main":"bem-react.js","author":{"name":"Dmitry Filatov","email":"dfilatov@yandex-team.ru"},"dependencies":{"react":"0.12.x"},"license":"ISC","_id":"bem-react@0.0.1","dist":{"shasum":"a31f4a53ac1034321905873414818a46b72cb70c","tarball":"https://registry.npmjs.org/bem-react/-/bem-react-0.0.1.tgz","integrity":"sha512-4WvCLs8Rx3t9+tkrbDwwC+3w3dUlVazgjOM/luMgi/zJJmEogl3ju5ZbsX2C+h9YX5Eldtx1EO8jICW+LDFbdw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD4Q2WF9oXb+4Ob1Fv0LVH/NJzrt+SzaAa8jjBVKoChHgIgDFlNFjMXcLjvTliF2xN7GphsC/R48T8pItgQIKoVmyU="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"dfilatov","email":"dfilatov@yandex-team.ru"},"maintainers":[{"name":"dfilatov","email":"dfilatov@yandex-team.ru"}]},"0.0.2":{"name":"bem-react","version":"0.0.2","description":"BEM-flavoured React","keywords":["react","bem"],"main":"bem-react.js","author":{"name":"Dmitry Filatov","email":"dfilatov@yandex-team.ru"},"dependencies":{"react":"0.12.x"},"license":"ISC","gitHead":"37da9ba0f6ea9bb650288e547d1c32a015a39a13","_id":"bem-react@0.0.2","scripts":{},"_shasum":"80618d560fde97e9c7cfedafef6426ec9b03a51c","_from":".","_npmVersion":"2.1.2","_nodeVersion":"0.10.32","_npmUser":{"name":"dfilatov","email":"dfilatov@yandex-team.ru"},"maintainers":[{"name":"dfilatov","email":"dfilatov@yandex-team.ru"}],"dist":{"shasum":"80618d560fde97e9c7cfedafef6426ec9b03a51c","tarball":"https://registry.npmjs.org/bem-react/-/bem-react-0.0.2.tgz","integrity":"sha512-FpSUHZ8yGYJm42JF/kG4GiRRkdOaOyCUTmEcClAPRx4pq9qUrd3hIumQgORQEYbVc5/CP/DNjf9vAqqollb1DA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDyDH78L1qxLx8b2DIpWaI0zN6VBLx50A/3KTyuCKPnrQIgB+2jkZsISq8Qz4A4FYTI6vsZKctRqJTgQ/Pj/TopZEo="}]}},"0.0.3":{"name":"bem-react","version":"0.0.3","description":"BEM-flavoured React","keywords":["react","bem","json","bemjson"],"main":"lib/bemReact.js","author":{"name":"Dmitry Filatov","email":"dfilatov@yandex-team.ru"},"peerDependencies":{"react":"0.12.x"},"devDependencies":{"browserify":"6.3.3","react":"0.12.x"},"license":"MIT","gitHead":"06491bc1998fc97099090cce4fbbb8a656af7e15","_id":"bem-react@0.0.3","scripts":{},"_shasum":"1d47b2fea81ec7117fe68d5c2d62188f88db71aa","_from":".","_npmVersion":"2.1.2","_nodeVersion":"0.10.32","_npmUser":{"name":"dfilatov","email":"dfilatov@yandex-team.ru"},"maintainers":[{"name":"dfilatov","email":"dfilatov@yandex-team.ru"}],"dist":{"shasum":"1d47b2fea81ec7117fe68d5c2d62188f88db71aa","tarball":"https://registry.npmjs.org/bem-react/-/bem-react-0.0.3.tgz","integrity":"sha512-RXFf2fjFAULjkVrbv49OL/RopTwasdVMeEHQXx77sRd7YThPaQrR4CcjYXn4VHy8s+UhhefjtnO/NFcrnGveJQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJAfdfvrtMA73b8VX8lgHq+/E+dJL1SGKgiEMlxOqfrQIhANUQE0gONLpg6xpvGjcJCuZS0S8z1tOdUEHyfjiXd7kP"}]}},"0.0.4":{"name":"bem-react","version":"0.0.4","description":"BEM-flavoured React","keywords":["react","bem","json","bemjson"],"main":"lib/bemReact.js","author":{"name":"Dmitry Filatov","email":"dfilatov@yandex-team.ru"},"peerDependencies":{"react":"0.12.x"},"devDependencies":{"browserify":"6.3.3","react":"0.12.x","jasmine":"2.1.0"},"license":"MIT","scripts":{"test":"jasmine","build-example":"browserify example/index.js > example/index.build.js"},"gitHead":"c5bf418ab6566b69a5ff2b0cac92c4a4488e77a4","_id":"bem-react@0.0.4","_shasum":"493186e164c0fa79b2c7b0a6b890d0cf76e23d88","_from":".","_npmVersion":"2.1.2","_nodeVersion":"0.10.32","_npmUser":{"name":"dfilatov","email":"dfilatov@yandex-team.ru"},"maintainers":[{"name":"dfilatov","email":"dfilatov@yandex-team.ru"}],"dist":{"shasum":"493186e164c0fa79b2c7b0a6b890d0cf76e23d88","tarball":"https://registry.npmjs.org/bem-react/-/bem-react-0.0.4.tgz","integrity":"sha512-vR9XimO4NxXUkfrVkzd8nJ3z7/9OhDz2IV5PsRXbldufMsRsa0bMkKsfywbfglkF/FMSqrZ7JVFORL6q6m0ZGA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHRRDj7IWsFO1vxyBuGwqKJZoRzBfYCVQ6bYc3VNPiCrAiBdkinhIeq6YB6Ul7rUgteuMxwU1xGohnCXDgNo9k2WaQ=="}]}},"0.0.5":{"name":"bem-react","version":"0.0.5","description":"BEM-flavoured React","keywords":["react","bem","json","bemjson"],"main":"lib/bemReact.js","author":{"name":"Dmitry Filatov","email":"dfilatov@yandex-team.ru"},"peerDependencies":{"react":"0.12.x"},"devDependencies":{"browserify":"6.3.3","react":"0.12.x","jasmine":"2.1.0"},"license":"MIT","scripts":{"test":"jasmine","build-example":"browserify example/index.js > example/index.build.js"},"gitHead":"8311823d5ce52a8000cc6c63ed07d302edca40ee","_id":"bem-react@0.0.5","_shasum":"275189dd44e3c7a36994a48667a2e27ed0a54b7a","_from":".","_npmVersion":"2.1.2","_nodeVersion":"0.10.32","_npmUser":{"name":"dfilatov","email":"dfilatov@yandex-team.ru"},"maintainers":[{"name":"dfilatov","email":"dfilatov@yandex-team.ru"}],"dist":{"shasum":"275189dd44e3c7a36994a48667a2e27ed0a54b7a","tarball":"https://registry.npmjs.org/bem-react/-/bem-react-0.0.5.tgz","integrity":"sha512-cAlh2dO5CZ/VT3D30ufQn6cxErMil5FUkmptgKsEj9lAD8pcWN2nbdhirYj7Z0DntskmTAM04H/FDx/RdKUVVQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDH5JHSiV5tPOPnSbPa9O1FrxwjNNwCs/5boY1+4qwGNQIhAO/sLHGopLO4f6p+KVKyulq4m+4MP13xWnfqJjVfG/yz"}]}},"0.0.6":{"name":"bem-react","version":"0.0.6","description":"BEM-flavoured React","keywords":["react","bem","json","bemjson"],"main":"lib/bemReact.js","author":{"name":"Dmitry Filatov","email":"dfilatov@yandex-team.ru"},"peerDependencies":{"react":"0.12.x"},"devDependencies":{"browserify":"6.3.3","react":"0.12.x","jasmine":"2.1.0"},"license":"MIT","scripts":{"test":"jasmine","build-example":"browserify example/index.js > example/index.build.js"},"_id":"bem-react@0.0.6","dist":{"shasum":"a6025206d72d073c64b7c48ee14f317f171d6716","tarball":"https://registry.npmjs.org/bem-react/-/bem-react-0.0.6.tgz","integrity":"sha512-ioGk3fex3sPiaaTqxs0V9qyFqcgpeMDU8CSwPtecowg3JrcBmg6Qc28JdILER7Cn5Vpv12RAzv33p3YV2KOmMg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHJvnxgH+ADlaV2PG582IGZwjxLVYyZXLNlU4WLdF5jxAiBu6UsW4OcRmFLJbZmjFRbugoPHtZBqvceLKrtWNmztaA=="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"dfilatov","email":"dfilatov@yandex-team.ru"},"maintainers":[{"name":"dfilatov","email":"dfilatov@yandex-team.ru"}]},"0.0.7":{"name":"bem-react","version":"0.0.7","description":"BEM-flavoured React","keywords":["react","bem","json","bemjson"],"main":"lib/bemReact.js","author":{"name":"Dmitry Filatov","email":"dfilatov@yandex-team.ru"},"peerDependencies":{"react":"0.12.x"},"devDependencies":{"browserify":"6.3.3","react":"0.12.x","jasmine":"2.1.0"},"license":"MIT","scripts":{"test":"jasmine","build-example":"browserify example/index.js > example/index.build.js"},"gitHead":"3c0ed8865e63c681dc7c4f081cd3baecfc67a93e","_id":"bem-react@0.0.7","_shasum":"c2ba434b8b4fc094cbf0d31600435d86c782904e","_from":".","_npmVersion":"2.1.2","_nodeVersion":"0.10.32","_npmUser":{"name":"dfilatov","email":"dfilatov@yandex-team.ru"},"maintainers":[{"name":"dfilatov","email":"dfilatov@yandex-team.ru"}],"dist":{"shasum":"c2ba434b8b4fc094cbf0d31600435d86c782904e","tarball":"https://registry.npmjs.org/bem-react/-/bem-react-0.0.7.tgz","integrity":"sha512-G54nXZAi/XXZiZP2Y3Rs5Rjj90MybE31Fiw88g+R5jXse8eSRncd/+qDhxGQvkYfz+PA+patHyuRpYMBVzYOsg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCjexlniQ/Bse0ZSGzPMX4/Rtd+Tf+V6OavbwXnh1lvagIgcxE5ihCvxBn/tUjOJe04SlsKohQeWg+WZs8ja2AGvAg="}]}},"0.0.8":{"name":"bem-react","version":"0.0.8","description":"BEM-flavoured React","keywords":["react","bem","json","bemjson"],"main":"lib/bemReact.js","author":{"name":"Dmitry Filatov","email":"dfilatov@yandex-team.ru"},"peerDependencies":{"react":"0.12.x"},"devDependencies":{"browserify":"6.3.3","react":"0.12.x","jasmine":"2.1.0"},"license":"MIT","scripts":{"test":"jasmine","build-example":"browserify example/index.js > example/index.build.js"},"gitHead":"7c9d7a30ab5f215d5a043044d6ed7a68ac82436e","_id":"bem-react@0.0.8","_shasum":"e4cb59dce3123a23de666fbb0d9a079b5f20c38d","_from":".","_npmVersion":"2.1.2","_nodeVersion":"0.10.32","_npmUser":{"name":"dfilatov","email":"dfilatov@yandex-team.ru"},"maintainers":[{"name":"dfilatov","email":"dfilatov@yandex-team.ru"}],"dist":{"shasum":"e4cb59dce3123a23de666fbb0d9a079b5f20c38d","tarball":"https://registry.npmjs.org/bem-react/-/bem-react-0.0.8.tgz","integrity":"sha512-Rg+Jq2TtS2gSIbLDy0L4farUICyNruiJxdp5kkKu/V37ilLln6ImlTtJ/bk8fcF4BRUTkjWOFXxpxYBcDzVgNg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDRa3C6V3P0qvrBMFGDLP7xynFmt+/eS82yVGijXsFEbwIgVkfVM9oVp/ljp+pbKbUxoT263/4aSzHZaz4R+v0DxR4="}]}},"0.0.9":{"name":"bem-react","version":"0.0.9","description":"BEM-flavoured React","keywords":["react","bem","json","bemjson"],"main":"lib/bemReact.js","author":{"name":"Dmitry Filatov","email":"dfilatov@yandex-team.ru"},"peerDependencies":{"react":"0.12.x"},"devDependencies":{"browserify":"6.3.3","react":"0.12.x","jasmine":"2.1.0"},"license":"MIT","scripts":{"test":"jasmine","build-example":"browserify example/index.js > example/index.build.js"},"gitHead":"8ab05c6a78494dd88d5b1571c315f09662e4e389","_id":"bem-react@0.0.9","_shasum":"400497eab1d479ca21443935407e684d26e3d052","_from":".","_npmVersion":"2.5.1","_nodeVersion":"0.12.0","_npmUser":{"name":"dfilatov","email":"dfilatov@yandex-team.ru"},"maintainers":[{"name":"dfilatov","email":"dfilatov@yandex-team.ru"}],"dist":{"shasum":"400497eab1d479ca21443935407e684d26e3d052","tarball":"https://registry.npmjs.org/bem-react/-/bem-react-0.0.9.tgz","integrity":"sha512-lDnrpenp9QjAe6SF2rdLVe3MXoCIhZkHAyV7oN0UZvlHYzxSyrRHQ4BRZx9+yipWpu2I3M5JRORMxVbCohqILw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDSU3Mwir+C5ZhBO/PRIRHZpp7UL7z8U8dGMYlmMbWnTAiBRtVqEGoFfFImZIwLT/sr7JNk/GGPMX9+QlGyJdn4kRQ=="}]}},"0.0.10":{"name":"bem-react","version":"0.0.10","description":"BEM-flavoured React","keywords":["react","bem","json","bemjson"],"main":"lib/bemReact.js","author":{"name":"Dmitry Filatov","email":"dfilatov@yandex-team.ru"},"peerDependencies":{"react":"0.13.x"},"devDependencies":{"browserify":"6.3.3","react":"0.13.x","jasmine":"2.1.0"},"license":"MIT","scripts":{"test":"jasmine","build-example":"browserify example/index.js > example/index.build.js"},"gitHead":"dec925c4b41007684866b47516e26db157d5044a","_id":"bem-react@0.0.10","_shasum":"2ee5a5b7b3bb6ec0163e587d7c72e3d1c35c4a2d","_from":".","_npmVersion":"2.5.1","_nodeVersion":"0.12.0","_npmUser":{"name":"dfilatov","email":"dfilatov@yandex-team.ru"},"maintainers":[{"name":"dfilatov","email":"dfilatov@yandex-team.ru"}],"dist":{"shasum":"2ee5a5b7b3bb6ec0163e587d7c72e3d1c35c4a2d","tarball":"https://registry.npmjs.org/bem-react/-/bem-react-0.0.10.tgz","integrity":"sha512-nQHV9CQ6t3F19w4itv+vuSKT+tS/KHvdzGvhZfKjrtl/oyVrDona1qO0JQ18C9G3ZedYY/EFYNCdmYw1+RIkvA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBRva0NUkbsjMh0rT1K/dm8s3FLOuxyN0BHkt2nQjaokAiEAnOt+VjEwS6dibML28uWM8ua1HNz/G3TNmfzhfyHyQNw="}]}}},"readme":"# bem-react [![NPM version](https://badge.fury.io/js/bem-react.png)](http://badge.fury.io/js/bem-react) [![Build Status](https://travis-ci.org/dfilatov/bem-react.svg?branch=master)](https://travis-ci.org/dfilatov/bem-react)\n\n`bem-react` is a module on top of [React](https://github.com/facebook/react/) which joins awesome React with some good BEM-specific features.\n\nIts main goals:\n  * provide ability to use some kind of bemjson in templates and during usage (instead of ugly jsx or plain js)\n  * take over manipulation of css classes based on BEM (instead of annoying string concatenation or `React.addons.classSet` which is also clumsy for BEM-like css classes)\n\n## Getting Started\n\n### Installation\nvia npm: `npm install bem-react`\n\nvia bower: `bower install bem-react`\n\n## Building a component\nBemReact's component is the same as React's one except you should return bemjson from `render` method.\n\nExample:\n```js\nvar BemReact = require('bem-react');\n\nvar Button = BemReact.createClass({\n    getInitialState : function() {\n        return {\n            focused : this.props.focused\n        };\n    },\n    \n    _onFocus : function() {\n        this.setState({ focused : true });\n    },\n\n    _onBlur : function() {\n        this.setState({ focused : false });\n    },\n\n    render : function() {\n        return {\n            block : 'button',\n            tag : 'button',\n            mods : {\n                size : this.props.size,\n                focused : this.state.focused,\n                disabled : this.props.disabled\n            },\n            props : {\n                disabled : this.props.disabled,\n                onFocus : this._onFocus,\n                onBlur : this._onBlur,\n                onClick : this.props.onClick\n            },\n            content : this.props.text\n        };\n    }\n});\n```\n\n## Using a component\n```js\nBemReact.render(\n    { block : Button, props : { size : 'xl', disabled : true, text : 'click me' } },\n    document.body);\n// inserts to body following html:\n// <button class=\"button button_size_xl button_disabled\">click me</button>\n```\n\n### Composition of components\nLet's imagine `Dropdown` component which is the composition of `Button` and `Popup` components:\n```js\nvar Dropdown = BemReact.createClass({\n    getInitialState : function() {\n        return {\n            opened : this.props.opened\n        };\n    },\n\n    _onButtonClick : function() {\n        this.setState({ opened : !this.state.opened });\n    },\n\n    render : function() {\n        return {\n            block : 'dropdown',\n            mods : {\n                opened : this.state.opened,\n                disabled : this.props.disabled\n            },\n            content : [\n                {\n                    block : Button,\n                    props : {\n                        key : 'b',\n                        disabled : this.props.disabled,\n                        text : 'click me',\n                        onClick : this._onButtonClick\n                    }\n                },\n                {\n                    block : Popup,\n                    mix : [{ block : 'dropdown', elem : 'popup' }],\n                    props : {\n                        key : 'p',\n                        visible : this.state.opened && !this.props.disabled,\n                        content : this.props.content\n                    }\n                }\n            ]\n        };\n    }\n});\n```\n\n## BEMJSON\nThere're two kinds of bemjson items.\n### 1. Current rendered component\nYou're able to use following fields in top-level item returned from `render`:\n  * *String* **block** block name, required\n  * *String* **tag** html tag, optional, `<div>` by default\n  * *Object* **mods** modifiers (boolean modifiers are supported as well), optional\n  * *Object* **props** properties (similar to the `attrs` in the traditional bemjson), optional\n  * * **content** inner content, optional\n\nBe careful, you aren't allowed to use `mix` field there\n\n### 2. Usage of components\nYou're able to use following fields:\n  * *Function* **block** link to another block, required\n  * *Object* **props** properties, optional\n  * *Array* **mix** mixed elements, optional\n\n## Top-Level API\n\nAPI is the similar to the original React's API:\n\n#### createClass(*Object* specification)\n\n#### render(*Object* componentJson, *DOMElement* container, [*Function* callback])\n\n#### renderToString(*Object* componentJson)\n\n#### renderToStaticMarkup(*Object* componentJson)\n\n#### unmountComponentAtNode(*DOMElement* container)\n","maintainers":[{"name":"dfilatov","email":"dfilatov@yandex-team.ru"}],"time":{"modified":"2022-06-13T04:31:03.257Z","created":"2014-11-21T21:34:01.325Z","0.0.0":"2014-11-21T21:34:01.325Z","0.0.1":"2014-11-23T19:25:07.657Z","0.0.2":"2014-11-24T09:45:21.965Z","0.0.3":"2014-11-25T07:01:05.530Z","0.0.4":"2014-11-25T13:26:54.779Z","0.0.5":"2014-11-25T15:02:55.146Z","0.0.6":"2014-11-25T21:17:49.694Z","0.0.7":"2014-11-26T07:55:28.122Z","0.0.8":"2014-11-28T15:04:45.938Z","0.0.9":"2015-05-20T09:40:31.701Z","0.0.10":"2015-05-20T09:58:22.868Z"},"author":{"name":"Dmitry Filatov","email":"dfilatov@yandex-team.ru"},"license":"MIT","readmeFilename":"README.md","description":"BEM-flavoured React","keywords":["react","bem","json","bemjson"],"users":{"alexbaumgertner":true,"igsys":true}}