mirror of
https://github.com/coreui/coreui-icons.git
synced 2025-08-09 02:06:28 +02:00
release: @coreui/icons-react v2.0.0-rc.6
This commit is contained in:
3
packages/icons-react/.eslintignore
Normal file
3
packages/icons-react/.eslintignore
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"ignorePatterns": [".eslintrc.js"]
|
||||
}
|
37
packages/icons-react/.eslintrc.js
Normal file
37
packages/icons-react/.eslintrc.js
Normal file
@@ -0,0 +1,37 @@
|
||||
/**
|
||||
* Copyright (c) 2013-present, creativeLabs Lukasz Holeczek.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
'use strict'
|
||||
|
||||
module.exports = {
|
||||
root: true, // So parent files don't get applied
|
||||
env: {
|
||||
es6: true,
|
||||
browser: true,
|
||||
node: true,
|
||||
},
|
||||
extends: [
|
||||
'plugin:react/recommended',
|
||||
'plugin:@typescript-eslint/recommended',
|
||||
'plugin:prettier/recommended',
|
||||
],
|
||||
parser: '@typescript-eslint/parser',
|
||||
parserOptions: {
|
||||
ecmaVersion: 2020,
|
||||
sourceType: 'module',
|
||||
ecmaFeatures: {
|
||||
jsx: true,
|
||||
},
|
||||
},
|
||||
plugins: ['@typescript-eslint', 'react', 'react-hooks'],
|
||||
settings: {
|
||||
react: {
|
||||
pragma: 'React',
|
||||
version: 'detect',
|
||||
},
|
||||
},
|
||||
}
|
1
packages/icons-react/.prettierignore
Normal file
1
packages/icons-react/.prettierignore
Normal file
@@ -0,0 +1 @@
|
||||
dist/
|
7
packages/icons-react/.prettierrc.js
Normal file
7
packages/icons-react/.prettierrc.js
Normal file
@@ -0,0 +1,7 @@
|
||||
module.exports = {
|
||||
semi: false,
|
||||
trailingComma: "all",
|
||||
singleQuote: true,
|
||||
printWidth: 100,
|
||||
tabWidth: 2
|
||||
};
|
49
packages/icons-react/CHANGELOG.md
Normal file
49
packages/icons-react/CHANGELOG.md
Normal file
@@ -0,0 +1,49 @@
|
||||
### [@coreui/icons-react](https://coreui.io/) changelog
|
||||
|
||||
##### `1.1.0`
|
||||
- chore: update to React 17
|
||||
|
||||
##### `1.0.0` - `1.0.3`
|
||||
- refactor: improve 'unregistered icon' error message
|
||||
- fix: change 'replaceAll' func to 'replace' due to transpilation error
|
||||
- test: more coverage
|
||||
- fix: typings
|
||||
- fix: tests, lint, export
|
||||
- refactor: cleanup
|
||||
- chore: dependencies update
|
||||
|
||||
##### `1.0.0-alpha.3`
|
||||
- test: add missing tests
|
||||
- refactor: cleanup
|
||||
- chore: dependencies update and cleanup
|
||||
|
||||
##### `1.0.0-alpha.0`
|
||||
- initial version
|
||||
|
||||
install:
|
||||
```bash
|
||||
npm install @coreui/icons-react
|
||||
```
|
||||
|
||||
import:
|
||||
```jsx
|
||||
import { CIcon, CIconRaw } from '@coreui/icons-react';
|
||||
import { cifAu } from '@coreui/icons';
|
||||
```
|
||||
```scss
|
||||
@import '~@coreui/icons/css/all.css';
|
||||
```
|
||||
|
||||
usage:
|
||||
```jsx
|
||||
...
|
||||
class CoreUIIcons extends Component {
|
||||
...
|
||||
render() {
|
||||
return (
|
||||
<CIconRaw name='cifAu' size="2xl"/>
|
||||
<CIcon name="cil-list" size="2xl"/>
|
||||
)
|
||||
}
|
||||
...
|
||||
```
|
91
packages/icons-react/README.md
Normal file
91
packages/icons-react/README.md
Normal file
@@ -0,0 +1,91 @@
|
||||
<p align="center">
|
||||
<a href="https://coreui.io/">
|
||||
<img src="https://coreui.io/images/brand/coreui-icons.svg" alt="CoreUI Icons logo" height="50">
|
||||
</a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
Official React.js component for CoreUI Icons and CoreUI Icons PRO.
|
||||
<br>
|
||||
<a href="https://coreui.io/react/docs/components/icon/"><strong>Explore CoreUI Icons for React docs »</strong></a>
|
||||
<br>
|
||||
<br>
|
||||
<a href="https://github.com/coreui/coreui-icons/issues/new?template=bug_report.md">Report bug</a>
|
||||
·
|
||||
<a href="https://github.com/coreui/coreui-icons/issues/new?template=feature_request.md">Request feature</a>
|
||||
·
|
||||
<a href="https://community.coreui.io/">Community</a>
|
||||
·
|
||||
<a href="https://blog.coreui.io/">Blog</a>
|
||||
</p>
|
||||
|
||||
|
||||
## Status
|
||||
[![npm package][npm-badge]][npm]
|
||||
[![NPM downloads][npm-download]][npm]
|
||||

|
||||
|
||||
|
||||
[npm-badge]: https://img.shields.io/npm/v/@coreui/icons-react/latest?style=flat-square
|
||||
[npm]: https://www.npmjs.com/package/@coreui/icons-react
|
||||
[npm-download]: https://img.shields.io/npm/dm/@coreui/icons-react.svg?style=flat-square
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
npm install @coreui/icons
|
||||
npm install @coreui/icons-react@next
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```bash
|
||||
yarn add @coreui/icons
|
||||
yarn add @coreui/icons-react@next
|
||||
```
|
||||
|
||||
## Use
|
||||
|
||||
### Single icon
|
||||
|
||||
```jsx
|
||||
import { CIcon } from '@coreui/icons-react';
|
||||
import { cifAU } from '@coreui/icons';
|
||||
|
||||
...
|
||||
render() {
|
||||
return (
|
||||
<CIcon icon={cilList} size="xxl"/>
|
||||
)
|
||||
}
|
||||
...
|
||||
```
|
||||
|
||||
### All icons
|
||||
|
||||
```jsx
|
||||
import { CIcon } from '@coreui/icons-react';
|
||||
import * as icon from '@coreui/icons';
|
||||
|
||||
...
|
||||
render() {
|
||||
return (
|
||||
<CIcon icon={icon.cilList} size="xxl"/>
|
||||
)
|
||||
}
|
||||
...
|
||||
```
|
||||
|
||||
|
||||
## API
|
||||
|
||||
| property | type | description |
|
||||
| --- | --- | --- |
|
||||
| className | `string` | A string of all className you want applied to the component. |
|
||||
| customClassName | `string` \| `object` \| `string[]` | Use for replacing default CIcon component classes. Prop is overriding the 'size' prop. |
|
||||
| icon | `string` \| `string[]` | Name of the icon placed in React object or SVG content. |
|
||||
| height | `number` | The height attribute defines the vertical length of an icon. |
|
||||
| size | `sm` \| `md` \|`lg` \| `xl` \| `xxl` \| `3xl` \| `4xl` \| `5xl` \| `6xl` \| `7xl` \| `8xl` \| `9xl` | Size of the icon. |
|
||||
| use | `string` | If defined component will be rendered using `use` tag. |
|
||||
| title | `string` | Title tag content. |
|
||||
| width | `number` | The width attribute defines the horizontal length of an icon. |
|
95
packages/icons-react/package.json
Normal file
95
packages/icons-react/package.json
Normal file
@@ -0,0 +1,95 @@
|
||||
{
|
||||
"name": "@coreui/icons-react",
|
||||
"description": "Official React component for CoreUI Icons",
|
||||
"version": "2.0.0-rc.6",
|
||||
"license": "MIT",
|
||||
"homepage": "https://icons.coreui.io",
|
||||
"author": {
|
||||
"name": "CoreUI",
|
||||
"url": "https://coreui.io",
|
||||
"github": "https://github.com/coreui",
|
||||
"twitter": "https://twitter.com/core_ui"
|
||||
},
|
||||
"contributors": [
|
||||
{
|
||||
"name": "CoreUI Team",
|
||||
"url": "https://github.com/orgs/coreui/people"
|
||||
}
|
||||
],
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/coreui/coreui-icons.git"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/coreui/coreui-icons/issues"
|
||||
},
|
||||
"main": "dist/index.js",
|
||||
"module": "dist/index.es.js",
|
||||
"jsnext:main": "dist/index.es.js",
|
||||
"typings": "dist/index.d.ts",
|
||||
"files": [
|
||||
"dist/",
|
||||
"README.md"
|
||||
],
|
||||
"scripts": {
|
||||
"build": "rollup -c",
|
||||
"lint": "eslint \"src/**/*.{js,ts,tsx}\"",
|
||||
"test": "jest --coverage",
|
||||
"test:update": "jest --coverage --updateSnapshot"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^17"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@rollup/plugin-commonjs": "^21.0.0",
|
||||
"@rollup/plugin-node-resolve": "^13.0.5",
|
||||
"@rollup/plugin-typescript": "^8.3.0",
|
||||
"@testing-library/jest-dom": "^5.14.1",
|
||||
"@testing-library/react": "^12.1.2",
|
||||
"@types/react": "^17.0.30",
|
||||
"@types/react-dom": "^17.0.9",
|
||||
"@typescript-eslint/eslint-plugin": "^5.0.0",
|
||||
"@typescript-eslint/parser": "^5.0.0",
|
||||
"classnames": "^2.3.1",
|
||||
"eslint": "^7.32.0",
|
||||
"eslint-config-prettier": "^8.3.0",
|
||||
"eslint-plugin-prettier": "^4.0.0",
|
||||
"eslint-plugin-react": "^7.26.1",
|
||||
"eslint-plugin-react-hooks": "^4.2.0",
|
||||
"jest": "^27.3.0",
|
||||
"prettier": "^2.4.1",
|
||||
"prop-types": "^15.7.2",
|
||||
"react": "^17.0.2",
|
||||
"react-dom": "^17.0.2",
|
||||
"rollup": "^2.56.2",
|
||||
"rollup-plugin-import-css": "^3.0.2",
|
||||
"rollup-plugin-peer-deps-external": "^2.2.4",
|
||||
"ts-jest": "^27.0.7",
|
||||
"typescript": "^4.4.4"
|
||||
},
|
||||
"keywords": [
|
||||
"coreui",
|
||||
"coreui-icons",
|
||||
"coreui-react",
|
||||
"icons",
|
||||
"svg",
|
||||
"svg-icons",
|
||||
"layout",
|
||||
"component",
|
||||
"react"
|
||||
],
|
||||
"jest": {
|
||||
"moduleNameMapper": {
|
||||
"\\.(css|scss)$": "<rootDir>/test/styleMock.js"
|
||||
},
|
||||
"preset": "ts-jest",
|
||||
"testEnvironment": "jsdom",
|
||||
"testPathIgnorePatterns": [
|
||||
"dist/"
|
||||
],
|
||||
"transform": {
|
||||
".*\\.(js)$": "ts-jest",
|
||||
".*\\.(tsx)$": "ts-jest"
|
||||
}
|
||||
}
|
||||
}
|
35
packages/icons-react/rollup.config.js
Normal file
35
packages/icons-react/rollup.config.js
Normal file
@@ -0,0 +1,35 @@
|
||||
import commonjs from '@rollup/plugin-commonjs'
|
||||
import external from 'rollup-plugin-peer-deps-external'
|
||||
import resolve from '@rollup/plugin-node-resolve'
|
||||
import typescript from '@rollup/plugin-typescript'
|
||||
import css from 'rollup-plugin-import-css'
|
||||
import pkg from './package.json'
|
||||
export default {
|
||||
input: 'src/index.ts',
|
||||
output: [
|
||||
{
|
||||
file: pkg.main,
|
||||
format: 'cjs',
|
||||
exports: 'named',
|
||||
sourcemap: true,
|
||||
},
|
||||
{
|
||||
file: pkg.module,
|
||||
format: 'es',
|
||||
exports: 'named',
|
||||
sourcemap: true,
|
||||
},
|
||||
],
|
||||
plugins: [
|
||||
css(),
|
||||
external(),
|
||||
resolve(),
|
||||
typescript({
|
||||
exclude: ['**/__tests__/**'],
|
||||
tsconfig: './tsconfig.json',
|
||||
}),
|
||||
commonjs({
|
||||
include: ['../../node_modules/**'],
|
||||
}),
|
||||
],
|
||||
}
|
78
packages/icons-react/src/CIcon.css
Normal file
78
packages/icons-react/src/CIcon.css
Normal file
@@ -0,0 +1,78 @@
|
||||
.icon {
|
||||
display: inline-block;
|
||||
color: inherit;
|
||||
text-align: center;
|
||||
fill: currentColor;
|
||||
}
|
||||
|
||||
.icon:not(.icon-c-s):not(.icon-custom-size) {
|
||||
width: 1rem;
|
||||
height: 1rem;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.icon:not(.icon-c-s):not(.icon-custom-size).icon-xxl {
|
||||
width: 2rem;
|
||||
height: 2rem;
|
||||
font-size: 2rem;
|
||||
}
|
||||
|
||||
.icon:not(.icon-c-s):not(.icon-custom-size).icon-3xl {
|
||||
width: 3rem;
|
||||
height: 3rem;
|
||||
font-size: 3rem;
|
||||
}
|
||||
|
||||
.icon:not(.icon-c-s):not(.icon-custom-size).icon-4xl {
|
||||
width: 4rem;
|
||||
height: 4rem;
|
||||
font-size: 4rem;
|
||||
}
|
||||
|
||||
.icon:not(.icon-c-s):not(.icon-custom-size).icon-5xl {
|
||||
width: 5rem;
|
||||
height: 5rem;
|
||||
font-size: 5rem;
|
||||
}
|
||||
|
||||
.icon:not(.icon-c-s):not(.icon-custom-size).icon-6xl {
|
||||
width: 6rem;
|
||||
height: 6rem;
|
||||
font-size: 6rem;
|
||||
}
|
||||
|
||||
.icon:not(.icon-c-s):not(.icon-custom-size).icon-7xl {
|
||||
width: 7rem;
|
||||
height: 7rem;
|
||||
font-size: 7rem;
|
||||
}
|
||||
|
||||
.icon:not(.icon-c-s):not(.icon-custom-size).icon-8xl {
|
||||
width: 8rem;
|
||||
height: 8rem;
|
||||
font-size: 8rem;
|
||||
}
|
||||
|
||||
.icon:not(.icon-c-s):not(.icon-custom-size).icon-9xl {
|
||||
width: 9rem;
|
||||
height: 9rem;
|
||||
font-size: 9rem;
|
||||
}
|
||||
|
||||
.icon:not(.icon-c-s):not(.icon-custom-size).icon-xl {
|
||||
width: 1.5rem;
|
||||
height: 1.5rem;
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
.icon:not(.icon-c-s):not(.icon-custom-size).icon-lg {
|
||||
width: 1.25rem;
|
||||
height: 1.25rem;
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
|
||||
.icon:not(.icon-c-s):not(.icon-custom-size).icon-sm {
|
||||
width: 0.875rem;
|
||||
height: 0.875rem;
|
||||
font-size: 0.875rem;
|
||||
}
|
198
packages/icons-react/src/CIcon.tsx
Normal file
198
packages/icons-react/src/CIcon.tsx
Normal file
@@ -0,0 +1,198 @@
|
||||
import PropTypes from 'prop-types'
|
||||
import React, { HTMLAttributes, forwardRef, useState, useMemo } from 'react'
|
||||
import classNames from 'classnames'
|
||||
import './CIcon.css'
|
||||
|
||||
export interface CIconProps extends HTMLAttributes<SVGSVGElement> {
|
||||
/**
|
||||
* A string of all className you want applied to the component.
|
||||
*/
|
||||
className?: string
|
||||
/**
|
||||
* Use `icon={...}` instead of
|
||||
*
|
||||
* @deprecated since version 3.0
|
||||
*/
|
||||
content?: string | string[]
|
||||
/**
|
||||
* Use for replacing default CIcon component classes. Prop is overriding the 'size' prop.
|
||||
*/
|
||||
customClassName?: string | object | string[] // eslint-disable-line @typescript-eslint/ban-types
|
||||
/**
|
||||
* Name of the icon placed in React object or SVG content.
|
||||
*/
|
||||
icon?: string | string[]
|
||||
/**
|
||||
* The height attribute defines the vertical length of an icon.
|
||||
*/
|
||||
height?: number
|
||||
/**
|
||||
* Use `icon="..."` instead of
|
||||
*
|
||||
* @deprecated since version 3.0
|
||||
*/
|
||||
name?: string
|
||||
/**
|
||||
* Size of the icon. Available sizes: 'sm', 'lg', 'xl', 'xxl', '3xl...9xl', 'custom', 'custom-size'.
|
||||
*/
|
||||
size?:
|
||||
| 'custom'
|
||||
| 'custom-size'
|
||||
| 'sm'
|
||||
| 'lg'
|
||||
| 'xl'
|
||||
| 'xxl'
|
||||
| '3xl'
|
||||
| '4xl'
|
||||
| '5xl'
|
||||
| '6xl'
|
||||
| '7xl'
|
||||
| '8xl'
|
||||
| '9xl'
|
||||
/**
|
||||
* If defined component will be rendered using 'use' tag.
|
||||
*/
|
||||
use?: string
|
||||
/**
|
||||
* Title tag content.
|
||||
*/
|
||||
title?: string
|
||||
/**
|
||||
* The width attribute defines the horizontal length of an icon.
|
||||
*/
|
||||
width?: number
|
||||
}
|
||||
|
||||
const toCamelCase = (str: string) => {
|
||||
return str
|
||||
.replace(/([-_][a-z0-9])/gi, ($1) => {
|
||||
return $1.toUpperCase()
|
||||
})
|
||||
.replace(/-/gi, '')
|
||||
}
|
||||
|
||||
export const CIcon = forwardRef<SVGSVGElement, CIconProps>(
|
||||
(
|
||||
{ className, content, customClassName, height, icon, name, size, title, use, width, ...rest },
|
||||
ref,
|
||||
) => {
|
||||
const [change, setChange] = useState(0)
|
||||
const _icon = icon || content || name
|
||||
|
||||
if (content) {
|
||||
process &&
|
||||
process.env &&
|
||||
process.env.NODE_ENV === 'development' &&
|
||||
console.warn(
|
||||
'[CIcon] The `content` property is deprecated and will be removed in v3, please use `icon={...}` instead of.',
|
||||
)
|
||||
}
|
||||
if (name) {
|
||||
process &&
|
||||
process.env &&
|
||||
process.env.NODE_ENV === 'development' &&
|
||||
console.warn(
|
||||
'[CIcon] The `name` property is deprecated and will be removed in v3, please use `icon="..."` instead of.',
|
||||
)
|
||||
}
|
||||
|
||||
useMemo(() => setChange(change + 1), [_icon, JSON.stringify(_icon)])
|
||||
|
||||
const iconName = useMemo(
|
||||
() =>
|
||||
_icon && typeof _icon === 'string' && _icon.includes('-') ? toCamelCase(_icon) : _icon,
|
||||
[change],
|
||||
)
|
||||
|
||||
const titleCode = title ? `<title>${title}</title>` : ''
|
||||
|
||||
const code = useMemo(() => {
|
||||
if (Array.isArray(_icon)) {
|
||||
return _icon
|
||||
}
|
||||
if (typeof _icon === 'string' && React['icons']) {
|
||||
return React['icons'][iconName]
|
||||
}
|
||||
}, [change])
|
||||
|
||||
const iconCode = useMemo(() => {
|
||||
return Array.isArray(code) ? code[1] || code[0] : code
|
||||
}, [change])
|
||||
|
||||
const scale = (() => {
|
||||
return Array.isArray(code) && code.length > 1 ? code[0] : '64 64'
|
||||
})()
|
||||
|
||||
const viewBox = (() => {
|
||||
return rest['viewBox'] || `0 0 ${scale}`
|
||||
})()
|
||||
|
||||
// render
|
||||
|
||||
const _className = customClassName
|
||||
? classNames(customClassName)
|
||||
: classNames(
|
||||
'icon',
|
||||
{
|
||||
[`icon-${size}`]: size,
|
||||
[`icon-custom-size`]: height || width,
|
||||
},
|
||||
className,
|
||||
)
|
||||
|
||||
return use ? (
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
className={_className}
|
||||
{...(height && { height: height })}
|
||||
{...(width && { width: width })}
|
||||
role="img"
|
||||
{...rest}
|
||||
ref={ref}
|
||||
>
|
||||
<use href={use}></use>
|
||||
</svg>
|
||||
) : (
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox={viewBox}
|
||||
className={_className}
|
||||
{...(height && { height: height })}
|
||||
{...(width && { width: width })}
|
||||
role="img"
|
||||
dangerouslySetInnerHTML={{ __html: titleCode + iconCode }}
|
||||
{...rest}
|
||||
ref={ref}
|
||||
/>
|
||||
)
|
||||
},
|
||||
)
|
||||
|
||||
CIcon.propTypes = {
|
||||
className: PropTypes.string,
|
||||
content: PropTypes.oneOfType([PropTypes.array, PropTypes.string]),
|
||||
customClassName: PropTypes.string,
|
||||
height: PropTypes.number,
|
||||
icon: PropTypes.oneOfType([PropTypes.array, PropTypes.string]),
|
||||
name: PropTypes.string,
|
||||
size: PropTypes.oneOf([
|
||||
'custom',
|
||||
'custom-size',
|
||||
'sm',
|
||||
'lg',
|
||||
'xl',
|
||||
'xxl',
|
||||
'3xl',
|
||||
'4xl',
|
||||
'5xl',
|
||||
'6xl',
|
||||
'7xl',
|
||||
'8xl',
|
||||
'9xl',
|
||||
]),
|
||||
title: PropTypes.any,
|
||||
use: PropTypes.any,
|
||||
width: PropTypes.number,
|
||||
}
|
||||
|
||||
CIcon.displayName = 'CIcon'
|
40
packages/icons-react/src/__tests__/CIcon.spec.tsx
Normal file
40
packages/icons-react/src/__tests__/CIcon.spec.tsx
Normal file
@@ -0,0 +1,40 @@
|
||||
import React from 'react'
|
||||
import { render } from '@testing-library/react'
|
||||
import '@testing-library/jest-dom/extend-expect'
|
||||
import CIcon from './../'
|
||||
|
||||
// import { cifAu } from './../../../icons/js/flag/cif-au'
|
||||
|
||||
describe('CIcon', () => {
|
||||
|
||||
it('renders svg with class="icon"', () => {
|
||||
const { container } = render(<CIcon />)
|
||||
expect(container.firstChild).toHaveClass('icon')
|
||||
})
|
||||
|
||||
// it('renders svg with icon', () => {
|
||||
// const { container } = render(<CIcon icon={cifAu} />)
|
||||
// expect(container.firstChild).toContain(cifAu[1])
|
||||
// // expect(render()).toContain(cifAu)
|
||||
// })
|
||||
|
||||
it('renders svg with size', () => {
|
||||
const { container } = render(<CIcon size="xl"/>)
|
||||
expect(container.firstChild).toHaveClass('icon-xl')
|
||||
})
|
||||
|
||||
it('renders svg with custom size', () => {
|
||||
const { container } = render(<CIcon height={20} />)
|
||||
expect(container.firstChild).toHaveClass('icon-custom-size')
|
||||
})
|
||||
|
||||
it('renders svg with className', () => {
|
||||
const { container } = render(<CIcon className="icon-test" />)
|
||||
expect(container.firstChild).toHaveClass('icon-test')
|
||||
})
|
||||
|
||||
// it('renders <svg> with <use>', () => {
|
||||
// const { container } = render(<CIcon use="xxx" />)
|
||||
// expect(container.firstChild?.firstChild).toContain('<use href="xxx" />')
|
||||
// })
|
||||
})
|
3
packages/icons-react/src/index.ts
Normal file
3
packages/icons-react/src/index.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
import { CIcon } from './CIcon'
|
||||
|
||||
export default CIcon
|
5
packages/icons-react/tests/.eslintrc
Normal file
5
packages/icons-react/tests/.eslintrc
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"env": {
|
||||
"mocha": true
|
||||
}
|
||||
}
|
1
packages/icons-react/tests/cif-AU.js
Normal file
1
packages/icons-react/tests/cif-AU.js
Normal file
@@ -0,0 +1 @@
|
||||
export const cifAU = ["301 151","<defs><path id='a' d='M.5.5h150v75H.5z'/><path id='c' d='M.5.5V38h175v37.5h-25L.5.5zm150 0h-75V88H.5V75.5l150-75z'/></defs><g fill='none' fill-rule='evenodd'><path fill='#00008B' fill-rule='nonzero' d='M.5.5h300v150H.5z'/><mask id='b' fill='#fff'><use xlink:href='#a'/></mask><path fill='#000' fill-rule='nonzero' stroke='#FFF' stroke-width='17.578' d='M.5.5l150 75m0-75l-150 75' mask='url(#b)'/><mask id='d' fill='#fff'><use xlink:href='#c'/></mask><path fill='#000' fill-rule='nonzero' stroke='red' stroke-width='9.375' d='M.5.5l150 75m0-75l-150 75' mask='url(#d)'/><path fill='#000' fill-rule='nonzero' stroke='#FFF' stroke-width='23.438' d='M75.5.5V88M.5 38h175'/><path fill='#000' fill-rule='nonzero' stroke='red' stroke-width='14.063' d='M75.5.5v80.273M.5 38h155.273'/><path fill='#00008B' fill-rule='nonzero' d='M.5 75.5h150V.5h50v100H.5z'/><path fill='#FFF' fill-rule='nonzero' d='M75.5 90.5l4.339 13.491 13.252-5.019-7.842 11.803 12.187 7.232-14.118 1.228 1.944 14.037L75.5 123l-9.762 10.272 1.944-14.037-14.118-1.228 12.187-7.232-7.842-11.803 13.252 5.019zM225.5 114.785l2.066 6.424 6.311-2.39-3.734 5.621 5.803 3.444-6.722.585.926 6.684-4.649-4.891-4.649 4.891.926-6.684-6.722-.585 5.803-3.444-3.734-5.621 6.31 2.39zM188 55.411l2.066 6.424 6.311-2.39-3.734 5.621 5.803 3.444-6.722.585.926 6.684-4.65-4.892-4.649 4.891.926-6.684-6.723-.585 5.803-3.444-3.734-5.621 6.311 2.39zM225.5 14.786l2.066 6.424 6.311-2.39-3.734 5.62 5.803 3.444-6.722.585.926 6.684-4.649-4.891-4.649 4.891.926-6.684-6.722-.585 5.803-3.444-3.734-5.62 6.31 2.39zM258.833 45.411l2.066 6.424 6.311-2.39-3.734 5.621 5.803 3.444-6.723.585.926 6.684-4.649-4.891-4.649 4.891.926-6.684-6.723-.585 5.803-3.444-3.734-5.621 6.311 2.39zM240.5 75.5l1.633 4.003 4.311.316-3.302 2.79 1.032 4.198-3.674-2.279-3.674 2.279 1.032-4.198-3.302-2.79 4.311-.316z'/></g>"]
|
28
packages/icons-react/tests/logo.js
Normal file
28
packages/icons-react/tests/logo.js
Normal file
File diff suppressed because one or more lines are too long
25
packages/icons-react/tsconfig.json
Normal file
25
packages/icons-react/tsconfig.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"jsx": "react",
|
||||
"outDir": "dist",
|
||||
"module": "esnext",
|
||||
"target": "es5",
|
||||
"lib": ["es6", "dom", "es2016", "es2017"],
|
||||
"sourceMap": true,
|
||||
"allowJs": true,
|
||||
"declaration": true,
|
||||
"declarationDir": ".",
|
||||
"moduleResolution": "node",
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"noImplicitReturns": true,
|
||||
"noImplicitThis": true,
|
||||
"noImplicitAny": true,
|
||||
"strictNullChecks": true,
|
||||
"suppressImplicitAnyIndexErrors": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"esModuleInterop": true
|
||||
},
|
||||
"include": ["src"],
|
||||
"exclude": ["**/node_modules", "dist"]
|
||||
}
|
Reference in New Issue
Block a user