Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
node_modules
dist
scripts/icomoon
scripts/*.zip
npm*debug*.log
Expand All @@ -9,3 +8,4 @@ site/bundle.js
site/build
site/node_modules
.idea
.history
76 changes: 76 additions & 0 deletions dist/Icon.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
"use strict";

Object.defineProperty(exports, "__esModule", {
value: true
});
exports.withBaseIcon = exports["default"] = exports.Icon = void 0;

var _react = _interopRequireDefault(require("react"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var _SvgIcon = _interopRequireDefault(require("./SvgIcon"));

var _excluded = ["style", "className", "icon", "size", "tag"];

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }

function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }

function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

var Icon = function Icon(props) {
var style = props.style,
className = props.className,
icon = props.icon,
size = props.size,
tag = props.tag,
others = _objectWithoutProperties(props, _excluded); //eslint-disable-line


var Tag = tag;
return /*#__PURE__*/_react["default"].createElement(Tag, _extends({}, others, {
style: _objectSpread({
display: 'inline-block'
}, style),
className: className
}), /*#__PURE__*/_react["default"].createElement(_SvgIcon["default"], {
size: props.size,
icon: props.icon,
title: props.title
}));
};

exports.Icon = Icon;

var withBaseIcon = function withBaseIcon(defaultProps) {
return function (props) {
var propsToUse = _objectSpread({}, defaultProps);

return /*#__PURE__*/_react["default"].createElement(Icon, _extends({}, propsToUse, props));
};
};

exports.withBaseIcon = withBaseIcon;
Icon.defaultProps = {
size: 16,
fill: 'currentColor',
tag: 'i'
};
Icon.propTypes = {
icon: _propTypes["default"].object.isRequired,
size: _propTypes["default"].oneOfType([_propTypes["default"].number, _propTypes["default"].string]),
style: _propTypes["default"].object,
tag: _propTypes["default"].oneOf(['i', 'span', 'div']),
className: _propTypes["default"].string
};
var _default = Icon;
exports["default"] = _default;
37 changes: 37 additions & 0 deletions dist/Icon.playground.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
"use strict";

function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }

Object.defineProperty(exports, "__esModule", {
value: true
});
exports.__PlaygroundIcon = void 0;

var _react = _interopRequireDefault(require("react"));

var _Icon = _interopRequireDefault(require("./Icon"));

var icons = _interopRequireWildcard(require("./md/"));

function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }

function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }

var __PlaygroundIcon = function __PlaygroundIcon() {
return /*#__PURE__*/_react["default"].createElement("div", {
style: {
color: 'green',
margin: 2,
padding: 4
}
}, Object.keys(icons).map(function (key) {
return /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
icon: icons[key],
size: 42
});
}));
};

exports.__PlaygroundIcon = __PlaygroundIcon;
109 changes: 109 additions & 0 deletions dist/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@

# react-icons-kit

Note: Please visit https://reactsvgicons.com/
has svg icons directly as react components can you can import to your project without
to need to use a library

Releases:

v2.0.0

