@zleap-ai/icons 0.0.69 → 0.0.70
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +32 -0
- package/dist/cjs/index.js +2 -10
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/rn-component-generator.js +130 -0
- package/dist/cjs/rn-component-generator.js.map +1 -0
- package/dist/esm/index.js +0 -6
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/rn-component-generator.js +126 -0
- package/dist/esm/rn-component-generator.js.map +1 -0
- package/dist/types/index.d.ts +0 -4
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/rn-component-generator.d.ts +4 -0
- package/dist/types/rn-component-generator.d.ts.map +1 -0
- package/icons.json +2 -24
- package/package.json +12 -2
- package/react-native/icons/IconAi.tsx +36 -0
- package/react-native/icons/IconAi1.tsx +36 -0
- package/react-native/icons/IconBack.tsx +53 -0
- package/react-native/icons/IconBianJi.tsx +53 -0
- package/react-native/icons/IconCaiJing.tsx +36 -0
- package/react-native/icons/IconCaiJing1.tsx +36 -0
- package/react-native/icons/IconCheck.tsx +53 -0
- package/react-native/icons/IconFenXiang.tsx +53 -0
- package/react-native/icons/IconFrame.tsx +36 -0
- package/react-native/icons/IconFuZhiLianJie.tsx +53 -0
- package/react-native/icons/IconGengDuo.tsx +53 -0
- package/react-native/icons/IconGengDuo1.tsx +53 -0
- package/react-native/icons/IconGouXuan.tsx +53 -0
- package/react-native/icons/IconGouXuanYiGouXuan.tsx +53 -0
- package/react-native/icons/IconGuanBi.tsx +53 -0
- package/react-native/icons/IconGuanBiXiao.tsx +53 -0
- package/react-native/icons/IconGuanBiYuLan.tsx +53 -0
- package/react-native/icons/IconHaoYou.tsx +53 -0
- package/react-native/icons/IconHuiDingBu.tsx +53 -0
- package/react-native/icons/IconJiaoYu.tsx +36 -0
- package/react-native/icons/IconJiaoYu1.tsx +36 -0
- package/react-native/icons/IconKeJi.tsx +36 -0
- package/react-native/icons/IconKeJi1.tsx +36 -0
- package/react-native/icons/IconLianJie.tsx +53 -0
- package/react-native/icons/IconLianXiRen.tsx +53 -0
- package/react-native/icons/IconLianXiRen1.tsx +53 -0
- package/react-native/icons/IconLianXiRen2.tsx +53 -0
- package/react-native/icons/IconLianXiRen3.tsx +53 -0
- package/react-native/icons/IconLike.tsx +53 -0
- package/react-native/icons/IconPingLun.tsx +53 -0
- package/react-native/icons/IconQiChe.tsx +36 -0
- package/react-native/icons/IconQiChe1.tsx +36 -0
- package/react-native/icons/IconSearch.tsx +53 -0
- package/react-native/icons/IconShanChuDELETE.tsx +53 -0
- package/react-native/icons/IconShangYe.tsx +36 -0
- package/react-native/icons/IconShangYe1.tsx +36 -0
- package/react-native/icons/IconShare.tsx +53 -0
- package/react-native/icons/IconSheZhi.tsx +53 -0
- package/react-native/icons/IconShouCang.tsx +53 -0
- package/react-native/icons/IconShouYe.tsx +53 -0
- package/react-native/icons/IconShuaXin.tsx +53 -0
- package/react-native/icons/IconSouSuo.tsx +53 -0
- package/react-native/icons/IconSuoDing.tsx +53 -0
- package/react-native/icons/IconTanSuo.tsx +53 -0
- package/react-native/icons/IconTiYu.tsx +36 -0
- package/react-native/icons/IconTongZhi.tsx +53 -0
- package/react-native/icons/IconTongZhi1.tsx +53 -0
- package/react-native/icons/IconWeiXinHaoYou.tsx +53 -0
- package/react-native/icons/IconWenDang.tsx +53 -0
- package/react-native/icons/IconWenHuaTiYu1.tsx +36 -0
- package/react-native/icons/IconXiaoXi.tsx +53 -0
- package/react-native/icons/IconYiDianZan1.tsx +53 -0
- package/react-native/icons/IconYiGouXuan.tsx +36 -0
- package/react-native/icons/IconYiShouCang1.tsx +53 -0
- package/react-native/icons/IconYou.tsx +53 -0
- package/react-native/icons/IconYuLan.tsx +53 -0
- package/react-native/icons/IconYuLan1.tsx +53 -0
- package/react-native/icons/IconYuLanGuanBi.tsx +53 -0
- package/react-native/icons/IconZengJia.tsx +53 -0
- package/react-native/icons/IconZengJia1.tsx +53 -0
- package/react-native/icons/IconZhanKai.tsx +53 -0
- package/react-native/icons/IconZhengQue.tsx +53 -0
- package/react-native/icons/IconZhiChang.tsx +36 -0
- package/react-native/icons/IconZhiChang1.tsx +36 -0
- package/react-native/icons/IconZhiShiKu.tsx +53 -0
- package/react-native/icons/IconZhuShou.tsx +53 -0
- package/react-native/icons/IconZhuShouGuanLi.tsx +53 -0
- package/react-native/icons/IconZuo.tsx +53 -0
- package/react-native/index.ts +208 -0
- package/dist/cjs/icons/IconLianXiRen.js +0 -17
- package/dist/cjs/icons/IconLianXiRen.js.map +0 -1
- package/dist/esm/icons/IconLianXiRen.js +0 -14
- package/dist/esm/icons/IconLianXiRen.js.map +0 -1
- package/dist/types/icons/IconLianXiRen.d.ts +0 -17
- package/dist/types/icons/IconLianXiRen.d.ts.map +0 -1
- package/svg/Frame.svg +0 -1
- package/svg//350/201/224/347/263/273/344/272/272.svg +0 -1
package/README.md
CHANGED
|
@@ -24,6 +24,16 @@ yarn add @zleap-ai/icons
|
|
|
24
24
|
pnpm add @zleap-ai/icons
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
+
### React Native 安装
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npm install @zleap-ai/icons react-native-svg
|
|
31
|
+
# 或
|
|
32
|
+
yarn add @zleap-ai/icons react-native-svg
|
|
33
|
+
# 或
|
|
34
|
+
pnpm add @zleap-ai/icons react-native-svg
|
|
35
|
+
```
|
|
36
|
+
|
|
27
37
|
### 使用方式
|
|
28
38
|
|
|
29
39
|
#### 1. 导入单个图标(推荐,支持 Tree Shaking)
|
|
@@ -97,6 +107,28 @@ console.log(iconsData.icons) // 所有图标信息
|
|
|
97
107
|
console.log(iconsData.version) // 当前版本
|
|
98
108
|
```
|
|
99
109
|
|
|
110
|
+
#### 6. React Native(同源 SVG 生成)
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
# 在仓库根目录执行
|
|
114
|
+
npm run generate-rn-components
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
生成结果位于:
|
|
118
|
+
|
|
119
|
+
- `react-native/icons/*.tsx`
|
|
120
|
+
- `react-native/index.ts`
|
|
121
|
+
|
|
122
|
+
在 RN 项目中使用(需安装 `react-native-svg`):
|
|
123
|
+
|
|
124
|
+
```tsx
|
|
125
|
+
import { IconLianXiRen3 } from '@zleap-ai/icons/react-native'
|
|
126
|
+
|
|
127
|
+
export default function Demo() {
|
|
128
|
+
return <IconLianXiRen3 size={28} color="#ef4444" />
|
|
129
|
+
}
|
|
130
|
+
```
|
|
131
|
+
|
|
100
132
|
## 项目结构
|
|
101
133
|
|
|
102
134
|
```
|
package/dist/cjs/index.js
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
* Do not edit this file manually - it is generated by the build process.
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.IconWenHuaTiYu1 = exports.IconWenDang = exports.IconWeiXinHaoYou = exports.IconTongZhi1 = exports.IconTongZhi = exports.IconTiYu = exports.IconTanSuo = exports.IconSuoDing = exports.IconSouSuo = exports.IconShuaXin = exports.IconShouYe = exports.IconShouCang = exports.IconSheZhi = exports.IconShare = exports.IconShangYe1 = exports.IconShangYe = exports.IconShanChuDELETE = exports.IconSearch = exports.IconQiChe1 = exports.IconQiChe = exports.IconPingLun = exports.IconLike = exports.IconLianXiRen3 = exports.IconLianXiRen2 = exports.IconLianXiRen1 = exports.
|
|
10
|
-
exports.allIcons = exports.IconZuo = exports.IconZhuShouGuanLi = exports.IconZhuShou = exports.IconZhiShiKu = exports.IconZhiChang1 = exports.IconZhiChang = exports.IconZhengQue = exports.IconZhanKai = exports.IconZengJia1 = exports.IconZengJia = exports.IconYuLanGuanBi = exports.IconYuLan1 = exports.IconYuLan = exports.IconYou = exports.IconYiShouCang1 = exports.IconYiGouXuan =
|
|
9
|
+
exports.IconYiDianZan1 = exports.IconXiaoXi = exports.IconWenHuaTiYu1 = exports.IconWenDang = exports.IconWeiXinHaoYou = exports.IconTongZhi1 = exports.IconTongZhi = exports.IconTiYu = exports.IconTanSuo = exports.IconSuoDing = exports.IconSouSuo = exports.IconShuaXin = exports.IconShouYe = exports.IconShouCang = exports.IconSheZhi = exports.IconShare = exports.IconShangYe1 = exports.IconShangYe = exports.IconShanChuDELETE = exports.IconSearch = exports.IconQiChe1 = exports.IconQiChe = exports.IconPingLun = exports.IconLike = exports.IconLianXiRen3 = exports.IconLianXiRen2 = exports.IconLianXiRen1 = exports.IconLianJie = exports.IconKeJi1 = exports.IconKeJi = exports.IconJiaoYu1 = exports.IconJiaoYu = exports.IconHuiDingBu = exports.IconHaoYou = exports.IconGuanBiYuLan = exports.IconGuanBiXiao = exports.IconGuanBi = exports.IconGouXuanYiGouXuan = exports.IconGouXuan = exports.IconGengDuo1 = exports.IconGengDuo = exports.IconFuZhiLianJie = exports.IconFenXiang = exports.IconCheck = exports.IconCaiJing1 = exports.IconCaiJing = exports.IconBianJi = exports.IconBack = exports.IconAi1 = exports.IconAi = void 0;
|
|
10
|
+
exports.allIcons = exports.IconZuo = exports.IconZhuShouGuanLi = exports.IconZhuShou = exports.IconZhiShiKu = exports.IconZhiChang1 = exports.IconZhiChang = exports.IconZhengQue = exports.IconZhanKai = exports.IconZengJia1 = exports.IconZengJia = exports.IconYuLanGuanBi = exports.IconYuLan1 = exports.IconYuLan = exports.IconYou = exports.IconYiShouCang1 = exports.IconYiGouXuan = void 0;
|
|
11
11
|
const IconAi_1 = require("./icons/IconAi");
|
|
12
12
|
const IconAi1_1 = require("./icons/IconAi1");
|
|
13
13
|
const IconBack_1 = require("./icons/IconBack");
|
|
@@ -16,7 +16,6 @@ const IconCaiJing_1 = require("./icons/IconCaiJing");
|
|
|
16
16
|
const IconCaiJing1_1 = require("./icons/IconCaiJing1");
|
|
17
17
|
const IconCheck_1 = require("./icons/IconCheck");
|
|
18
18
|
const IconFenXiang_1 = require("./icons/IconFenXiang");
|
|
19
|
-
const IconFrame_1 = require("./icons/IconFrame");
|
|
20
19
|
const IconFuZhiLianJie_1 = require("./icons/IconFuZhiLianJie");
|
|
21
20
|
const IconGengDuo_1 = require("./icons/IconGengDuo");
|
|
22
21
|
const IconGengDuo1_1 = require("./icons/IconGengDuo1");
|
|
@@ -32,7 +31,6 @@ const IconJiaoYu1_1 = require("./icons/IconJiaoYu1");
|
|
|
32
31
|
const IconKeJi_1 = require("./icons/IconKeJi");
|
|
33
32
|
const IconKeJi1_1 = require("./icons/IconKeJi1");
|
|
34
33
|
const IconLianJie_1 = require("./icons/IconLianJie");
|
|
35
|
-
const IconLianXiRen_1 = require("./icons/IconLianXiRen");
|
|
36
34
|
const IconLianXiRen1_1 = require("./icons/IconLianXiRen1");
|
|
37
35
|
const IconLianXiRen2_1 = require("./icons/IconLianXiRen2");
|
|
38
36
|
const IconLianXiRen3_1 = require("./icons/IconLianXiRen3");
|
|
@@ -92,8 +90,6 @@ var IconCheck_2 = require("./icons/IconCheck");
|
|
|
92
90
|
Object.defineProperty(exports, "IconCheck", { enumerable: true, get: function () { return IconCheck_2.IconCheck; } });
|
|
93
91
|
var IconFenXiang_2 = require("./icons/IconFenXiang");
|
|
94
92
|
Object.defineProperty(exports, "IconFenXiang", { enumerable: true, get: function () { return IconFenXiang_2.IconFenXiang; } });
|
|
95
|
-
var IconFrame_2 = require("./icons/IconFrame");
|
|
96
|
-
Object.defineProperty(exports, "IconFrame", { enumerable: true, get: function () { return IconFrame_2.IconFrame; } });
|
|
97
93
|
var IconFuZhiLianJie_2 = require("./icons/IconFuZhiLianJie");
|
|
98
94
|
Object.defineProperty(exports, "IconFuZhiLianJie", { enumerable: true, get: function () { return IconFuZhiLianJie_2.IconFuZhiLianJie; } });
|
|
99
95
|
var IconGengDuo_2 = require("./icons/IconGengDuo");
|
|
@@ -124,8 +120,6 @@ var IconKeJi1_2 = require("./icons/IconKeJi1");
|
|
|
124
120
|
Object.defineProperty(exports, "IconKeJi1", { enumerable: true, get: function () { return IconKeJi1_2.IconKeJi1; } });
|
|
125
121
|
var IconLianJie_2 = require("./icons/IconLianJie");
|
|
126
122
|
Object.defineProperty(exports, "IconLianJie", { enumerable: true, get: function () { return IconLianJie_2.IconLianJie; } });
|
|
127
|
-
var IconLianXiRen_2 = require("./icons/IconLianXiRen");
|
|
128
|
-
Object.defineProperty(exports, "IconLianXiRen", { enumerable: true, get: function () { return IconLianXiRen_2.IconLianXiRen; } });
|
|
129
123
|
var IconLianXiRen1_2 = require("./icons/IconLianXiRen1");
|
|
130
124
|
Object.defineProperty(exports, "IconLianXiRen1", { enumerable: true, get: function () { return IconLianXiRen1_2.IconLianXiRen1; } });
|
|
131
125
|
var IconLianXiRen2_2 = require("./icons/IconLianXiRen2");
|
|
@@ -224,7 +218,6 @@ exports.allIcons = {
|
|
|
224
218
|
IconCaiJing1: IconCaiJing1_1.IconCaiJing1,
|
|
225
219
|
IconCheck: IconCheck_1.IconCheck,
|
|
226
220
|
IconFenXiang: IconFenXiang_1.IconFenXiang,
|
|
227
|
-
IconFrame: IconFrame_1.IconFrame,
|
|
228
221
|
IconFuZhiLianJie: IconFuZhiLianJie_1.IconFuZhiLianJie,
|
|
229
222
|
IconGengDuo: IconGengDuo_1.IconGengDuo,
|
|
230
223
|
IconGengDuo1: IconGengDuo1_1.IconGengDuo1,
|
|
@@ -240,7 +233,6 @@ exports.allIcons = {
|
|
|
240
233
|
IconKeJi: IconKeJi_1.IconKeJi,
|
|
241
234
|
IconKeJi1: IconKeJi1_1.IconKeJi1,
|
|
242
235
|
IconLianJie: IconLianJie_1.IconLianJie,
|
|
243
|
-
IconLianXiRen: IconLianXiRen_1.IconLianXiRen,
|
|
244
236
|
IconLianXiRen1: IconLianXiRen1_1.IconLianXiRen1,
|
|
245
237
|
IconLianXiRen2: IconLianXiRen2_1.IconLianXiRen2,
|
|
246
238
|
IconLianXiRen3: IconLianXiRen3_1.IconLianXiRen3,
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAEH,2CAAwC;AACxC,6CAA0C;AAC1C,+CAA4C;AAC5C,mDAAgD;AAChD,qDAAkD;AAClD,uDAAoD;AACpD,iDAA8C;AAC9C,uDAAoD;AACpD
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateReactNativeComponent = generateReactNativeComponent;
|
|
4
|
+
exports.generateReactNativeIndex = generateReactNativeIndex;
|
|
5
|
+
const svg_transformer_1 = require("./svg-transformer");
|
|
6
|
+
const component_generator_1 = require("./component-generator");
|
|
7
|
+
function escapeTemplateLiteral(value) {
|
|
8
|
+
return value.replace(/\\/g, '\\\\').replace(/`/g, '\\`').replace(/\$\{/g, '\\${');
|
|
9
|
+
}
|
|
10
|
+
function isPreservedColor(value) {
|
|
11
|
+
const color = value.toLowerCase().replace(/\s/g, '');
|
|
12
|
+
return (color === 'none' ||
|
|
13
|
+
color === 'currentcolor' ||
|
|
14
|
+
color === 'white' ||
|
|
15
|
+
color === '#fff' ||
|
|
16
|
+
color === '#ffffff' ||
|
|
17
|
+
color.startsWith('url('));
|
|
18
|
+
}
|
|
19
|
+
function isMultiColorSvg(svgContent) {
|
|
20
|
+
const matches = svgContent.match(/(fill|stroke)="([^"]+)"/gi) || [];
|
|
21
|
+
const colors = new Set();
|
|
22
|
+
for (const item of matches) {
|
|
23
|
+
const value = item.split('=')[1]?.replace(/^"|"$/g, '');
|
|
24
|
+
if (!value)
|
|
25
|
+
continue;
|
|
26
|
+
if (isPreservedColor(value))
|
|
27
|
+
continue;
|
|
28
|
+
colors.add(value.toLowerCase());
|
|
29
|
+
}
|
|
30
|
+
return colors.size > 1;
|
|
31
|
+
}
|
|
32
|
+
function generateComponentName(iconName) {
|
|
33
|
+
const pascalName = (0, component_generator_1.toPascalCase)(iconName);
|
|
34
|
+
return pascalName ? `Icon${pascalName}` : 'Icon';
|
|
35
|
+
}
|
|
36
|
+
function generateReactNativeComponent(icon) {
|
|
37
|
+
const componentName = generateComponentName(icon.name);
|
|
38
|
+
const propsName = `${componentName}Props`;
|
|
39
|
+
const viewBox = (0, svg_transformer_1.extractViewBox)(icon.svgContent || '') || '0 0 24 24';
|
|
40
|
+
const sourceSvg = icon.svgContent || '<svg viewBox="0 0 24 24"></svg>';
|
|
41
|
+
const escapedXml = escapeTemplateLiteral(sourceSvg);
|
|
42
|
+
const multicolor = isMultiColorSvg(sourceSvg);
|
|
43
|
+
const content = `import React, { forwardRef, useMemo } from 'react'
|
|
44
|
+
import type { ComponentProps } from 'react'
|
|
45
|
+
import { SvgXml } from 'react-native-svg'
|
|
46
|
+
|
|
47
|
+
export interface ${propsName} extends Omit<ComponentProps<typeof SvgXml>, 'xml' | 'width' | 'height'> {
|
|
48
|
+
size?: number | string
|
|
49
|
+
color?: string
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export const ${componentName} = forwardRef<unknown, ${propsName}>(
|
|
53
|
+
({ size = 24, color, ...props }, ref) => {
|
|
54
|
+
const baseXml = useMemo(
|
|
55
|
+
() => \`${escapedXml}\`,
|
|
56
|
+
[],
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
const xml = useMemo(() => {
|
|
60
|
+
${multicolor
|
|
61
|
+
? ` return baseXml`
|
|
62
|
+
: ` if (!color) return baseXml
|
|
63
|
+
return baseXml.replace(
|
|
64
|
+
/(fill|stroke)="([^"]+)"/gi,
|
|
65
|
+
(_match, attr, value) => {
|
|
66
|
+
const normalized = String(value).toLowerCase().replace(/\\s/g, '')
|
|
67
|
+
if (
|
|
68
|
+
normalized === 'none' ||
|
|
69
|
+
normalized === 'currentcolor' ||
|
|
70
|
+
normalized === 'white' ||
|
|
71
|
+
normalized === '#fff' ||
|
|
72
|
+
normalized === '#ffffff' ||
|
|
73
|
+
normalized.startsWith('url(')
|
|
74
|
+
) {
|
|
75
|
+
return \`\${attr}="\${value}"\`
|
|
76
|
+
}
|
|
77
|
+
return \`\${attr}="\${color}"\`
|
|
78
|
+
},
|
|
79
|
+
)`}
|
|
80
|
+
}, [baseXml, color])
|
|
81
|
+
|
|
82
|
+
return (
|
|
83
|
+
<SvgXml
|
|
84
|
+
ref={ref as never}
|
|
85
|
+
xml={xml}
|
|
86
|
+
width={size}
|
|
87
|
+
height={size}
|
|
88
|
+
viewBox="${viewBox}"
|
|
89
|
+
{...props}
|
|
90
|
+
/>
|
|
91
|
+
)
|
|
92
|
+
},
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
${componentName}.displayName = '${componentName}'
|
|
96
|
+
|
|
97
|
+
export default ${componentName}
|
|
98
|
+
`;
|
|
99
|
+
return {
|
|
100
|
+
componentName,
|
|
101
|
+
fileName: `${componentName}.tsx`,
|
|
102
|
+
content,
|
|
103
|
+
types: `export { ${componentName}, type ${propsName} } from './${componentName}'`,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
function generateReactNativeIndex(components) {
|
|
107
|
+
const sorted = [...components].sort((a, b) => a.componentName.localeCompare(b.componentName));
|
|
108
|
+
const imports = sorted
|
|
109
|
+
.map((c) => `import { ${c.componentName} } from './icons/${c.componentName}'`)
|
|
110
|
+
.join('\n');
|
|
111
|
+
const exports = sorted
|
|
112
|
+
.map((c) => `export { ${c.componentName}, type ${c.componentName}Props } from './icons/${c.componentName}'`)
|
|
113
|
+
.join('\n');
|
|
114
|
+
const names = sorted.map((c) => c.componentName).join(',\n ');
|
|
115
|
+
return `/**
|
|
116
|
+
* React Native icon exports (auto-generated)
|
|
117
|
+
*/
|
|
118
|
+
|
|
119
|
+
${imports}
|
|
120
|
+
|
|
121
|
+
${exports}
|
|
122
|
+
|
|
123
|
+
export const allIcons = {
|
|
124
|
+
${names}
|
|
125
|
+
} as const
|
|
126
|
+
|
|
127
|
+
export type IconName = keyof typeof allIcons
|
|
128
|
+
`;
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=rn-component-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rn-component-generator.js","sourceRoot":"","sources":["../../src/rn-component-generator.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.js
CHANGED
|
@@ -12,7 +12,6 @@ import { IconCaiJing } from './icons/IconCaiJing';
|
|
|
12
12
|
import { IconCaiJing1 } from './icons/IconCaiJing1';
|
|
13
13
|
import { IconCheck } from './icons/IconCheck';
|
|
14
14
|
import { IconFenXiang } from './icons/IconFenXiang';
|
|
15
|
-
import { IconFrame } from './icons/IconFrame';
|
|
16
15
|
import { IconFuZhiLianJie } from './icons/IconFuZhiLianJie';
|
|
17
16
|
import { IconGengDuo } from './icons/IconGengDuo';
|
|
18
17
|
import { IconGengDuo1 } from './icons/IconGengDuo1';
|
|
@@ -28,7 +27,6 @@ import { IconJiaoYu1 } from './icons/IconJiaoYu1';
|
|
|
28
27
|
import { IconKeJi } from './icons/IconKeJi';
|
|
29
28
|
import { IconKeJi1 } from './icons/IconKeJi1';
|
|
30
29
|
import { IconLianJie } from './icons/IconLianJie';
|
|
31
|
-
import { IconLianXiRen } from './icons/IconLianXiRen';
|
|
32
30
|
import { IconLianXiRen1 } from './icons/IconLianXiRen1';
|
|
33
31
|
import { IconLianXiRen2 } from './icons/IconLianXiRen2';
|
|
34
32
|
import { IconLianXiRen3 } from './icons/IconLianXiRen3';
|
|
@@ -80,7 +78,6 @@ export { IconCaiJing } from './icons/IconCaiJing';
|
|
|
80
78
|
export { IconCaiJing1 } from './icons/IconCaiJing1';
|
|
81
79
|
export { IconCheck } from './icons/IconCheck';
|
|
82
80
|
export { IconFenXiang } from './icons/IconFenXiang';
|
|
83
|
-
export { IconFrame } from './icons/IconFrame';
|
|
84
81
|
export { IconFuZhiLianJie } from './icons/IconFuZhiLianJie';
|
|
85
82
|
export { IconGengDuo } from './icons/IconGengDuo';
|
|
86
83
|
export { IconGengDuo1 } from './icons/IconGengDuo1';
|
|
@@ -96,7 +93,6 @@ export { IconJiaoYu1 } from './icons/IconJiaoYu1';
|
|
|
96
93
|
export { IconKeJi } from './icons/IconKeJi';
|
|
97
94
|
export { IconKeJi1 } from './icons/IconKeJi1';
|
|
98
95
|
export { IconLianJie } from './icons/IconLianJie';
|
|
99
|
-
export { IconLianXiRen } from './icons/IconLianXiRen';
|
|
100
96
|
export { IconLianXiRen1 } from './icons/IconLianXiRen1';
|
|
101
97
|
export { IconLianXiRen2 } from './icons/IconLianXiRen2';
|
|
102
98
|
export { IconLianXiRen3 } from './icons/IconLianXiRen3';
|
|
@@ -152,7 +148,6 @@ export const allIcons = {
|
|
|
152
148
|
IconCaiJing1,
|
|
153
149
|
IconCheck,
|
|
154
150
|
IconFenXiang,
|
|
155
|
-
IconFrame,
|
|
156
151
|
IconFuZhiLianJie,
|
|
157
152
|
IconGengDuo,
|
|
158
153
|
IconGengDuo1,
|
|
@@ -168,7 +163,6 @@ export const allIcons = {
|
|
|
168
163
|
IconKeJi,
|
|
169
164
|
IconKeJi1,
|
|
170
165
|
IconLianJie,
|
|
171
|
-
IconLianXiRen,
|
|
172
166
|
IconLianXiRen1,
|
|
173
167
|
IconLianXiRen2,
|
|
174
168
|
IconLianXiRen3,
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { extractViewBox } from './svg-transformer';
|
|
2
|
+
import { toPascalCase } from './component-generator';
|
|
3
|
+
function escapeTemplateLiteral(value) {
|
|
4
|
+
return value.replace(/\\/g, '\\\\').replace(/`/g, '\\`').replace(/\$\{/g, '\\${');
|
|
5
|
+
}
|
|
6
|
+
function isPreservedColor(value) {
|
|
7
|
+
const color = value.toLowerCase().replace(/\s/g, '');
|
|
8
|
+
return (color === 'none' ||
|
|
9
|
+
color === 'currentcolor' ||
|
|
10
|
+
color === 'white' ||
|
|
11
|
+
color === '#fff' ||
|
|
12
|
+
color === '#ffffff' ||
|
|
13
|
+
color.startsWith('url('));
|
|
14
|
+
}
|
|
15
|
+
function isMultiColorSvg(svgContent) {
|
|
16
|
+
const matches = svgContent.match(/(fill|stroke)="([^"]+)"/gi) || [];
|
|
17
|
+
const colors = new Set();
|
|
18
|
+
for (const item of matches) {
|
|
19
|
+
const value = item.split('=')[1]?.replace(/^"|"$/g, '');
|
|
20
|
+
if (!value)
|
|
21
|
+
continue;
|
|
22
|
+
if (isPreservedColor(value))
|
|
23
|
+
continue;
|
|
24
|
+
colors.add(value.toLowerCase());
|
|
25
|
+
}
|
|
26
|
+
return colors.size > 1;
|
|
27
|
+
}
|
|
28
|
+
function generateComponentName(iconName) {
|
|
29
|
+
const pascalName = toPascalCase(iconName);
|
|
30
|
+
return pascalName ? `Icon${pascalName}` : 'Icon';
|
|
31
|
+
}
|
|
32
|
+
export function generateReactNativeComponent(icon) {
|
|
33
|
+
const componentName = generateComponentName(icon.name);
|
|
34
|
+
const propsName = `${componentName}Props`;
|
|
35
|
+
const viewBox = extractViewBox(icon.svgContent || '') || '0 0 24 24';
|
|
36
|
+
const sourceSvg = icon.svgContent || '<svg viewBox="0 0 24 24"></svg>';
|
|
37
|
+
const escapedXml = escapeTemplateLiteral(sourceSvg);
|
|
38
|
+
const multicolor = isMultiColorSvg(sourceSvg);
|
|
39
|
+
const content = `import React, { forwardRef, useMemo } from 'react'
|
|
40
|
+
import type { ComponentProps } from 'react'
|
|
41
|
+
import { SvgXml } from 'react-native-svg'
|
|
42
|
+
|
|
43
|
+
export interface ${propsName} extends Omit<ComponentProps<typeof SvgXml>, 'xml' | 'width' | 'height'> {
|
|
44
|
+
size?: number | string
|
|
45
|
+
color?: string
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export const ${componentName} = forwardRef<unknown, ${propsName}>(
|
|
49
|
+
({ size = 24, color, ...props }, ref) => {
|
|
50
|
+
const baseXml = useMemo(
|
|
51
|
+
() => \`${escapedXml}\`,
|
|
52
|
+
[],
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
const xml = useMemo(() => {
|
|
56
|
+
${multicolor
|
|
57
|
+
? ` return baseXml`
|
|
58
|
+
: ` if (!color) return baseXml
|
|
59
|
+
return baseXml.replace(
|
|
60
|
+
/(fill|stroke)="([^"]+)"/gi,
|
|
61
|
+
(_match, attr, value) => {
|
|
62
|
+
const normalized = String(value).toLowerCase().replace(/\\s/g, '')
|
|
63
|
+
if (
|
|
64
|
+
normalized === 'none' ||
|
|
65
|
+
normalized === 'currentcolor' ||
|
|
66
|
+
normalized === 'white' ||
|
|
67
|
+
normalized === '#fff' ||
|
|
68
|
+
normalized === '#ffffff' ||
|
|
69
|
+
normalized.startsWith('url(')
|
|
70
|
+
) {
|
|
71
|
+
return \`\${attr}="\${value}"\`
|
|
72
|
+
}
|
|
73
|
+
return \`\${attr}="\${color}"\`
|
|
74
|
+
},
|
|
75
|
+
)`}
|
|
76
|
+
}, [baseXml, color])
|
|
77
|
+
|
|
78
|
+
return (
|
|
79
|
+
<SvgXml
|
|
80
|
+
ref={ref as never}
|
|
81
|
+
xml={xml}
|
|
82
|
+
width={size}
|
|
83
|
+
height={size}
|
|
84
|
+
viewBox="${viewBox}"
|
|
85
|
+
{...props}
|
|
86
|
+
/>
|
|
87
|
+
)
|
|
88
|
+
},
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
${componentName}.displayName = '${componentName}'
|
|
92
|
+
|
|
93
|
+
export default ${componentName}
|
|
94
|
+
`;
|
|
95
|
+
return {
|
|
96
|
+
componentName,
|
|
97
|
+
fileName: `${componentName}.tsx`,
|
|
98
|
+
content,
|
|
99
|
+
types: `export { ${componentName}, type ${propsName} } from './${componentName}'`,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
export function generateReactNativeIndex(components) {
|
|
103
|
+
const sorted = [...components].sort((a, b) => a.componentName.localeCompare(b.componentName));
|
|
104
|
+
const imports = sorted
|
|
105
|
+
.map((c) => `import { ${c.componentName} } from './icons/${c.componentName}'`)
|
|
106
|
+
.join('\n');
|
|
107
|
+
const exports = sorted
|
|
108
|
+
.map((c) => `export { ${c.componentName}, type ${c.componentName}Props } from './icons/${c.componentName}'`)
|
|
109
|
+
.join('\n');
|
|
110
|
+
const names = sorted.map((c) => c.componentName).join(',\n ');
|
|
111
|
+
return `/**
|
|
112
|
+
* React Native icon exports (auto-generated)
|
|
113
|
+
*/
|
|
114
|
+
|
|
115
|
+
${imports}
|
|
116
|
+
|
|
117
|
+
${exports}
|
|
118
|
+
|
|
119
|
+
export const allIcons = {
|
|
120
|
+
${names}
|
|
121
|
+
} as const
|
|
122
|
+
|
|
123
|
+
export type IconName = keyof typeof allIcons
|
|
124
|
+
`;
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=rn-component-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rn-component-generator.js","sourceRoot":"","sources":["../../src/rn-component-generator.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -12,7 +12,6 @@ export { IconCaiJing, type IconCaiJingProps } from './icons/IconCaiJing';
|
|
|
12
12
|
export { IconCaiJing1, type IconCaiJing1Props } from './icons/IconCaiJing1';
|
|
13
13
|
export { IconCheck, type IconCheckProps } from './icons/IconCheck';
|
|
14
14
|
export { IconFenXiang, type IconFenXiangProps } from './icons/IconFenXiang';
|
|
15
|
-
export { IconFrame, type IconFrameProps } from './icons/IconFrame';
|
|
16
15
|
export { IconFuZhiLianJie, type IconFuZhiLianJieProps } from './icons/IconFuZhiLianJie';
|
|
17
16
|
export { IconGengDuo, type IconGengDuoProps } from './icons/IconGengDuo';
|
|
18
17
|
export { IconGengDuo1, type IconGengDuo1Props } from './icons/IconGengDuo1';
|
|
@@ -28,7 +27,6 @@ export { IconJiaoYu1, type IconJiaoYu1Props } from './icons/IconJiaoYu1';
|
|
|
28
27
|
export { IconKeJi, type IconKeJiProps } from './icons/IconKeJi';
|
|
29
28
|
export { IconKeJi1, type IconKeJi1Props } from './icons/IconKeJi1';
|
|
30
29
|
export { IconLianJie, type IconLianJieProps } from './icons/IconLianJie';
|
|
31
|
-
export { IconLianXiRen, type IconLianXiRenProps } from './icons/IconLianXiRen';
|
|
32
30
|
export { IconLianXiRen1, type IconLianXiRen1Props } from './icons/IconLianXiRen1';
|
|
33
31
|
export { IconLianXiRen2, type IconLianXiRen2Props } from './icons/IconLianXiRen2';
|
|
34
32
|
export { IconLianXiRen3, type IconLianXiRen3Props } from './icons/IconLianXiRen3';
|
|
@@ -84,7 +82,6 @@ export declare const allIcons: {
|
|
|
84
82
|
readonly IconCaiJing1: import("react").ForwardRefExoticComponent<Omit<import(".").IconCaiJing1Props, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
85
83
|
readonly IconCheck: import("react").ForwardRefExoticComponent<Omit<import(".").IconCheckProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
86
84
|
readonly IconFenXiang: import("react").ForwardRefExoticComponent<Omit<import(".").IconFenXiangProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
87
|
-
readonly IconFrame: import("react").ForwardRefExoticComponent<Omit<import(".").IconFrameProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
88
85
|
readonly IconFuZhiLianJie: import("react").ForwardRefExoticComponent<Omit<import(".").IconFuZhiLianJieProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
89
86
|
readonly IconGengDuo: import("react").ForwardRefExoticComponent<Omit<import(".").IconGengDuoProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
90
87
|
readonly IconGengDuo1: import("react").ForwardRefExoticComponent<Omit<import(".").IconGengDuo1Props, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
@@ -100,7 +97,6 @@ export declare const allIcons: {
|
|
|
100
97
|
readonly IconKeJi: import("react").ForwardRefExoticComponent<Omit<import(".").IconKeJiProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
101
98
|
readonly IconKeJi1: import("react").ForwardRefExoticComponent<Omit<import(".").IconKeJi1Props, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
102
99
|
readonly IconLianJie: import("react").ForwardRefExoticComponent<Omit<import(".").IconLianJieProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
103
|
-
readonly IconLianXiRen: import("react").ForwardRefExoticComponent<Omit<import(".").IconLianXiRenProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
104
100
|
readonly IconLianXiRen1: import("react").ForwardRefExoticComponent<Omit<import(".").IconLianXiRen1Props, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
105
101
|
readonly IconLianXiRen2: import("react").ForwardRefExoticComponent<Omit<import(".").IconLianXiRen2Props, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
106
102
|
readonly IconLianXiRen3: import("react").ForwardRefExoticComponent<Omit<import(".").IconLianXiRen3Props, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { IconMetadata, ComponentTemplate } from './types';
|
|
2
|
+
export declare function generateReactNativeComponent(icon: IconMetadata): ComponentTemplate;
|
|
3
|
+
export declare function generateReactNativeIndex(components: ComponentTemplate[]): string;
|
|
4
|
+
//# sourceMappingURL=rn-component-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rn-component-generator.d.ts","sourceRoot":"","sources":["../../src/rn-component-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAuC9D,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,YAAY,GAAG,iBAAiB,CAuElF;AAED,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,iBAAiB,EAAE,GAAG,MAAM,CA+BhF"}
|
package/icons.json
CHANGED
|
@@ -1,19 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": "1.0.0",
|
|
3
|
-
"generatedAt": "2026-03-
|
|
4
|
-
"totalCount":
|
|
3
|
+
"generatedAt": "2026-03-20T06:17:33.214Z",
|
|
4
|
+
"totalCount": 66,
|
|
5
5
|
"icons": [
|
|
6
|
-
{
|
|
7
|
-
"name": "IconFrame",
|
|
8
|
-
"originalName": "Frame",
|
|
9
|
-
"svgPath": "svg/Frame.svg",
|
|
10
|
-
"componentPath": "src/icons/IconFrame.tsx",
|
|
11
|
-
"size": {
|
|
12
|
-
"width": 64,
|
|
13
|
-
"height": 64
|
|
14
|
-
},
|
|
15
|
-
"createdAt": "2026-03-19T10:23:14.425Z"
|
|
16
|
-
},
|
|
17
6
|
{
|
|
18
7
|
"name": "IconHaoYou",
|
|
19
8
|
"originalName": "好友",
|
|
@@ -289,17 +278,6 @@
|
|
|
289
278
|
},
|
|
290
279
|
"createdAt": "2026-03-09T10:10:02.087Z"
|
|
291
280
|
},
|
|
292
|
-
{
|
|
293
|
-
"name": "IconLianXiRen",
|
|
294
|
-
"originalName": "联系人",
|
|
295
|
-
"svgPath": "svg/联系人.svg",
|
|
296
|
-
"componentPath": "src/icons/IconLianXiRen.tsx",
|
|
297
|
-
"size": {
|
|
298
|
-
"width": 24,
|
|
299
|
-
"height": 24
|
|
300
|
-
},
|
|
301
|
-
"createdAt": "2026-03-09T10:08:49.241Z"
|
|
302
|
-
},
|
|
303
281
|
{
|
|
304
282
|
"name": "IconYuLan1",
|
|
305
283
|
"originalName": "预览1",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zleap-ai/icons",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.70",
|
|
4
4
|
"description": "Icon library auto-generated from Figma",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -16,11 +16,14 @@
|
|
|
16
16
|
"require": "./dist/cjs/index.js",
|
|
17
17
|
"types": "./dist/types/index.d.ts"
|
|
18
18
|
},
|
|
19
|
+
"./react-native": "./react-native/index.ts",
|
|
20
|
+
"./react-native/*": "./react-native/*",
|
|
19
21
|
"./svg/*": "./svg/*",
|
|
20
22
|
"./sprite": "./sprite/icons.svg"
|
|
21
23
|
},
|
|
22
24
|
"files": [
|
|
23
25
|
"dist",
|
|
26
|
+
"react-native",
|
|
24
27
|
"svg",
|
|
25
28
|
"sprite",
|
|
26
29
|
"icons.json"
|
|
@@ -30,6 +33,7 @@
|
|
|
30
33
|
"validate-icons": "tsx scripts/validate-icons.ts",
|
|
31
34
|
"transform-svg": "tsx scripts/transform-svg.ts",
|
|
32
35
|
"generate-components": "tsx scripts/generate-components.ts",
|
|
36
|
+
"generate-rn-components": "tsx scripts/generate-rn-components.ts",
|
|
33
37
|
"generate-outputs": "tsx scripts/generate-outputs.ts",
|
|
34
38
|
"generate-changelog": "tsx scripts/generate-changelog.ts",
|
|
35
39
|
"build": "npm run build:esm && npm run build:cjs && npm run build:types",
|
|
@@ -45,7 +49,13 @@
|
|
|
45
49
|
"test:coverage": "vitest run --coverage"
|
|
46
50
|
},
|
|
47
51
|
"peerDependencies": {
|
|
48
|
-
"react": ">=16.8.0"
|
|
52
|
+
"react": ">=16.8.0",
|
|
53
|
+
"react-native-svg": ">=13.0.0"
|
|
54
|
+
},
|
|
55
|
+
"peerDependenciesMeta": {
|
|
56
|
+
"react-native-svg": {
|
|
57
|
+
"optional": true
|
|
58
|
+
}
|
|
49
59
|
},
|
|
50
60
|
"devDependencies": {
|
|
51
61
|
"@types/node": "^20.0.0",
|