diff options
Diffstat (limited to 'packages/gitbook-core/src')
-rw-r--r-- | packages/gitbook-core/src/components/Tooltipped.js | 44 | ||||
-rw-r--r-- | packages/gitbook-core/src/index.js | 2 |
2 files changed, 46 insertions, 0 deletions
diff --git a/packages/gitbook-core/src/components/Tooltipped.js b/packages/gitbook-core/src/components/Tooltipped.js new file mode 100644 index 0000000..4d297fd --- /dev/null +++ b/packages/gitbook-core/src/components/Tooltipped.js @@ -0,0 +1,44 @@ +const React = require('react'); +const classNames = require('classnames'); + +const POSITIONS = { + BOTTOM_RIGHT: 'e', + BOTTOM_LEFT: 'w', + TOP_LEFT: 'nw', + TOP_RIGHT: 'ne', + BOTTOM: '', + TOP: 'n' +}; + +const Tooltipped = React.createClass({ + propTypes: { + title: React.PropTypes.string.isRequired, + position: React.PropTypes.string, + open: React.PropTypes.bool, + children: React.PropTypes.node + }, + + statics: { + POSITIONS + }, + + render() { + const { title, position, open, children } = this.props; + + const className = classNames( + 'GitBook-Tooltipped', + position ? 'Tooltipped-' + position : '', + { + 'Tooltipped-o': open + } + ); + + return ( + <div className={className} aria-label={title}> + {children} + </div> + ); + } +}); + +module.exports = Tooltipped; diff --git a/packages/gitbook-core/src/index.js b/packages/gitbook-core/src/index.js index 840fffb..534eb2d 100644 --- a/packages/gitbook-core/src/index.js +++ b/packages/gitbook-core/src/index.js @@ -17,6 +17,7 @@ const Button = require('./components/Button'); const ButtonGroup = require('./components/ButtonGroup'); const Dropdown = require('./components/Dropdown'); const Backdrop = require('./components/Backdrop'); +const Tooltipped = require('./components/Tooltipped'); const I18nProvider = require('./components/I18nProvider'); const ACTIONS = require('./actions/TYPES'); @@ -58,6 +59,7 @@ module.exports = { ButtonGroup, Dropdown, Backdrop, + Tooltipped, // Utilities Shapes, // Librairies |