@shulex/icons 1.0.0 → 1.0.5

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.
Files changed (28) hide show
  1. package/README.md +100 -0
  2. package/dist/icons/AdMailFilled.mjs +9 -0
  3. package/dist/icons/{AppListOutlined.mjs → AppListFilled.mjs} +3 -3
  4. package/dist/icons/{ClockCircleOutlined.mjs → ClockCircleFilled.mjs} +3 -3
  5. package/dist/icons/ContactOutlined.mjs +9 -0
  6. package/dist/icons/DeployOutlined.mjs +9 -0
  7. package/dist/icons/DiscoverOutlined.d.ts +4 -0
  8. package/dist/icons/DiscoverOutlined.mjs +9 -0
  9. package/dist/icons/IntegrationFilled.d.ts +4 -0
  10. package/dist/icons/{IntegrationOutlined.mjs → IntegrationFilled.mjs} +3 -3
  11. package/dist/icons/KnowledgeOutlined.d.ts +4 -0
  12. package/dist/icons/KnowledgeOutlined.mjs +9 -0
  13. package/dist/icons/MenuTriggeOutlined.d.ts +4 -0
  14. package/dist/icons/MenuTriggeOutlined.mjs +9 -0
  15. package/dist/icons/SolveaLogoFilled.d.ts +4 -0
  16. package/dist/icons/SolveaLogoFilled.mjs +9 -0
  17. package/dist/icons/SolveaTextFilled.d.ts +4 -0
  18. package/dist/icons/SolveaTextFilled.mjs +9 -0
  19. package/dist/icons/index.d.ts +11 -5
  20. package/dist/icons/index.mjs +11 -5
  21. package/package.json +19 -12
  22. package/dist/icons/AdMailColored.mjs +0 -9
  23. package/dist/icons/SalesforceLogoColored.mjs +0 -9
  24. /package/dist/icons/{AdMailColored.d.ts → AdMailFilled.d.ts} +0 -0
  25. /package/dist/icons/{AppListOutlined.d.ts → AppListFilled.d.ts} +0 -0
  26. /package/dist/icons/{ClockCircleOutlined.d.ts → ClockCircleFilled.d.ts} +0 -0
  27. /package/dist/icons/{IntegrationOutlined.d.ts → ContactOutlined.d.ts} +0 -0
  28. /package/dist/icons/{SalesforceLogoColored.d.ts → DeployOutlined.d.ts} +0 -0
package/README.md ADDED
@@ -0,0 +1,100 @@
1
+ # @shulex/icons
2
+
3
+ Shulex 图标组件库,基于 React 的 SVG 图标组件。
4
+
5
+ ## 安装
6
+
7
+ ```bash
8
+ npm install @shulex/icons
9
+ # or
10
+ pnpm add @shulex/icons
11
+ ```
12
+
13
+ ## 使用
14
+
15
+ ```tsx
16
+ import { SearchOutlined } from '@shulex/icons';
17
+
18
+ function App() {
19
+ return (
20
+ <div>
21
+ <SearchOutlined style={{ fontSize: 24, color: '#1890ff' }} />
22
+ </div>
23
+ );
24
+ }
25
+ ```
26
+
27
+ ## 开发
28
+
29
+ ### 预览图标
30
+
31
+ ```bash
32
+ pnpm dev
33
+ ```
34
+
35
+ 启动 Playground 开发服务器,在浏览器中预览所有图标。支持:
36
+ - 实时预览所有图标
37
+ - 搜索图标
38
+ - 调整图标大小和颜色
39
+ - 点击图标复制 import 语句
40
+ - 新生成的图标会自动显示(无需修改代码)
41
+
42
+ ### 当前工作流程
43
+
44
+ 1. **添加 SVG 文件**
45
+ 将 SVG 图标文件复制到 `static/` 文件夹
46
+ 图标设计稿:https://www.figma.com/design/IhHjRADCpQ8S8jGgzqIcCA/%E5%B7%A5%E5%8D%95%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1%E7%BB%84%E4%BB%B6?node-id=690-4864&m=dev
47
+
48
+ 2. **生成图标组件**
49
+ ```bash
50
+ pnpm generate
51
+ ```
52
+ 自动将 `static/` 下的 SVG 文件转换为 React 组件,输出到 `src/icons/`
53
+
54
+ 3. **预览图标**
55
+ ```bash
56
+ pnpm dev
57
+ ```
58
+ 在浏览器中查看生成的图标效果
59
+
60
+ 4. **构建**
61
+ ```bash
62
+ pnpm build
63
+ ```
64
+ 打包生成 `dist/` 目录
65
+
66
+ ### 未来工作流程(规划中)
67
+
68
+ 未来将支持从 Figma 直接同步图标资源:
69
+
70
+ 1. **同步 Figma 图标**
71
+ ```bash
72
+ pnpm sync
73
+ ```
74
+ 自动从 Figma 拉取最新图标并生成组件
75
+
76
+ 2. **构建发布**
77
+ ```bash
78
+ pnpm build
79
+ ```
80
+
81
+ > **说明**:`pnpm sync` 命令会执行 `pull` + `generate`,即先从 Figma 同步 SVG 资源,再生成 React 组件。
82
+
83
+ ## 发布
84
+
85
+ ```bash
86
+ pnpm release
87
+ ```
88
+
89
+ 自动完成版本号升级和发布到 npm。
90
+
91
+ ## 脚本说明
92
+
93
+ | 命令 | 说明 |
94
+ |------|------|
95
+ | `pnpm dev` | 启动 Playground 预览所有图标 |
96
+ | `pnpm generate` | 从 `static/` 生成图标组件到 `src/icons/` |
97
+ | `pnpm build` | 构建生产版本 |
98
+ | `pnpm pull` | 从 Figma 拉取 SVG 文件(未来) |
99
+ | `pnpm sync` | 同步 Figma + 生成组件(未来) |
100
+ | `pnpm release` | 自动升级版本并发布 |
@@ -0,0 +1,9 @@
1
+ import ShulexIcon from "../components/ShulexIcon.mjs";
2
+ import * as React from "react";
3
+ const InnerSvg = (props) => /* @__PURE__ */ React.createElement("svg", { viewBox: "0 0 24 24", ...props }, /* @__PURE__ */ React.createElement("path", { d: "m9.33 12.26.54 2.95H8.26l.54-2.95zM15.26 12.26q.75 0 1.2.62.48.6.47 1.77 0 1.13-.46 1.76t-1.2.63h-.57v-4.78z" }), /* @__PURE__ */ React.createElement("path", { fillRule: "evenodd", d: "M19.5 7a3 3 0 0 1 3 3v9a3 3 0 0 1-3 3h-15a3 3 0 0 1-3-3v-9a3 3 0 0 1 3-3zM6.09 18.25v.25h1.6l.36-1.94h2.04l.36 1.94h1.6v-.25l-1.62-7.44-2.73-.01zm7.07-7.45v7.7h2.12q.92 0 1.64-.4.73-.43 1.16-1.27.43-.86.43-2.18t-.43-2.18a3 3 0 0 0-1.16-1.25 3 3 0 0 0-1.64-.42z", clipRule: "evenodd" }), /* @__PURE__ */ React.createElement("path", { d: "M17.5 4a3 3 0 0 1 2.83 2H3.67A3 3 0 0 1 6.5 4zM15.5 1a3 3 0 0 1 2.83 2H5.67A3 3 0 0 1 8.5 1z" }));
4
+ const AdMailFilled = (props, ref) => /* @__PURE__ */ React.createElement(ShulexIcon, { ...props, ref, Icon: InnerSvg, colored: false });
5
+ const RefIcon = React.forwardRef(AdMailFilled);
6
+ if (process.env.NODE_ENV !== "production") {
7
+ RefIcon.displayName = "AdMailFilled";
8
+ }
9
+ export default RefIcon;
@@ -1,9 +1,9 @@
1
1
  import ShulexIcon from "../components/ShulexIcon.mjs";