- [@kamikazebr](https://github.com/kamikazebr) export withBaseIcon - PR [#75](https://github.com/wmira/react-icons-kit/pull/75)
- [@lyleunderwood](https://github.com/lyleunderwood) Don't discard fill=none - PR [#73](https://github.com/wmira/react-icons-kit/pull/73)
- [@lyleunderwood](https://github.com/lyleunderwood) Update Material Design Icons to 4.0.0 - PR [#60](https://github.com/wmira/react-icons-kit/pull/60)
- [@vahissan](https://github.com/vahissan) Allow IconProp type definition to allow all HTML attributes. PR[#58](https://github.com/wmira/react-icons-kit/pull/58)
- [@gottschalkironhack](https://github.com/gottschalkironhack) - Same material v4 update

1.3.0

- `[Merged PR #42 by @nbcnc`](https://github.com/wmira/react-icons-kit/pull/42)


[![Project Supported By ReactForBeginners.com](https://img.shields.io/badge/%F0%9F%91%8D_Project_Supported_By-ReactForBeginners.com%20Tutorials-brightgreen.svg?style=flat-square)](https://ReactForBeginners.com/friend/REACTICONS)

[![Project Supported By AdvancedReact.com](https://img.shields.io/badge/%F0%9F%91%8D_Project_Supported_By-AdvancedReact.com%20Tutorials-brightgreen.svg?style=flat-square)](https://AdvancedReact.com/friend/REACTICONS)

## Installation

```
npm install --save react-icons-kit
```

## Documentation / Demo

Please visit:
[Vercel react-icons-kit](https://react-icons-kit.vercel.app/)
[Surge react-icons-kit](https://react-icons-kit.surge.sh/)

## Bundled Icon Sets

* [`IcoMoon`](https://github.com/Keyamoon/IcoMoon-Free) vmaster
* [`FontAwesome`](http://fortawesome.github.io/Font-Awesome/icons/) v4.7
* [`MaterialIcons`](https://www.google.com/design/icons/) v4.x
* [`Open Iconic`](https://github.com/iconic/open-iconic) v1.1.1
* [`Entypo`](http://entypo.com) latest
* [`Ikons`](http://ikons.piotrkwiatkowski.co.uk/) latest
* [`Metrize`](http://www.alessioatzeni.com/metrize-icons/) latest
* [`Octicons`](https://octicons.github.com/) v5.0.1
* [`Ionicons`](http://ionicons.com/) v2.0.1
* [`Linea`](http://linea.io/) latest
* [`Typicons`](http://typicons.com/) v2.0.8
* [`Noto Emoji Regular`](https://www.google.com/get/noto/#emoji-zsye/) latest
* [`Feather Icons`](https://feathericons.com/)latest

Plus more to come.

## Browse Icon Sets

Browse all available icons here:

[Vercel react-icons-kit](https://react-icons-kit-wmira.vercel.app/)
[Surge react-icons-kit](https://react-icons-kit.surge.sh/)


## Quick Start Guide

```javascript

import Icon from 'react-icons-kit';
import { ic_add_a_photo } from 'react-icons-kit/md/ic_add_a_photo';
import { lock } from 'react-icons-kit/fa/lock';

export const ShowIcons = () => {

return (
<div>
<div><Icon icon={ic_add_a_photo}/><div>
<div><Icon icon={lock}/><div>
</div>
)
}
```

## Tree Shaking

Use the eslint config from this: https://github.com/wmira/react-icons-kit/issues/38

## Development

### React Icons Kit Site

To update the react-icons-kit site deployed at [react-icons-kit](https://react-icons-kit-wmira.vercel.app/), You would need to clone
https://github.com/wmira/react-icons-kit-site

1. Run npm run dist on react-icons-kit
2. Go to react-icons-kit-site and do npm install
3. cd node_modules
4. ln -sf /path/to/react-icons-kit/dist react-icons-kit
5. npm start

You should now be able to live edit the website to do some changes, submit pull request.

## Contributors

react-icons-kit is brought to you by the following contributors:

<a href="https://github.com/wmira/react-icons-kit/graphs/contributors">
<img src="https://contrib.rocks/image?repo=wmira/react-icons-kit" />
</a>
134 changes: 134 additions & 0 deletions dist/SvgIcon.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
"use strict";

function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }

Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = exports.SvgIcon = void 0;

var _react = _interopRequireWildcard(require("react"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var _camelCase = require("camel-case");

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }

function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }

function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }

function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }

function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }

function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }

function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

function notNullOrUndef(val) {
return val !== null && val !== undefined;
}

function expandStyle() {
var style = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
return style.split(';').reduce(function (partial, next) {
// next h ere is key:val
var _next$split = next.split(':'),
_next$split2 = _slicedToArray(_next$split, 2),
key = _next$split2[0],
val = _next$split2[1];

if (notNullOrUndef(key) && notNullOrUndef(val)) {
partial[(0, _camelCase.camelCase)(key)] = val;
}

return partial;
}, {});
}

var walkChildren = function walkChildren(children) {
return children.map(function (child, idx) {
var name = child.name,
attribsMap = child.attribs,
_child$children = child.children,
gchildren = _child$children === void 0 ? null : _child$children; //fill, stroke

var attribs = Object.keys(attribsMap).filter(function (key) {
return key !== 'fill' && key !== 'stroke' && attribsMap[key] !== 'none';
}).reduce(function (partial, key) {
if (key === 'style') {
partial.style = expandStyle(attribsMap[key]);
} else {
partial[(0, _camelCase.camelCase)(key)] = attribsMap[key];
}

return partial;
}, {}); //special case, it has fill and stroke at the same time

var merge = {};

if (attribsMap.fill === 'none' && attribsMap.stroke) {
merge = {
fill: 'none',
stroke: 'currentColor'
};
} else if (attribsMap.fill === 'none') {
merge = {
fill: 'none'
};
}

return /*#__PURE__*/(0, _react.createElement)(name, _objectSpread(_objectSpread({
key: idx
}, attribs), merge), gchildren === null ? gchildren : walkChildren(gchildren));
});
};

var SvgIcon = function SvgIcon(props) {
var size = props.size;
var _props$icon = props.icon,
children = _props$icon.children,
viewBox = _props$icon.viewBox,
_props$icon$attribs = _props$icon.attribs,
svgAttribs = _props$icon$attribs === void 0 ? {} : _props$icon$attribs;
var camelCasedAttribs = Object.keys(svgAttribs).reduce(function (partial, key) {
partial[(0, _camelCase.camelCase)(key)] = svgAttribs[key];
return partial;
}, {});
return /*#__PURE__*/_react["default"].createElement("svg", _extends({
fill: "currentColor",
style: {
display: 'inline-block',
verticalAlign: 'middle'
},
height: size,
width: size,
viewBox: viewBox
}, camelCasedAttribs), props.title ? /*#__PURE__*/_react["default"].createElement("title", null, props.title) : null, walkChildren(children));
};

exports.SvgIcon = SvgIcon;
SvgIcon.defaultProps = {
size: 16
};
SvgIcon.propTypes = {
icon: _propTypes["default"].object.isRequired,
size: _propTypes["default"].oneOfType([_propTypes["default"].number, _propTypes["default"].string]),
title: _propTypes["default"].string
};
var _default = SvgIcon;
exports["default"] = _default;
16 changes: 16 additions & 0 deletions dist/entypo/address.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
"use strict";

Object.defineProperty(exports, "__esModule", {
value: true
});
exports.address = void 0;
var address = {
"viewBox": "0 0 20 20",
"children": [{
"name": "path",
"attribs": {
"d": "M19.799,5.165l-2.375-1.83c-0.135-0.093-0.324-0.176-0.521-0.237C16.705,3.037,16.5,3,16.336,3H9.5l0.801,5h6.035\r\n\tc0.164,0,0.369-0.037,0.566-0.098s0.387-0.145,0.521-0.236l2.375-1.832C19.933,5.743,20,5.622,20,5.5S19.933,5.257,19.799,5.165z\r\n\t M8.5,1h-1C7.224,1,7,1.224,7,1.5V5H3.664c-0.166,0-0.37,0.037-0.567,0.099C2.899,5.159,2.71,5.242,2.576,5.335l-2.375,1.83\r\n\tC0.066,7.256,0,7.378,0,7.5c0,0.121,0.066,0.242,0.201,0.335l2.375,1.832C2.71,9.758,2.899,9.842,3.097,9.902\r\n\tC3.294,9.963,3.498,10,3.664,10H7v8.5C7,18.776,7.224,19,7.5,19h1C8.776,19,9,18.776,9,18.5v-17C9,1.224,8.776,1,8.5,1z"
}
}]
};
exports.address = address;
Loading