\n
\n {name}\n
\n\n {emojis && emojis.map((emoji) =>\n
\n )}\n\n {emojis && !emojis.length &&\n
\n \n\n \n No emoji found\n \n
\n }\n
\n }\n}\n\nCategory.propTypes = {\n emojis: React.PropTypes.array,\n hasStickyPosition: React.PropTypes.bool,\n name: React.PropTypes.string.isRequired,\n emojiProps: React.PropTypes.object.isRequired,\n}\n\nCategory.defaultProps = {\n emojis: [],\n hasStickyPosition: true,\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/components/category.js\n **/","import React from 'react'\nimport data from '../../data'\n\nconst SHEET_SIZE = 2624\nconst EMOJI_SIZE = 64\nconst SKINS = [\n '1F3FA', '1F3FB', '1F3FC',\n '1F3FD', '1F3FE', '1F3FF',\n]\n\nexport default class Emoji extends React.Component {\n constructor(props) {\n super(props)\n\n var emojiData = this.getEmojiData()\n this.hasSkinVariations = !!emojiData.skin_variations\n }\n\n shouldComponentUpdate(nextProps) {\n return (\n this.hasSkinVariations && nextProps.skin != this.props.skin ||\n nextProps.size != this.props.size ||\n nextProps.sheetURL != this.props.sheetURL\n )\n }\n\n getEmojiData() {\n var { emoji, skin, sheetURL } = this.props,\n emojiData = emoji\n\n if (typeof emoji == 'string') {\n emojiData = data.emojis[emoji]\n }\n\n if (this.hasSkinVariations && skin > 1) {\n emojiData = JSON.parse(JSON.stringify(data.emojis[emoji]))\n\n var skinKey = SKINS[skin - 1],\n variationKey = `${emojiData.unified}-${skinKey}`,\n variationData = emojiData.skin_variations[variationKey],\n kitMatches = sheetURL.match(/(apple|google|twitter|emojione)/),\n kit = kitMatches[0]\n\n if (variationData[`has_img_${kit}`]) {\n emojiData.skin_tone = skin\n\n for (let k in variationData) {\n let v = variationData[k]\n emojiData[k] = v\n }\n }\n }\n\n return emojiData\n }\n\n getSheetSize() {\n var { size } = this.props,\n sheetSize = SHEET_SIZE * size / EMOJI_SIZE\n\n return `${sheetSize}px ${sheetSize}px`\n }\n\n getPosition(emojiData) {\n var { size } = this.props,\n { sheet_x, sheet_y } = emojiData,\n x = sheet_x * size,\n y = sheet_y * size\n\n return `-${x}px -${y}px`\n }\n\n getNative(emojiData) {\n var { unified } = emojiData,\n unicodes = unified.split('-'),\n codePoints = unicodes.map((u) => `0x${u}`)\n\n return String.fromCodePoint(...codePoints)\n }\n\n handleClick(emojiData) {\n var { onClick } = this.props,\n { name, short_names, skin_tone, text, texts, unified } = emojiData,\n id = short_names[0],\n colons = `:${id}:`\n\n texts || (texts = [])\n if (text && !texts.length) {\n texts = [text]\n }\n\n if (skin_tone) {\n colons += `:skin-tone-${skin_tone}:`\n }\n\n onClick({\n id,\n name,\n colons,\n skin: skin_tone || 1,\n emoticons: texts,\n native: this.getNative(emojiData),\n })\n }\n\n render() {\n var { sheetURL, size, onOver, onLeave } = this.props,\n emojiData = this.getEmojiData()\n\n return \n
\n {Array(6).fill().map((_, i) => {\n var skinTone = i + 1,\n selected = skinTone == skin\n\n return \n this.handleClick(skinTone)}\n className={`emoji-picker-skin emoji-picker-skin-tone-${skinTone}`}>\n \n \n })}\n
\n
\n }\n}\n\nSkins.propTypes = {\n onChange: React.PropTypes.func,\n skin: React.PropTypes.number.isRequired,\n}\n\nSkins.defaultProps = {\n onChange: (() => {}),\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/components/skins.js\n **/"],"sourceRoot":""}
\ No newline at end of file
diff --git a/dist/emoji-picker.min.js b/dist/emoji-picker.min.js
new file mode 100644
index 0000000..3b2e9bd
--- /dev/null
+++ b/dist/emoji-picker.min.js
@@ -0,0 +1,69 @@
+!function(e,o){"object"==typeof exports&&"object"==typeof module?module.exports=o(require("react")):"function"==typeof define&&define.amd?define(["react"],o):"object"==typeof exports?exports.EmojiPicker=o(require("react")):e.EmojiPicker=o(e.react)}(this,function(e){return function(e){function o(t){if(a[t])return a[t].exports;var s=a[t]={exports:{},id:t,loaded:!1};return e[t].call(s.exports,s,s.exports,o),s.loaded=!0,s.exports}var a={};return o.m=e,o.c=a,o.p="",o(0)}([function(e,o,a){"use strict";Object.defineProperty(o,"__esModule",{value:!0});var t=a(1);Object.defineProperty(o,"Picker",{enumerable:!0,get:function(){return t.Picker}}),Object.defineProperty(o,"Emoji",{enumerable:!0,get:function(){return t.Emoji}})},function(e,o,a){"use strict";function t(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(o,"__esModule",{value:!0});var s=a(2);Object.defineProperty(o,"Anchors",{enumerable:!0,get:function(){return t(s)["default"]}});var i=a(15);Object.defineProperty(o,"Category",{enumerable:!0,get:function(){return t(i)["default"]}});var _=a(16);Object.defineProperty(o,"Emoji",{enumerable:!0,get:function(){return t(_)["default"]}});var n=a(18);Object.defineProperty(o,"Picker",{enumerable:!0,get:function(){return t(n)["default"]}});var l=a(20);Object.defineProperty(o,"Preview",{enumerable:!0,get:function(){return t(l)["default"]}});var g=a(21);Object.defineProperty(o,"Search",{enumerable:!0,get:function(){return t(g)["default"]}});var m=a(23);Object.defineProperty(o,"Skins",{enumerable:!0,get:function(){return t(m)["default"]}})},function(e,o,a){"use strict";function t(e){if(e&&e.__esModule)return e;var o={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(o[a]=e[a]);return o["default"]=e,o}function s(e){return e&&e.__esModule?e:{"default":e}}function i(e,o){if(!(e instanceof o))throw new TypeError("Cannot call a class as a function")}function _(e,o){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!o||"object"!=typeof o&&"function"!=typeof o?e:o}function n(e,o){if("function"!=typeof o&&null!==o)throw new TypeError("Super expression must either be null or a function, not "+typeof o);e.prototype=Object.create(o&&o.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),o&&(Object.setPrototypeOf?Object.setPrototypeOf(e,o):e.__proto__=o)}Object.defineProperty(o,"__esModule",{value:!0});var l=function(){function e(e,o){for(var a=0;a