2
2
  import * as React from "react";
3
3
  const InnerSvg = (props) => /* @__PURE__ */ React.createElement("svg", { viewBox: "0 0 24 24", ...props }, /* @__PURE__ */ React.createElement("path", { d: "M9 13a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2v-6c0-1.1.9-2 2-2zM22 21a1 1 0 1 1 0 2h-8a1 1 0 1 1 0-2zM22 17a1 1 0 1 1 0 2h-4a1 1 0 1 1 0-2zM22 13a1 1 0 1 1 0 2h-8a1 1 0 1 1 0-2zM9 1a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V3c0-1.1.9-2 2-2zM21 1a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2h-6a2 2 0 0 1-2-2V3c0-1.1.9-2 2-2z" }));
4
- const AppListOutlined = (props, ref) => /* @__PURE__ */ React.createElement(ShulexIcon, { ...props, ref, Icon: InnerSvg, colored: false });
5
- const RefIcon = React.forwardRef(AppListOutlined);
4
+ const AppListFilled = (props, ref) => /* @__PURE__ */ React.createElement(ShulexIcon, { ...props, ref, Icon: InnerSvg, colored: false });
5
+ const RefIcon = React.forwardRef(AppListFilled);
6
6
  if (process.env.NODE_ENV !== "production") {
7
- RefIcon.displayName = "AppListOutlined";
7
+ RefIcon.displayName = "AppListFilled";
8
8
  }
9
9
  export default RefIcon;
@@ -1,9 +1,9 @@
1
1
  import ShulexIcon from "../components/ShulexIcon.mjs";
2
2
  import * as React from "react";
3
3
  const InnerSvg = (props) => /* @__PURE__ */ React.createElement("svg", { viewBox: "0 0 24 24", ...props }, /* @__PURE__ */ React.createElement("path", { fillRule: "evenodd", d: "M12 1a11 11 0 1 0 0 22 11 11 0 0 0 0-22m1 5a1 1 0 1 0-2 0v6q0 .41.3.71l4.24 4.24a1 1 0 0 0 1.41-1.41L13 11.59z", clipRule: "evenodd" }));
4
- const ClockCircleOutlined = (props, ref) => /* @__PURE__ */ React.createElement(ShulexIcon, { ...props, ref, Icon: InnerSvg, colored: false });
5
- const RefIcon = React.forwardRef(ClockCircleOutlined);
4
+ const ClockCircleFilled = (props, ref) => /* @__PURE__ */ React.createElement(ShulexIcon, { ...props, ref, Icon: InnerSvg, colored: false });
5
+ const RefIcon = React.forwardRef(ClockCircleFilled);
6
6
  if (process.env.NODE_ENV !== "production") {
7
- RefIcon.displayName = "ClockCircleOutlined";
7
+ RefIcon.displayName = "ClockCircleFilled";
8
8
  }
9
9
  export default RefIcon;
