diff --git a/src/Glyphicon.js b/src/Glyphicon.js index 9f5a2d69ad..44d7a531c4 100644 --- a/src/Glyphicon.js +++ b/src/Glyphicon.js @@ -1,13 +1,21 @@ import React from 'react'; import classNames from 'classnames'; -import BootstrapMixin from './BootstrapMixin'; -import styleMaps from './styleMaps'; const Glyphicon = React.createClass({ - mixins: [BootstrapMixin], - propTypes: { - glyph: React.PropTypes.oneOf(styleMaps.GLYPHS).isRequired, + /** + * bootstrap className + * @private + */ + bsClass: React.PropTypes.string, + /** + * An icon name + */ + glyph: React.PropTypes.string.isRequired, + /** + * Adds 'form-control-feedback' class + * @private + */ formControlFeedback: React.PropTypes.bool }, @@ -19,13 +27,14 @@ const Glyphicon = React.createClass({ }, render() { - let classes = this.getBsClassSet(); - - classes['glyphicon-' + this.props.glyph] = true; - classes['form-control-feedback'] = this.props.formControlFeedback; + let className = classNames(this.props.className, { + [this.props.bsClass]: true, + ['glyphicon-' + this.props.glyph]: true, + ['form-control-feedback']: this.props.formControlFeedback + }); return ( - + {this.props.children} ); diff --git a/src/styleMaps.js b/src/styleMaps.js index b64252732a..5d8e72cd56 100644 --- a/src/styleMaps.js +++ b/src/styleMaps.js @@ -45,268 +45,7 @@ const styleMaps = { 'md': 'md', 'sm': 'sm', 'xs': 'xs' - }, - GLYPHS: [ - 'asterisk', - 'plus', - 'euro', - 'eur', - 'minus', - 'cloud', - 'envelope', - 'pencil', - 'glass', - 'music', - 'search', - 'heart', - 'star', - 'star-empty', - 'user', - 'film', - 'th-large', - 'th', - 'th-list', - 'ok', - 'remove', - 'zoom-in', - 'zoom-out', - 'off', - 'signal', - 'cog', - 'trash', - 'home', - 'file', - 'time', - 'road', - 'download-alt', - 'download', - 'upload', - 'inbox', - 'play-circle', - 'repeat', - 'refresh', - 'list-alt', - 'lock', - 'flag', - 'headphones', - 'volume-off', - 'volume-down', - 'volume-up', - 'qrcode', - 'barcode', - 'tag', - 'tags', - 'book', - 'bookmark', - 'print', - 'camera', - 'font', - 'bold', - 'italic', - 'text-height', - 'text-width', - 'align-left', - 'align-center', - 'align-right', - 'align-justify', - 'list', - 'indent-left', - 'indent-right', - 'facetime-video', - 'picture', - 'map-marker', - 'adjust', - 'tint', - 'edit', - 'share', - 'check', - 'move', - 'step-backward', - 'fast-backward', - 'backward', - 'play', - 'pause', - 'stop', - 'forward', - 'fast-forward', - 'step-forward', - 'eject', - 'chevron-left', - 'chevron-right', - 'plus-sign', - 'minus-sign', - 'remove-sign', - 'ok-sign', - 'question-sign', - 'info-sign', - 'screenshot', - 'remove-circle', - 'ok-circle', - 'ban-circle', - 'arrow-left', - 'arrow-right', - 'arrow-up', - 'arrow-down', - 'share-alt', - 'resize-full', - 'resize-small', - 'exclamation-sign', - 'gift', - 'leaf', - 'fire', - 'eye-open', - 'eye-close', - 'warning-sign', - 'plane', - 'calendar', - 'random', - 'comment', - 'magnet', - 'chevron-up', - 'chevron-down', - 'retweet', - 'shopping-cart', - 'folder-close', - 'folder-open', - 'resize-vertical', - 'resize-horizontal', - 'hdd', - 'bullhorn', - 'bell', - 'certificate', - 'thumbs-up', - 'thumbs-down', - 'hand-right', - 'hand-left', - 'hand-up', - 'hand-down', - 'circle-arrow-right', - 'circle-arrow-left', - 'circle-arrow-up', - 'circle-arrow-down', - 'globe', - 'wrench', - 'tasks', - 'filter', - 'briefcase', - 'fullscreen', - 'dashboard', - 'paperclip', - 'heart-empty', - 'link', - 'phone', - 'pushpin', - 'usd', - 'gbp', - 'sort', - 'sort-by-alphabet', - 'sort-by-alphabet-alt', - 'sort-by-order', - 'sort-by-order-alt', - 'sort-by-attributes', - 'sort-by-attributes-alt', - 'unchecked', - 'expand', - 'collapse-down', - 'collapse-up', - 'log-in', - 'flash', - 'log-out', - 'new-window', - 'record', - 'save', - 'open', - 'saved', - 'import', - 'export', - 'send', - 'floppy-disk', - 'floppy-saved', - 'floppy-remove', - 'floppy-save', - 'floppy-open', - 'credit-card', - 'transfer', - 'cutlery', - 'header', - 'compressed', - 'earphone', - 'phone-alt', - 'tower', - 'stats', - 'sd-video', - 'hd-video', - 'subtitles', - 'sound-stereo', - 'sound-dolby', - 'sound-5-1', - 'sound-6-1', - 'sound-7-1', - 'copyright-mark', - 'registration-mark', - 'cloud-download', - 'cloud-upload', - 'tree-conifer', - 'tree-deciduous', - 'cd', - 'save-file', - 'open-file', - 'level-up', - 'copy', - 'paste', - 'alert', - 'equalizer', - 'king', - 'queen', - 'pawn', - 'bishop', - 'knight', - 'baby-formula', - 'tent', - 'blackboard', - 'bed', - 'apple', - 'erase', - 'hourglass', - 'lamp', - 'duplicate', - 'piggy-bank', - 'scissors', - 'bitcoin', - 'yen', - 'ruble', - 'scale', - 'ice-lolly', - 'ice-lolly-tasted', - 'education', - 'option-horizontal', - 'option-vertical', - 'menu-hamburger', - 'modal-window', - 'oil', - 'grain', - 'sunglasses', - 'text-size', - 'text-color', - 'text-background', - 'object-align-top', - 'object-align-bottom', - 'object-align-horizontal', - 'object-align-left', - 'object-align-vertical', - 'object-align-right', - 'triangle-right', - 'triangle-left', - 'triangle-bottom', - 'triangle-top', - 'console', - 'superscript', - 'subscript', - 'menu-left', - 'menu-right', - 'menu-down', - 'menu-up' - ] + } }; export default styleMaps;