diff --git a/lib/components/Tab.js b/lib/components/Tab.jsx similarity index 68% rename from lib/components/Tab.js rename to lib/components/Tab.jsx index 4ac3afb762..9d61814b55 100644 --- a/lib/components/Tab.js +++ b/lib/components/Tab.jsx @@ -1,5 +1,6 @@ /** @jsx React.DOM */ var React = require('react'); +var classNames = require('classnames'); function syncNodeAttributes(node, props) { if (props.selected) { @@ -34,14 +35,13 @@ module.exports = React.createClass({ syncNodeAttributes(this.getDOMNode(), this.props); }, + getClassNames: function() { + this.props.classNames ? classNames(this.props.classNames) : false + }, + render: function () { return ( - ); diff --git a/lib/components/TabList.js b/lib/components/TabList.js deleted file mode 100644 index d17a20c606..0000000000 --- a/lib/components/TabList.js +++ /dev/null @@ -1,14 +0,0 @@ -/** @jsx React.DOM */ -var React = require('react'); - -module.exports = React.createClass({ - displayName: 'TabList', - - render: function () { - return ( - - ); - } -}); diff --git a/lib/components/TabList.jsx b/lib/components/TabList.jsx new file mode 100644 index 0000000000..b86e13c9ed --- /dev/null +++ b/lib/components/TabList.jsx @@ -0,0 +1,21 @@ +/** @jsx React.DOM */ +var React = require('react'); +var classNames = require('classnames'); + +module.exports = React.createClass({ + displayName: 'TabList', + + getClassNames: function() { + this.props.classNames ? classNames(this.props.classNames) : false + }, + + render: function () { + return ( + + ); + } +}); diff --git a/lib/components/TabPanel.js b/lib/components/TabPanel.jsx similarity index 74% rename from lib/components/TabPanel.js rename to lib/components/TabPanel.jsx index b9a3f5aeb0..32bc0984ac 100644 --- a/lib/components/TabPanel.js +++ b/lib/components/TabPanel.jsx @@ -1,5 +1,6 @@ /** @jsx React.DOM */ var React = require('react'); +var classNames = require('classnames'); module.exports = React.createClass({ displayName: 'TabPanel', @@ -12,6 +13,10 @@ module.exports = React.createClass({ }; }, + getClassNames: function() { + this.props.classNames ? classNames(this.props.classNames) : false + }, + render: function () { var children = this.props.selected ? this.props.children : null; @@ -20,6 +25,7 @@ module.exports = React.createClass({ id={this.props.id} aria-labeledby={this.props.tabId} style={{display: this.props.selected ? '' : 'none'}} + className={this.getClassNames} > {children} diff --git a/lib/components/Tabs.js b/lib/components/Tabs.jsx similarity index 96% rename from lib/components/Tabs.js rename to lib/components/Tabs.jsx index 0f41aa6385..7c75d61f4e 100644 --- a/lib/components/Tabs.js +++ b/lib/components/Tabs.jsx @@ -3,6 +3,7 @@ var React = require('react/addons'); var invariant = require('react/lib/invariant'); var jss = require('js-stylesheet'); var uuid = require('../helpers/uuid'); +var classNames = require('classnames'); // Determine if a node from event.target is a Tab element function isTabNode(node) { @@ -200,9 +201,13 @@ module.exports = React.createClass({ }, + getClassNames: function() { + classNames('react-tabs',this.props.classNames) + }, + render: function () { return ( -
diff --git a/package.json b/package.json index 68eeee177e..938b59802a 100644 --- a/package.json +++ b/package.json @@ -28,9 +28,6 @@ "a11y", "react-component" ], - "browserify": { - "transform": [ "reactify" ] - }, "devDependencies": { "envify": "^3.2.0", "jsx-loader": "^0.12.2", @@ -38,6 +35,7 @@ "reactify": "^0.17.1" }, "dependencies": { + "classnames": "^1.2.0", "js-stylesheet": "0.0.1", "react": "^0.12.1" }