@@ -0,0 +1,9 @@
1
+ import ShulexIcon from "../components/ShulexIcon.mjs";
2
+ import * as React from "react";
3
+ const InnerSvg = (props) => /* @__PURE__ */ React.createElement("svg", { viewBox: "0 0 16 16", ...props }, /* @__PURE__ */ React.createElement("path", { d: "M12.62 9.32a.67.67 0 0 1 .9-.29c.62.32 1.13.83 1.45 1.46q.29.59.32 1.3.05.71.04 1.81v.4A.67.67 0 0 1 14 14v-.4c0-.76 0-1.29-.03-1.7-.04-.4-.1-.63-.19-.8a2 2 0 0 0-.87-.88.67.67 0 0 1-.3-.9" }), /* @__PURE__ */ React.createElement("path", { fillRule: "evenodd", d: "M7.07 8.67q1.09 0 1.8.03.72.04 1.31.33.96.5 1.46 1.46.28.59.32 1.3.05.71.04 1.81v.4c0 .37-.3.67-.67.67h-10A.67.67 0 0 1 .67 14v-.4q-.01-1.1.04-1.8.03-.74.32-1.31.5-.96 1.46-1.46.59-.28 1.3-.33t1.81-.03zM5.6 10c-.76 0-1.29 0-1.7.03-.4.04-.63.1-.8.19a2 2 0 0 0-.88.87c-.1.18-.15.4-.19.81Q2 12.43 2 13.33h8.67q.01-.9-.04-1.43c-.03-.4-.1-.63-.18-.8a2 2 0 0 0-.88-.88c-.17-.1-.4-.15-.8-.19a23 23 0 0 0-1.7-.03zM6.33 1.33a3 3 0 1 1 0 6 3 3 0 0 1 0-6m0 1.34a1.67 1.67 0 1 0 0 3.33 1.67 1.67 0 0 0 0-3.33", clipRule: "evenodd" }), /* @__PURE__ */ React.createElement("path", { d: "M10.3 1.99c.19-.32.6-.42.91-.23a3 3 0 0 1 0 5.14.67.67 0 0 1-.68-1.14 1.67 1.67 0 0 0 0-2.86.67.67 0 0 1-.23-.91" }));
4
+ const ContactOutlined = (props, ref) => /* @__PURE__ */ React.createElement(ShulexIcon, { ...props, ref, Icon: InnerSvg, colored: false });
5
+ const RefIcon = React.forwardRef(ContactOutlined);
6
+ if (process.env.NODE_ENV !== "production") {
7
+ RefIcon.displayName = "ContactOutlined";
8
+ }
9
+ export default RefIcon;
@@ -0,0 +1,9 @@
1
+ import ShulexIcon from "../components/ShulexIcon.mjs";
2
+ import * as React from "react";
3
+ const InnerSvg = (props) => /* @__PURE__ */ React.createElement("svg", { viewBox: "0 0 16 16", ...props }, /* @__PURE__ */ React.createElement("path", { d: "M8 5.67c.37 0 .66.3.66.66v3.73l1.54-1.53a.67.67 0 1 1 .94.94l-2.67 2.67a.7.7 0 0 1-.43.2H8a.7.7 0 0 1-.5-.23L4.86 9.47a.67.67 0 1 1 .94-.94l1.53 1.52V6.33c0-.36.3-.66.67-.66" }), /* @__PURE__ */ React.createElement("path", { fillRule: "evenodd", d: "M12.19 1q.27.05.45.26l1.69 2.18.01.02q.31.37.33.87v9c0 .92-.75 1.67-1.67 1.67H3c-.92 0-1.67-.75-1.67-1.67v-9a1.3 1.3 0 0 1 .34-.89l1.7-2.18.04-.06q.2-.2.48-.2h8.3M2.67 13.33c0 .19.15.34.33.34h10c.18 0 .33-.15.33-.34v-9H2.67zM3.7 3h8.6l-.52-.67H4.22z", clipRule: "evenodd" }));
4
+ const DeployOutlined = (props, ref) => /* @__PURE__ */ React.createElement(ShulexIcon, { ...props, ref, Icon: InnerSvg, colored: false });
5
+ const RefIcon = React.forwardRef(DeployOutlined);
6
+ if (process.env.NODE_ENV !== "production") {
7
+ RefIcon.displayName = "DeployOutlined";
8
+ }
9
+ export default RefIcon;
@@ -0,0 +1,4 @@
1
+ import { ShulexIconProps } from '../components/ShulexIcon';
2
+ import * as React from "react";
3
+ declare const RefIcon: React.ForwardRefExoticComponent<Omit<ShulexIconProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
4
+ export default RefIcon;
@@ -0,0 +1,9 @@
1
+ import ShulexIcon from "../components/ShulexIcon.mjs";
2
+ import * as React from "react";
3
+ const InnerSvg = (props) => /* @__PURE__ */ React.createElement("svg", { viewBox: "0 0 16 16", ...props }, /* @__PURE__ */ React.createElement("path", { fillRule: "evenodd", d: "M12.87.8a1 1 0 0 1 1.21.76l1.13 4.93a1 1 0 0 1-.85 1.22l-1.65.2a1 1 0 0 1-1-.5l-1.92.37a2 2 0 0 1-.3 2.23l2.34 4.34a.67.67 0 0 1-1.17.63L8.3 10.64a2 2 0 0 1-.67 0L5.16 15A.67.67 0 1 1 4 14.34l2.49-4.37A2 2 0 0 1 6 8.51l-1.57.31a1 1 0 0 1-1-.4l-1 .18a1 1 0 0 1-1.16-.77l-.2-.88a1 1 0 0 1 .71-1.18l.98-.27a1 1 0 0 1 .64-.67l7-2.34a1 1 0 0 1 .66-1.02l1.7-.63zM4.14 6l.14.58.21.87 6.68-1.3-.63-2.3zm-1.69.97.06.26.53-.1-.08-.3zm9.36-4.36 1.02 3.95 1-.13-.96-4.2z", clipRule: "evenodd" }));
4
+ const DiscoverOutlined = (props, ref) => /* @__PURE__ */ React.createElement(ShulexIcon, { ...props, ref, Icon: InnerSvg, colored: false });
5
+ const RefIcon = React.forwardRef(DiscoverOutlined);
6
+ if (process.env.NODE_ENV !== "production") {
7
+ RefIcon.displayName = "DiscoverOutlined";
8
+ }
9
+ export default RefIcon;
@@ -0,0 +1,4 @@
1
+ import { ShulexIconProps } from '../components/ShulexIcon';
2
+ import * as React from "react";
3
+ declare const RefIcon: React.ForwardRefExoticComponent<Omit<ShulexIconProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
4
+ export default RefIcon;
@@ -1,9 +1,9 @@
1
1
  import ShulexIcon from "../components/ShulexIcon.mjs";
2
2
  import * as React from "react";
3
3
  const InnerSvg = (props) => /* @__PURE__ */ React.createElement("svg", { viewBox: "0 0 24 24", ...props }, /* @__PURE__ */ React.createElement("path", { fillRule: "evenodd", d: "M10.87 1.56a3 3 0 0 1 2.41.07l7 3.46a2.9 2.9 0 0 1 1.62 2.6v8.62a2.9 2.9 0 0 1-1.62 2.6l-7 3.46a3 3 0 0 1-2.41.07l-.15-.07-7-3.46a2.9 2.9 0 0 1-1.62-2.6V7.7c0-1.1.63-2.11 1.62-2.6l7-3.46zM7.29 8.65a.9.9 0 0 0-.74 1.63l.08.04 4.47 2.03v4.42a.9.9 0 0 0 1.8 0v-4.42l4.47-2.03a.9.9 0 0 0-.74-1.64L12 10.78l-4.63-2.1z", clipRule: "evenodd" }));
