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 (
-
+
{this.props.children}
);
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 (
-
- {this.props.children}
-
- );
- }
-});
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 (
+
+ {this.props.children}
+
+ );
+ }
+});
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"
}