4
- const IntegrationOutlined = (props, ref) => /* @__PURE__ */ React.createElement(ShulexIcon, { ...props, ref, Icon: InnerSvg, colored: false });
5
- const RefIcon = React.forwardRef(IntegrationOutlined);
4
+ const IntegrationFilled = (props, ref) => /* @__PURE__ */ React.createElement(ShulexIcon, { ...props, ref, Icon: InnerSvg, colored: false });
5
+ const RefIcon = React.forwardRef(IntegrationFilled);
6
6
  if (process.env.NODE_ENV !== "production") {
7
- RefIcon.displayName = "IntegrationOutlined";
7
+ RefIcon.displayName = "IntegrationFilled";
8
8
  }
9
9
  export default RefIcon;
@@ -0,0 +1,4 @@
1
+ import { ShulexIconProps } from '../components/ShulexIcon';
2
+ import * as React from "react";
3
+ declare const RefIcon: React.ForwardRefExoticComponent<Omit<ShulexIconProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
4
+ export default RefIcon;
@@ -0,0 +1,9 @@
1
+ import ShulexIcon from "../components/ShulexIcon.mjs";
2
+ import * as React from "react";
3
+ const InnerSvg = (props) => /* @__PURE__ */ React.createElement("svg", { viewBox: "0 0 16 16", ...props }, /* @__PURE__ */ React.createElement("path", { d: "M10 4a.67.67 0 1 1 0 1.33H6A.67.67 0 0 1 6 4z" }), /* @__PURE__ */ React.createElement("path", { fillRule: "evenodd", d: "M13.33 1.33c.37 0 .67.3.67.67v9.33c0 .37-.3.67-.67.67H4a.67.67 0 0 0-.67.67c0 .36.3.66.67.66h9.33a.67.67 0 0 1 0 1.34H4a2 2 0 0 1-2-2V3.33c0-1.1.9-2 2-2zM4 2.67c-.37 0-.67.3-.67.66v7.45a2 2 0 0 1 .5-.1l.17-.01h8.67v-8z", clipRule: "evenodd" }));
4
+ const KnowledgeOutlined = (props, ref) => /* @__PURE__ */ React.createElement(ShulexIcon, { ...props, ref, Icon: InnerSvg, colored: false });
5
+ const RefIcon = React.forwardRef(KnowledgeOutlined);
6
+ if (process.env.NODE_ENV !== "production") {
7
+ RefIcon.displayName = "KnowledgeOutlined";
8
+ }
9
+ export default RefIcon;
@@ -0,0 +1,4 @@
1
+ import { ShulexIconProps } from '../components/ShulexIcon';
2
+ import * as React from "react";
3
+ declare const RefIcon: React.ForwardRefExoticComponent<Omit<ShulexIconProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
4
+ export default RefIcon;
@@ -0,0 +1,9 @@
1
+ import ShulexIcon from "../components/ShulexIcon.mjs";
2
+ import * as React from "react";
3
+ const InnerSvg = (props) => /* @__PURE__ */ React.createElement("svg", { viewBox: "0 0 16 16", ...props }, /* @__PURE__ */ React.createElement("path", { d: "M4.67 4.67c.36 0 .66.3.66.66v5.34a.67.67 0 1 1-1.33 0V5.33c0-.36.3-.66.67-.66" }), /* @__PURE__ */ React.createElement("path", { fillRule: "evenodd", d: "M12.67 1.67c1.47 0 2.66 1.2 2.66 2.66v7.34c0 1.47-1.2 2.66-2.66 2.66H3.33a2.67 2.67 0 0 1-2.66-2.66V4.33c0-1.47 1.2-2.66 2.66-2.66zM3.33 3C2.6 3 2 3.6 2 4.33v7.34C2 12.4 2.6 13 3.33 13h9.34c.73 0 1.33-.6 1.33-1.33V4.33C14 3.6 13.4 3 12.67 3z", clipRule: "evenodd" }));
4
+ const MenuTriggeOutlined = (props, ref) => /* @__PURE__ */ React.createElement(ShulexIcon, { ...props, ref, Icon: InnerSvg, colored: false });
5
+ const RefIcon = React.forwardRef(MenuTriggeOutlined);
6
+ if (process.env.NODE_ENV !== "production") {
7
+ RefIcon.displayName = "MenuTriggeOutlined";
8
+ }
9
+ export default RefIcon;
@@ -0,0 +1,4 @@
1
+ import { ShulexIconProps } from '../components/ShulexIcon';
2
+ import * as React from "react";
3
+ declare const RefIcon: React.ForwardRefExoticComponent<Omit<ShulexIconProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
4
+ export default RefIcon;
@@ -0,0 +1,9 @@
1
+ import ShulexIcon from "../components/ShulexIcon.mjs";
2
+ import * as React from "react";
3
+ const InnerSvg = (props) => /* @__PURE__ */ React.createElement("svg", { viewBox: "0 0 24 24", ...props }, /* @__PURE__ */ React.createElement("path", { d: "M9.57 1.8c1.33-3.15 6.07-1.88 5.65 1.52l-.2 1.65a2.96 2.96 0 0 0 2.68 3.3l1.65.15c3.41.3 3.67 5.2.3 5.84l-1.62.32a2.96 2.96 0 0 0-2.32 3.57l.37 1.61c.78 3.34-3.8 5.1-5.46 2.1l-.8-1.45q-.45-.77-1.18-1.16a8.83 8.83 0 0 0-.47-14.88q.49-.41.75-1.04zM5.1 8.58a3.1 3.1 0 1 1 0 6.2 3.1 3.1 0 0 1 0-6.2" }));
4
+ const SolveaLogoFilled = (props, ref) => /* @__PURE__ */ React.createElement(ShulexIcon, { ...props, ref, Icon: InnerSvg, colored: false });
5
+ const RefIcon = React.forwardRef(SolveaLogoFilled);
6
+ if (process.env.NODE_ENV !== "production") {
7
+ RefIcon.displayName = "SolveaLogoFilled";
8
+ }
9
+ export default RefIcon;
@@ -0,0 +1,4 @@
1
+ import { ShulexIconProps } from '../components/ShulexIcon';
2
+ import * as React from "react";
3
+ declare const RefIcon: React.ForwardRefExoticComponent<Omit<ShulexIconProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
4
+ export default RefIcon;
@@ -0,0 +1,9 @@
1
+ import ShulexIcon from "../components/ShulexIcon.mjs";
2
+ import * as React from "react";
3
+ const InnerSvg = (props) => /* @__PURE__ */ React.createElement("svg", { viewBox: "0 0 66 24", ...props }, /* @__PURE__ */ React.createElement("path", { d: "M4.83 7.44a10 10 0 0 1 2.45.3q.6.14 1.1.36.53.23.93.55l-.9 1.88q-.3-.24-.73-.4A8.8 8.8 0 0 0 3.9 9.7q-.4.03-.69.13a1 1 0 0 0-.45.26q-.15.15-.17.34 0 .17.11.34.13.15.36.27.46.2 1.18.34a103 103 0 0 1 3.03.6q.76.17 1.23.48.78.46 1.1 1.2a2.8 2.8 0 0 1-.34 2.9q-.47.65-1.33.95-.62.23-1.46.36a11 11 0 0 1-4.4-.2q-.6-.16-1.15-.43A4 4 0 0 1 0 16.6l.93-1.95q.32.28.81.5.52.18 1.1.33.6.14 1.22.21a13 13 0 0 0 2.16 0q.43-.06.7-.19.5-.26.5-.53 0-.29-.39-.5-.44-.28-1.2-.42l-1.62-.3q-.86-.15-1.67-.37a4 4 0 0 1-1.33-.62q-.6-.47-.87-1.17a3 3 0 0 1-.19-1.44q.08-.72.5-1.33.43-.62 1.19-.9.6-.23 1.36-.35a10 10 0 0 1 1.63-.13" }), /* @__PURE__ */ React.createElement("path", { fillRule: "evenodd", d: "M16.29 7.46q1.18 0 2.14.38a4.8 4.8 0 0 1 2.77 2.74q.38.97.38 2.16t-.38 2.16a5 5 0 0 1-1.08 1.66q-.7.68-1.7 1.06-.96.38-2.13.38-1.2 0-2.17-.38-.96-.37-1.66-1.06a5 5 0 0 1-1.07-1.66 6 6 0 0 1-.37-2.16q0-1.2.38-2.16.37-.96 1.06-1.66a5 5 0 0 1 1.66-1.08 6 6 0 0 1 2.17-.38m0 2.25q-.65 0-1.18.23a2.6 2.6 0 0 0-1.46 1.6q-.2.55-.2 1.2a3.3 3.3 0 0 0 .77 2.16q.38.4.9.64t1.17.23q.64 0 1.15-.23a2.7 2.7 0 0 0 1.46-1.6q.21-.55.21-1.2a3.3 3.3 0 0 0-.78-2.16q-.36-.42-.89-.64a3 3 0 0 0-1.15-.23M44.24 7.46a5.8 5.8 0 0 1 3.45 1.12q.69.53 1.12 1.28a5 5 0 0 1 .72 2.65v.95h-8.02a3 3 0 0 0 1.03 1.6q.37.3.85.5.48.17 1 .17 1.07 0 1.73-.38.68-.38 1.12-.98l1.99 1.11a4.4 4.4 0 0 1-1.94 1.86 6 6 0 0 1-2.86.66 6 6 0 0 1-2.2-.38 5 5 0 0 1-1.74-1.08 5.1 5.1 0 0 1-1.54-3.82q0-1.18.38-2.14.39-.97 1.08-1.66a5 5 0 0 1 1.67-1.08 6 6 0 0 1 2.16-.38m-.03 2.27q-.95 0-1.64.53-.66.53-.94 1.3h5.34a3 3 0 0 0-.96-1.3 2.8 2.8 0 0 0-1.8-.53M55.49 7.46a4.7 4.7 0 0 1 3.3 1.27V7.67h2.46v10.12h-2.08l-.38-1.08a4.6 4.6 0 0 1-3.3 1.29 4.5 4.5 0 0 1-3.34-1.48 5.4 5.4 0 0 1-1.46-3.8q0-1.18.4-2.14a5.1 5.1 0 0 1 2.6-2.72 4 4 0 0 1 1.8-.4m.5 2.27q-.66 0-1.18.23-.52.22-.9.64a3 3 0 0 0-.75 2.12q0 .64.19 1.2.2.54.56.96a2.8 2.8 0 0 0 2.07.85 2.8 2.8 0 0 0 2.03-.85q.38-.42.57-.97a3.3 3.3 0 0 0 0-2.36 3 3 0 0 0-.57-.95q-.36-.43-.9-.64a3 3 0 0 0-1.13-.23", clipRule: "evenodd" }), /* @__PURE__ */ React.createElement("path", { d: "M25.75 17.8h-2.46V3.6h2.46zM32.92 15.94l3.2-8.27h2.45l-3.93 10.12h-3.66l-3.9-10.12h2.65zM64.77 15.33q.54 0 .89.34t.34.9-.34.88a1.2 1.2 0 0 1-.9.34 1.2 1.2 0 0 1-.88-.34 1.2 1.2 0 0 1-.34-.89q-.01-.54.34-.89.33-.34.89-.34" }));
4
+ const SolveaTextFilled = (props, ref) => /* @__PURE__ */ React.createElement(ShulexIcon, { ...props, ref, Icon: InnerSvg, colored: false });
5
+ const RefIcon = React.forwardRef(SolveaTextFilled);
6
+ if (process.env.NODE_ENV !== "production") {
7
+ RefIcon.displayName = "SolveaTextFilled";
8
+ }
9
+ export default RefIcon;
@@ -1,9 +1,9 @@
1
- export { default as AdMailColored } from './AdMailColored';
1
+ export { default as AdMailFilled } from './AdMailFilled';
2
2
  export { default as AdMailOutlined } from './AdMailOutlined';
3
3
  export { default as AiFilled } from './AiFilled';
4
4
  export { default as AmazonLogoColored } from './AmazonLogoColored';
5
5
  export { default as AmazonLogoFilled } from './AmazonLogoFilled';
6
- export { default as AppListOutlined } from './AppListOutlined';
6
+ export { default as AppListFilled } from './AppListFilled';
7
7
  export { default as AppstoreFilled } from './AppstoreFilled';
8
8
  export { default as AppstoreOutlined } from './AppstoreOutlined';
9
9
  export { default as ArchiveFilled } from './ArchiveFilled';
@@ -38,7 +38,7 @@ export { default as ChannelOutlined } from './ChannelOutlined';
38
38
  export { default as CheckCircleFilled } from './CheckCircleFilled';
39
39
  export { default as CheckCircleOutlined } from './CheckCircleOutlined';
40
40
  export { default as CheckOutlined } from './CheckOutlined';
41
- export { default as ClockCircleOutlined } from './ClockCircleOutlined';
41
+ export { default as ClockCircleFilled } from './ClockCircleFilled';
42
42
  export { default as ClockOutlined } from './ClockOutlined';
43
43
  export { default as CloseCircleFilled } from './CloseCircleFilled';
44
44
  export { default as CloseCircleOutlined } from './CloseCircleOutlined';
@@ -46,14 +46,17 @@ export { default as CloseOutlined } from './CloseOutlined';
46
46
  export { default as ColorsOutlined } from './ColorsOutlined';
47
47
  export { default as CommentOutlined } from './CommentOutlined';
48
48
  export { default as ConnectOutlined } from './ConnectOutlined';
49
+ export { default as ContactOutlined } from './ContactOutlined';
49
50
  export { default as ConversationCloseOutlined } from './ConversationCloseOutlined';
50
51
  export { default as ConversationMessageOutlined } from './ConversationMessageOutlined';
51
52
  export { default as CopyOutlined } from './CopyOutlined';
52
53
  export { default as DeleteFilled } from './DeleteFilled';
53
54
  export { default as DeleteOutlined } from './DeleteOutlined';
55
+ export { default as DeployOutlined } from './DeployOutlined';
54
56
  export { default as DesktopOutlined } from './DesktopOutlined';
55
57
  export { default as DiamondOutlined } from './DiamondOutlined';
56
58
  export { default as DingTalkLogoColored } from './DingTalkLogoColored';
59
+ export { default as DiscoverOutlined } from './DiscoverOutlined';
57
60
  export { default as DiversityOutlined } from './DiversityOutlined';
58
61
  export { default as DocumentFilled } from './DocumentFilled';
59
62
  export { default as DocumentFlashTwoOutlined } from './DocumentFlashTwoOutlined';
@@ -121,10 +124,11 @@ export { default as InfoCircleFilled } from './InfoCircleFilled';
121
124
  export { default as InfoCircleOutlined } from './InfoCircleOutlined';
122
125
  export { default as InstagramLogoColored } from './InstagramLogoColored';
123
126
  export { default as InstagramLogoFilled } from './InstagramLogoFilled';
124
- export { default as IntegrationOutlined } from './IntegrationOutlined';
127
+ export { default as IntegrationFilled } from './IntegrationFilled';
125
128
  export { default as IntercomLogoColored } from './IntercomLogoColored';
126
129
  export { default as ItalicOutlined } from './ItalicOutlined';
127
130
  export { default as JijiaLogoColored } from './JijiaLogoColored';
131
+ export { default as KnowledgeOutlined } from './KnowledgeOutlined';
128
132
  export { default as LanguageOutlined } from './LanguageOutlined';
129
133
  export { default as LayoutFilled } from './LayoutFilled';
130
134
  export { default as LeftOutlined } from './LeftOutlined';
@@ -149,6 +153,7 @@ export { default as MenuLeftOutlined } from './MenuLeftOutlined';
149
153
  export { default as MenuOutlined } from './MenuOutlined';
150
154
  export { default as MenuRightFilled } from './MenuRightFilled';
151
155
  export { default as MenuRightOutlined } from './MenuRightOutlined';
156
+ export { default as MenuTriggeOutlined } from './MenuTriggeOutlined';
152
157
  export { default as MenuUnfoldOutlined } from './MenuUnfoldOutlined';
153
158
  export { default as MessageCloseOutlined } from './MessageCloseOutlined';
154
159
  export { default as MessageOutlined } from './MessageOutlined';
@@ -185,7 +190,6 @@ export { default as RichTextOutlined } from './RichTextOutlined';
185
190
  export { default as RightOutlined } from './RightOutlined';
186
191
  export { default as RobotFilled } from './RobotFilled';
187
192
  export { default as RobotOutlined } from './RobotOutlined';
188
- export { default as SalesforceLogoColored } from './SalesforceLogoColored';
189
193
  export { default as ScanOutlined } from './ScanOutlined';
190
194
  export { default as SearchOutlined } from './SearchOutlined';
191
195
  export { default as SelfStudyOutlined } from './SelfStudyOutlined';
@@ -207,6 +211,8 @@ export { default as SleepClockFilled } from './SleepClockFilled';
207
211
  export { default as SmallCloseOutlined } from './SmallCloseOutlined';
208
212
  export { default as SmallPlusOutlined } from './SmallPlusOutlined';
209
213
  export { default as SnoozeOutlined } from './SnoozeOutlined';
214
+ export { default as SolveaLogoFilled } from './SolveaLogoFilled';
215
+ export { default as SolveaTextFilled } from './SolveaTextFilled';
210
216
  export { default as Sort2Outlined } from './Sort2Outlined';
211
217
  export { default as SortAscOutlined } from './SortAscOutlined';
212
218
  export { default as SortDescOutlined } from './SortDescOutlined';
@@ -1,9 +1,9 @@
1
- export { default as AdMailColored } from "./AdMailColored.mjs";
1
+ export { default as AdMailFilled } from "./AdMailFilled.mjs";
2
2
  export { default as AdMailOutlined } from "./AdMailOutlined.mjs";
3
3
  export { default as AiFilled } from "./AiFilled.mjs";
4
4
  export { default as AmazonLogoColored } from "./AmazonLogoColored.mjs";
5
5
  export { default as AmazonLogoFilled } from "./AmazonLogoFilled.mjs";
6
- export { default as AppListOutlined } from "./AppListOutlined.mjs";
6
+ export { default as AppListFilled } from "./AppListFilled.mjs";
7
7
  export { default as AppstoreFilled } from "./AppstoreFilled.mjs";
8
8
  export { default as AppstoreOutlined } from "./AppstoreOutlined.mjs";
9
9
  export { default as ArchiveFilled } from "./ArchiveFilled.mjs";
@@ -38,7 +38,7 @@ export { default as ChannelOutlined } from "./ChannelOutlined.mjs";
38
38
  export { default as CheckCircleFilled } from "./CheckCircleFilled.mjs";
39
39
  export { default as CheckCircleOutlined } from "./CheckCircleOutlined.mjs";
40
40
  export { default as CheckOutlined } from "./CheckOutlined.mjs";
41
- export { default as ClockCircleOutlined } from "./ClockCircleOutlined.mjs";
41
+ export { default as ClockCircleFilled } from "./ClockCircleFilled.mjs";
42
42
  export { default as ClockOutlined } from "./ClockOutlined.mjs";
43
43
  export { default as CloseCircleFilled } from "./CloseCircleFilled.mjs";
44
44
  export { default as CloseCircleOutlined } from "./CloseCircleOutlined.mjs";
@@ -46,14 +46,17 @@ export { default as CloseOutlined } from "./CloseOutlined.mjs";
46
46
  export { default as ColorsOutlined } from "./ColorsOutlined.mjs";
47
47
  export { default as CommentOutlined } from "./CommentOutlined.mjs";
48
48
  export { default as ConnectOutlined } from "./ConnectOutlined.mjs";
49
+ export { default as ContactOutlined } from "./ContactOutlined.mjs";
49
50
  export { default as ConversationCloseOutlined } from "./ConversationCloseOutlined.mjs";
50
51
  export { default as ConversationMessageOutlined } from "./ConversationMessageOutlined.mjs";
51
52
  export { default as CopyOutlined } from "./CopyOutlined.mjs";
52
53
  export { default as DeleteFilled } from "./DeleteFilled.mjs";
53
54
  export { default as DeleteOutlined } from "./DeleteOutlined.mjs";
55
+ export { default as DeployOutlined } from "./DeployOutlined.mjs";
54
56
  export { default as DesktopOutlined } from "./DesktopOutlined.mjs";
55
57
  export { default as DiamondOutlined } from "./DiamondOutlined.mjs";
56
58
  export { default as DingTalkLogoColored } from "./DingTalkLogoColored.mjs";
59
+ export { default as DiscoverOutlined } from "./DiscoverOutlined.mjs";
57
60
  export { default as DiversityOutlined } from "./DiversityOutlined.mjs";
58
61
  export { default as DocumentFilled } from "./DocumentFilled.mjs";
59
62
  export { default as DocumentFlashTwoOutlined } from "./DocumentFlashTwoOutlined.mjs";
@@ -121,10 +124,11 @@ export { default as InfoCircleFilled } from "./InfoCircleFilled.mjs";
121
124
  export { default as InfoCircleOutlined } from "./InfoCircleOutlined.mjs";
122
125
  export { default as InstagramLogoColored } from "./InstagramLogoColored.mjs";
123
126
  export { default as InstagramLogoFilled } from "./InstagramLogoFilled.mjs";
124
- export { default as IntegrationOutlined } from "./IntegrationOutlined.mjs";
127
+ export { default as IntegrationFilled } from "./IntegrationFilled.mjs";
125
128
  export { default as IntercomLogoColored } from "./IntercomLogoColored.mjs";
126
129
  export { default as ItalicOutlined } from "./ItalicOutlined.mjs";
127
130
  export { default as JijiaLogoColored } from "./JijiaLogoColored.mjs";
131
+ export { default as KnowledgeOutlined } from "./KnowledgeOutlined.mjs";
128
132
  export { default as LanguageOutlined } from "./LanguageOutlined.mjs";
129
133
  export { default as LayoutFilled } from "./LayoutFilled.mjs";
130
134
  export { default as LeftOutlined } from "./LeftOutlined.mjs";
@@ -149,6 +153,7 @@ export { default as MenuLeftOutlined } from "./MenuLeftOutlined.mjs";
149
153
  export { default as MenuOutlined } from "./MenuOutlined.mjs";
150
154
  export { default as MenuRightFilled } from "./MenuRightFilled.mjs";
151
155
  export { default as MenuRightOutlined } from "./MenuRightOutlined.mjs";
156
+ export { default as MenuTriggeOutlined } from "./MenuTriggeOutlined.mjs";
152
157
  export { default as MenuUnfoldOutlined } from "./MenuUnfoldOutlined.mjs";
153
158
  export { default as MessageCloseOutlined } from "./MessageCloseOutlined.mjs";
154
159
  export { default as MessageOutlined } from "./MessageOutlined.mjs";
@@ -185,7 +190,6 @@ export { default as RichTextOutlined } from "./RichTextOutlined.mjs";
185
190
  export { default as RightOutlined } from "./RightOutlined.mjs";
186
191
  export { default as RobotFilled } from "./RobotFilled.mjs";
187
192
  export { default as RobotOutlined } from "./RobotOutlined.mjs";
188
- export { default as SalesforceLogoColored } from "./SalesforceLogoColored.mjs";
189
193
  export { default as ScanOutlined } from "./ScanOutlined.mjs";
190
194
  export { default as SearchOutlined } from "./SearchOutlined.mjs";
191
195
  export { default as SelfStudyOutlined } from "./SelfStudyOutlined.mjs";
@@ -207,6 +211,8 @@ export { default as SleepClockFilled } from "./SleepClockFilled.mjs";
207
211
  export { default as SmallCloseOutlined } from "./SmallCloseOutlined.mjs";
208
212
  export { default as SmallPlusOutlined } from "./SmallPlusOutlined.mjs";
209
213
  export { default as SnoozeOutlined } from "./SnoozeOutlined.mjs";
214
+ export { default as SolveaLogoFilled } from "./SolveaLogoFilled.mjs";
215
+ export { default as SolveaTextFilled } from "./SolveaTextFilled.mjs";
210
216
  export { default as Sort2Outlined } from "./Sort2Outlined.mjs";
211
217
  export { default as SortAscOutlined } from "./SortAscOutlined.mjs";
212
218
  export { default as SortDescOutlined } from "./SortDescOutlined.mjs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shulex/icons",
3
- "version": "1.0.0",
3
+ "version": "1.0.5",
4
4
  "private": false,
5
5
  "description": "Shulex 图标组件库",
6
6
  "license": "MIT",
@@ -22,17 +22,9 @@
22
22
  "files": [
23
23
  "dist"
24
24
  ],
25
- "scripts": {
26
- "build": "unbuild",
27
- "generate": "rimraf src/icons && cross-env TS_NODE_PROJECT=tsconfig.node.json node --no-warnings=ExperimentalWarning --loader ts-node/esm scripts/generate.ts",
28
- "prepublishOnly": "yarn build",
29
- "publish:npm": "npm publish --access public",
30
- "pull": "node syncByFigma.js",
31
- "release": "bumpp --no-tag --no-commit --no-push && yarn publish --access public",
32
- "sync": "yarn pull && yarn generate"
33
- },
34
25
  "dependencies": {
35
- "@rc-component/util": "^1.2.2"
26
+ "@rc-component/util": "^1.2.2",
27
+ "classnames": "^2.5.1"
36
28
  },
37
29
  "devDependencies": {
38
30
  "@svgr/core": "^8.1.0",
@@ -45,8 +37,10 @@
45
37
  "@types/lodash-es": "^4.17.12",
46
38
  "@types/node": "^24.1.0",
47
39
  "@types/react": "^18",
40
+ "@types/react-dom": "^18",
48
41
  "@types/through2": "^2.0.41",
49
42
  "@types/vinyl": "^2.0.12",
43
+ "@vitejs/plugin-react": "^4.3.4",
50
44
  "axios": "^1.13.2",
51
45
  "bumpp": "^10.4.0",
52
46
  "cross-env": "^7.0.3",
@@ -57,10 +51,23 @@
57
51
  "gulp-rename": "^2.1.0",
58
52
  "lodash-es": "^4.17.21",
59
53
  "react": "^18",
54
+ "react-dom": "^18",
60
55
  "rimraf": "^6.0.1",
61
56
  "through2": "^4.0.2",
62
57
  "ts-node": "^10.9.2",
63
58
  "unbuild": "^3.5.0",
59
+ "vite": "^6.0.7",
64
60
  "vinyl": "^3.0.1"
61
+ },
62
+ "engines": {
63
+ "node": "20.x"
64
+ },
65
+ "scripts": {
66
+ "build": "unbuild",
67
+ "dev": "vite --config playground/vite.config.ts",
68
+ "generate": "rimraf src/icons && cross-env TS_NODE_PROJECT=tsconfig.node.json node --no-warnings=ExperimentalWarning --loader ts-node/esm scripts/generate.ts",
69
+ "pull": "node syncByFigma.js",
70
+ "release": "bumpp --no-tag --no-push && pnpm publish --access public",
71
+ "sync": "pnpm pull && pnpm generate"
65
72
  }
66
- }
73
+ }
@@ -1,9 +0,0 @@
1
- import ShulexIcon from "../components/ShulexIcon.mjs";
2
- import * as React from "react";
3
- const InnerSvg = (props) => /* @__PURE__ */ React.createElement("svg", { fill: "none", viewBox: "0 0 24 24", ...props }, /* @__PURE__ */ React.createElement("path", { fill: "#1D2C47", d: "m9.33 12.26.54 2.95H8.26l.54-2.95zM15.26 12.26q.75 0 1.2.62.48.6.47 1.77 0 1.13-.46 1.76t-1.2.63h-.57v-4.78z" }), /* @__PURE__ */ React.createElement("path", { fill: "#1D2C47", fillRule: "evenodd", d: "M19.5 7a3 3 0 0 1 3 3v9a3 3 0 0 1-3 3h-15a3 3 0 0 1-3-3v-9a3 3 0 0 1 3-3zM6.09 18.25v.25h1.6l.36-1.94h2.04l.36 1.94h1.6v-.25l-1.62-7.44-2.73-.01zm7.07-7.45v7.7h2.12q.92 0 1.64-.4.73-.43 1.16-1.27.43-.86.43-2.18t-.43-2.18a3 3 0 0 0-1.16-1.25 3 3 0 0 0-1.64-.42z", clipRule: "evenodd" }), /* @__PURE__ */ React.createElement("path", { fill: "#1D2C47", d: "M17.5 4a3 3 0 0 1 2.83 2H3.67A3 3 0 0 1 6.5 4zM15.5 1a3 3 0 0 1 2.83 2H5.67A3 3 0 0 1 8.5 1z" }));
4
- const AdMailColored = (props, ref) => /* @__PURE__ */ React.createElement(ShulexIcon, { ...props, ref, Icon: InnerSvg, colored: true });
5
- const RefIcon = React.forwardRef(AdMailColored);
6
- if (process.env.NODE_ENV !== "production") {
7
- RefIcon.displayName = "AdMailColored";
8
- }
9
- export default RefIcon;
@@ -1,9 +0,0 @@
1
- import ShulexIcon from "../components/ShulexIcon.mjs";
2
- import * as React from "react";
3
- const InnerSvg = (props) => /* @__PURE__ */ React.createElement("svg", { xmlnsXlink: "http://www.w3.org/1999/xlink", fill: "none", viewBox: "0 0 24 24", ...props }, /* @__PURE__ */ React.createElement("path", { fill: "url(#pattern0_2640_56549)", d: "M1 4H23V19H1z" }), /* @__PURE__ */ React.createElement("defs", null, /* @__PURE__ */ React.createElement("pattern", { id: "pattern0_2640_56549", width: 1, height: 1, patternContentUnits: "objectBoundingBox" }, /* @__PURE__ */ React.createElement("use", { xlinkHref: "#image0_2640_56549", transform: "matrix(.00467 0 0 .00667 0 0)" }))));
4
- const SalesforceLogoColored = (props, ref) => /* @__PURE__ */ React.createElement(ShulexIcon, { ...props, ref, Icon: InnerSvg, colored: true });
5
- const RefIcon = React.forwardRef(SalesforceLogoColored);
6
- if (process.env.NODE_ENV !== "production") {
7
- RefIcon.displayName = "SalesforceLogoColored";
8
- }
9
- export default RefIcon;