@zleap-ai/icons 0.0.28
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 +155 -0
- package/dist/cjs/changelog-generator.js +300 -0
- package/dist/cjs/changelog-generator.js.map +1 -0
- package/dist/cjs/component-generator.js +434 -0
- package/dist/cjs/component-generator.js.map +1 -0
- package/dist/cjs/figma-client.js +260 -0
- package/dist/cjs/figma-client.js.map +1 -0
- package/dist/cjs/icon-filter.js +278 -0
- package/dist/cjs/icon-filter.js.map +1 -0
- package/dist/cjs/icon-search.js +43 -0
- package/dist/cjs/icon-search.js.map +1 -0
- package/dist/cjs/icon-validator.js +369 -0
- package/dist/cjs/icon-validator.js.map +1 -0
- package/dist/cjs/icons/IconArrowRight.js +17 -0
- package/dist/cjs/icons/IconArrowRight.js.map +1 -0
- package/dist/cjs/icons/IconBack.js +17 -0
- package/dist/cjs/icons/IconBack.js.map +1 -0
- package/dist/cjs/icons/IconBack1.js +17 -0
- package/dist/cjs/icons/IconBack1.js.map +1 -0
- package/dist/cjs/icons/IconBangZhuShuoMing.js +17 -0
- package/dist/cjs/icons/IconBangZhuShuoMing.js.map +1 -0
- package/dist/cjs/icons/IconBaoGaoZhuShou.js +20 -0
- package/dist/cjs/icons/IconBaoGaoZhuShou.js.map +1 -0
- package/dist/cjs/icons/IconCheck.js +17 -0
- package/dist/cjs/icons/IconCheck.js.map +1 -0
- package/dist/cjs/icons/IconCheck1.js +17 -0
- package/dist/cjs/icons/IconCheck1.js.map +1 -0
- package/dist/cjs/icons/IconChengYuanGuanLi.js +20 -0
- package/dist/cjs/icons/IconChengYuanGuanLi.js.map +1 -0
- package/dist/cjs/icons/IconChongXinFaSong.js +17 -0
- package/dist/cjs/icons/IconChongXinFaSong.js.map +1 -0
- package/dist/cjs/icons/IconCloseCircle.js +17 -0
- package/dist/cjs/icons/IconCloseCircle.js.map +1 -0
- package/dist/cjs/icons/IconCuoWu.js +17 -0
- package/dist/cjs/icons/IconCuoWu.js.map +1 -0
- package/dist/cjs/icons/IconDingDing.js +17 -0
- package/dist/cjs/icons/IconDingDing.js.map +1 -0
- package/dist/cjs/icons/IconEdit03.js +17 -0
- package/dist/cjs/icons/IconEdit03.js.map +1 -0
- package/dist/cjs/icons/IconFanHui.js +17 -0
- package/dist/cjs/icons/IconFanHui.js.map +1 -0
- package/dist/cjs/icons/IconFangDa.js +17 -0
- package/dist/cjs/icons/IconFangDa.js.map +1 -0
- package/dist/cjs/icons/IconFrame.js +17 -0
- package/dist/cjs/icons/IconFrame.js.map +1 -0
- package/dist/cjs/icons/IconFrame1261156242.js +17 -0
- package/dist/cjs/icons/IconFrame1261156242.js.map +1 -0
- package/dist/cjs/icons/IconGuanBi.js +17 -0
- package/dist/cjs/icons/IconGuanBi.js.map +1 -0
- package/dist/cjs/icons/IconGuanBi1.js +17 -0
- package/dist/cjs/icons/IconGuanBi1.js.map +1 -0
- package/dist/cjs/icons/IconGuanBiXiao.js +17 -0
- package/dist/cjs/icons/IconGuanBiXiao.js.map +1 -0
- package/dist/cjs/icons/IconGuanBiXiao1.js +17 -0
- package/dist/cjs/icons/IconGuanBiXiao1.js.map +1 -0
- package/dist/cjs/icons/IconLianJie.js +17 -0
- package/dist/cjs/icons/IconLianJie.js.map +1 -0
- package/dist/cjs/icons/IconLianJie1.js +17 -0
- package/dist/cjs/icons/IconLianJie1.js.map +1 -0
- package/dist/cjs/icons/IconQiWeiJiQiRen.js +17 -0
- package/dist/cjs/icons/IconQiWeiJiQiRen.js.map +1 -0
- package/dist/cjs/icons/IconQiYeBan.js +20 -0
- package/dist/cjs/icons/IconQiYeBan.js.map +1 -0
- package/dist/cjs/icons/IconRss.js +17 -0
- package/dist/cjs/icons/IconRss.js.map +1 -0
- package/dist/cjs/icons/IconSearch.js +17 -0
- package/dist/cjs/icons/IconSearch.js.map +1 -0
- package/dist/cjs/icons/IconSearch1.js +17 -0
- package/dist/cjs/icons/IconSearch1.js.map +1 -0
- package/dist/cjs/icons/IconSheZhi.js +17 -0
- package/dist/cjs/icons/IconSheZhi.js.map +1 -0
- package/dist/cjs/icons/IconShengCheng.js +17 -0
- package/dist/cjs/icons/IconShengCheng.js.map +1 -0
- package/dist/cjs/icons/IconShiBai.js +17 -0
- package/dist/cjs/icons/IconShiBai.js.map +1 -0
- package/dist/cjs/icons/IconShouQi.js +17 -0
- package/dist/cjs/icons/IconShouQi.js.map +1 -0
- package/dist/cjs/icons/IconSouSuoZhuShou.js +20 -0
- package/dist/cjs/icons/IconSouSuoZhuShou.js.map +1 -0
- package/dist/cjs/icons/IconSuoXiao.js +17 -0
- package/dist/cjs/icons/IconSuoXiao.js.map +1 -0
- package/dist/cjs/icons/IconTianJia.js +17 -0
- package/dist/cjs/icons/IconTianJia.js.map +1 -0
- package/dist/cjs/icons/IconTongZhi.js +17 -0
- package/dist/cjs/icons/IconTongZhi.js.map +1 -0
- package/dist/cjs/icons/IconTongZhi1.js +17 -0
- package/dist/cjs/icons/IconTongZhi1.js.map +1 -0
- package/dist/cjs/icons/IconTuiChu.js +17 -0
- package/dist/cjs/icons/IconTuiChu.js.map +1 -0
- package/dist/cjs/icons/IconWangLuoJianSuo.js +17 -0
- package/dist/cjs/icons/IconWangLuoJianSuo.js.map +1 -0
- package/dist/cjs/icons/IconWangYeXiaZai.js +17 -0
- package/dist/cjs/icons/IconWangYeXiaZai.js.map +1 -0
- package/dist/cjs/icons/IconWeiBiaoTi1HuaBan11.js +17 -0
- package/dist/cjs/icons/IconWeiBiaoTi1HuaBan11.js.map +1 -0
- package/dist/cjs/icons/IconWenDaZhuShou.js +20 -0
- package/dist/cjs/icons/IconWenDaZhuShou.js.map +1 -0
- package/dist/cjs/icons/IconWenDang.js +17 -0
- package/dist/cjs/icons/IconWenDang.js.map +1 -0
- package/dist/cjs/icons/IconWenDang1.js +17 -0
- package/dist/cjs/icons/IconWenDang1.js.map +1 -0
- package/dist/cjs/icons/IconWenJian.js +17 -0
- package/dist/cjs/icons/IconWenJian.js.map +1 -0
- package/dist/cjs/icons/IconXiTongPeiZhi.js +20 -0
- package/dist/cjs/icons/IconXiTongPeiZhi.js.map +1 -0
- package/dist/cjs/icons/IconXiaZai.js +17 -0
- package/dist/cjs/icons/IconXiaZai.js.map +1 -0
- package/dist/cjs/icons/IconXiaZaiZhuShou.js +20 -0
- package/dist/cjs/icons/IconXiaZaiZhuShou.js.map +1 -0
- package/dist/cjs/icons/IconXiaoXi.js +17 -0
- package/dist/cjs/icons/IconXiaoXi.js.map +1 -0
- package/dist/cjs/icons/IconXinXiGuanLi.js +20 -0
- package/dist/cjs/icons/IconXinXiGuanLi.js.map +1 -0
- package/dist/cjs/icons/IconXinZeng.js +17 -0
- package/dist/cjs/icons/IconXinZeng.js.map +1 -0
- package/dist/cjs/icons/IconYanZhengMa.js +17 -0
- package/dist/cjs/icons/IconYanZhengMa.js.map +1 -0
- package/dist/cjs/icons/IconYunYingGuanLi.js +20 -0
- package/dist/cjs/icons/IconYunYingGuanLi.js.map +1 -0
- package/dist/cjs/icons/IconZengJia.js +17 -0
- package/dist/cjs/icons/IconZengJia.js.map +1 -0
- package/dist/cjs/icons/IconZhanKai.js +17 -0
- package/dist/cjs/icons/IconZhanKai.js.map +1 -0
- package/dist/cjs/icons/IconZhanKai1.js +17 -0
- package/dist/cjs/icons/IconZhanKai1.js.map +1 -0
- package/dist/cjs/icons/IconZhengQue.js +17 -0
- package/dist/cjs/icons/IconZhengQue.js.map +1 -0
- package/dist/cjs/icons/IconZhiShiKu.js +17 -0
- package/dist/cjs/icons/IconZhiShiKu.js.map +1 -0
- package/dist/cjs/icons/IconZhiShiKu1.js +17 -0
- package/dist/cjs/icons/IconZhiShiKu1.js.map +1 -0
- package/dist/cjs/index.js +95 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/manifest-generator.js +281 -0
- package/dist/cjs/manifest-generator.js.map +1 -0
- package/dist/cjs/multi-format-output.js +233 -0
- package/dist/cjs/multi-format-output.js.map +1 -0
- package/dist/cjs/svg-exporter.js +283 -0
- package/dist/cjs/svg-exporter.js.map +1 -0
- package/dist/cjs/svg-transformer.js +327 -0
- package/dist/cjs/svg-transformer.js.map +1 -0
- package/dist/cjs/types.js +3 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/cjs/version-manager.js +175 -0
- package/dist/cjs/version-manager.js.map +1 -0
- package/dist/esm/changelog-generator.js +288 -0
- package/dist/esm/changelog-generator.js.map +1 -0
- package/dist/esm/component-generator.js +426 -0
- package/dist/esm/component-generator.js.map +1 -0
- package/dist/esm/figma-client.js +254 -0
- package/dist/esm/figma-client.js.map +1 -0
- package/dist/esm/icon-filter.js +268 -0
- package/dist/esm/icon-filter.js.map +1 -0
- package/dist/esm/icon-search.js +39 -0
- package/dist/esm/icon-search.js.map +1 -0
- package/dist/esm/icon-validator.js +358 -0
- package/dist/esm/icon-validator.js.map +1 -0
- package/dist/esm/icons/IconArrowRight.js +14 -0
- package/dist/esm/icons/IconArrowRight.js.map +1 -0
- package/dist/esm/icons/IconBack.js +14 -0
- package/dist/esm/icons/IconBack.js.map +1 -0
- package/dist/esm/icons/IconBack1.js +14 -0
- package/dist/esm/icons/IconBack1.js.map +1 -0
- package/dist/esm/icons/IconBangZhuShuoMing.js +14 -0
- package/dist/esm/icons/IconBangZhuShuoMing.js.map +1 -0
- package/dist/esm/icons/IconBaoGaoZhuShou.js +17 -0
- package/dist/esm/icons/IconBaoGaoZhuShou.js.map +1 -0
- package/dist/esm/icons/IconCheck.js +14 -0
- package/dist/esm/icons/IconCheck.js.map +1 -0
- package/dist/esm/icons/IconCheck1.js +14 -0
- package/dist/esm/icons/IconCheck1.js.map +1 -0
- package/dist/esm/icons/IconChengYuanGuanLi.js +17 -0
- package/dist/esm/icons/IconChengYuanGuanLi.js.map +1 -0
- package/dist/esm/icons/IconChongXinFaSong.js +14 -0
- package/dist/esm/icons/IconChongXinFaSong.js.map +1 -0
- package/dist/esm/icons/IconCloseCircle.js +14 -0
- package/dist/esm/icons/IconCloseCircle.js.map +1 -0
- package/dist/esm/icons/IconCuoWu.js +14 -0
- package/dist/esm/icons/IconCuoWu.js.map +1 -0
- package/dist/esm/icons/IconDingDing.js +14 -0
- package/dist/esm/icons/IconDingDing.js.map +1 -0
- package/dist/esm/icons/IconEdit03.js +14 -0
- package/dist/esm/icons/IconEdit03.js.map +1 -0
- package/dist/esm/icons/IconFanHui.js +14 -0
- package/dist/esm/icons/IconFanHui.js.map +1 -0
- package/dist/esm/icons/IconFangDa.js +14 -0
- package/dist/esm/icons/IconFangDa.js.map +1 -0
- package/dist/esm/icons/IconFrame.js +14 -0
- package/dist/esm/icons/IconFrame.js.map +1 -0
- package/dist/esm/icons/IconFrame1261156242.js +14 -0
- package/dist/esm/icons/IconFrame1261156242.js.map +1 -0
- package/dist/esm/icons/IconGuanBi.js +14 -0
- package/dist/esm/icons/IconGuanBi.js.map +1 -0
- package/dist/esm/icons/IconGuanBi1.js +14 -0
- package/dist/esm/icons/IconGuanBi1.js.map +1 -0
- package/dist/esm/icons/IconGuanBiXiao.js +14 -0
- package/dist/esm/icons/IconGuanBiXiao.js.map +1 -0
- package/dist/esm/icons/IconGuanBiXiao1.js +14 -0
- package/dist/esm/icons/IconGuanBiXiao1.js.map +1 -0
- package/dist/esm/icons/IconLianJie.js +14 -0
- package/dist/esm/icons/IconLianJie.js.map +1 -0
- package/dist/esm/icons/IconLianJie1.js +14 -0
- package/dist/esm/icons/IconLianJie1.js.map +1 -0
- package/dist/esm/icons/IconQiWeiJiQiRen.js +14 -0
- package/dist/esm/icons/IconQiWeiJiQiRen.js.map +1 -0
- package/dist/esm/icons/IconQiYeBan.js +17 -0
- package/dist/esm/icons/IconQiYeBan.js.map +1 -0
- package/dist/esm/icons/IconRss.js +14 -0
- package/dist/esm/icons/IconRss.js.map +1 -0
- package/dist/esm/icons/IconSearch.js +14 -0
- package/dist/esm/icons/IconSearch.js.map +1 -0
- package/dist/esm/icons/IconSearch1.js +14 -0
- package/dist/esm/icons/IconSearch1.js.map +1 -0
- package/dist/esm/icons/IconSheZhi.js +14 -0
- package/dist/esm/icons/IconSheZhi.js.map +1 -0
- package/dist/esm/icons/IconShengCheng.js +14 -0
- package/dist/esm/icons/IconShengCheng.js.map +1 -0
- package/dist/esm/icons/IconShiBai.js +14 -0
- package/dist/esm/icons/IconShiBai.js.map +1 -0
- package/dist/esm/icons/IconShouQi.js +14 -0
- package/dist/esm/icons/IconShouQi.js.map +1 -0
- package/dist/esm/icons/IconSouSuoZhuShou.js +17 -0
- package/dist/esm/icons/IconSouSuoZhuShou.js.map +1 -0
- package/dist/esm/icons/IconSuoXiao.js +14 -0
- package/dist/esm/icons/IconSuoXiao.js.map +1 -0
- package/dist/esm/icons/IconTianJia.js +14 -0
- package/dist/esm/icons/IconTianJia.js.map +1 -0
- package/dist/esm/icons/IconTongZhi.js +14 -0
- package/dist/esm/icons/IconTongZhi.js.map +1 -0
- package/dist/esm/icons/IconTongZhi1.js +14 -0
- package/dist/esm/icons/IconTongZhi1.js.map +1 -0
- package/dist/esm/icons/IconTuiChu.js +14 -0
- package/dist/esm/icons/IconTuiChu.js.map +1 -0
- package/dist/esm/icons/IconWangLuoJianSuo.js +14 -0
- package/dist/esm/icons/IconWangLuoJianSuo.js.map +1 -0
- package/dist/esm/icons/IconWangYeXiaZai.js +14 -0
- package/dist/esm/icons/IconWangYeXiaZai.js.map +1 -0
- package/dist/esm/icons/IconWeiBiaoTi1HuaBan11.js +14 -0
- package/dist/esm/icons/IconWeiBiaoTi1HuaBan11.js.map +1 -0
- package/dist/esm/icons/IconWenDaZhuShou.js +17 -0
- package/dist/esm/icons/IconWenDaZhuShou.js.map +1 -0
- package/dist/esm/icons/IconWenDang.js +14 -0
- package/dist/esm/icons/IconWenDang.js.map +1 -0
- package/dist/esm/icons/IconWenDang1.js +14 -0
- package/dist/esm/icons/IconWenDang1.js.map +1 -0
- package/dist/esm/icons/IconWenJian.js +14 -0
- package/dist/esm/icons/IconWenJian.js.map +1 -0
- package/dist/esm/icons/IconXiTongPeiZhi.js +17 -0
- package/dist/esm/icons/IconXiTongPeiZhi.js.map +1 -0
- package/dist/esm/icons/IconXiaZai.js +14 -0
- package/dist/esm/icons/IconXiaZai.js.map +1 -0
- package/dist/esm/icons/IconXiaZaiZhuShou.js +17 -0
- package/dist/esm/icons/IconXiaZaiZhuShou.js.map +1 -0
- package/dist/esm/icons/IconXiaoXi.js +14 -0
- package/dist/esm/icons/IconXiaoXi.js.map +1 -0
- package/dist/esm/icons/IconXinXiGuanLi.js +17 -0
- package/dist/esm/icons/IconXinXiGuanLi.js.map +1 -0
- package/dist/esm/icons/IconXinZeng.js +14 -0
- package/dist/esm/icons/IconXinZeng.js.map +1 -0
- package/dist/esm/icons/IconYanZhengMa.js +14 -0
- package/dist/esm/icons/IconYanZhengMa.js.map +1 -0
- package/dist/esm/icons/IconYunYingGuanLi.js +17 -0
- package/dist/esm/icons/IconYunYingGuanLi.js.map +1 -0
- package/dist/esm/icons/IconZengJia.js +14 -0
- package/dist/esm/icons/IconZengJia.js.map +1 -0
- package/dist/esm/icons/IconZhanKai.js +14 -0
- package/dist/esm/icons/IconZhanKai.js.map +1 -0
- package/dist/esm/icons/IconZhanKai1.js +14 -0
- package/dist/esm/icons/IconZhanKai1.js.map +1 -0
- package/dist/esm/icons/IconZhengQue.js +14 -0
- package/dist/esm/icons/IconZhengQue.js.map +1 -0
- package/dist/esm/icons/IconZhiShiKu.js +14 -0
- package/dist/esm/icons/IconZhiShiKu.js.map +1 -0
- package/dist/esm/icons/IconZhiShiKu1.js +14 -0
- package/dist/esm/icons/IconZhiShiKu1.js.map +1 -0
- package/dist/esm/index.js +72 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/manifest-generator.js +267 -0
- package/dist/esm/manifest-generator.js.map +1 -0
- package/dist/esm/multi-format-output.js +221 -0
- package/dist/esm/multi-format-output.js.map +1 -0
- package/dist/esm/svg-exporter.js +244 -0
- package/dist/esm/svg-exporter.js.map +1 -0
- package/dist/esm/svg-transformer.js +314 -0
- package/dist/esm/svg-transformer.js.map +1 -0
- package/dist/esm/types.js +2 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/version-manager.js +167 -0
- package/dist/esm/version-manager.js.map +1 -0
- package/dist/types/changelog-generator.d.ts +112 -0
- package/dist/types/changelog-generator.d.ts.map +1 -0
- package/dist/types/component-generator.d.ts +88 -0
- package/dist/types/component-generator.d.ts.map +1 -0
- package/dist/types/figma-client.d.ts +107 -0
- package/dist/types/figma-client.d.ts.map +1 -0
- package/dist/types/icon-filter.d.ts +126 -0
- package/dist/types/icon-filter.d.ts.map +1 -0
- package/dist/types/icon-search.d.ts +31 -0
- package/dist/types/icon-search.d.ts.map +1 -0
- package/dist/types/icon-validator.d.ts +110 -0
- package/dist/types/icon-validator.d.ts.map +1 -0
- package/dist/types/icons/IconArrowRight.d.ts +17 -0
- package/dist/types/icons/IconArrowRight.d.ts.map +1 -0
- package/dist/types/icons/IconBack.d.ts +17 -0
- package/dist/types/icons/IconBack.d.ts.map +1 -0
- package/dist/types/icons/IconBack1.d.ts +17 -0
- package/dist/types/icons/IconBack1.d.ts.map +1 -0
- package/dist/types/icons/IconBangZhuShuoMing.d.ts +17 -0
- package/dist/types/icons/IconBangZhuShuoMing.d.ts.map +1 -0
- package/dist/types/icons/IconBaoGaoZhuShou.d.ts +17 -0
- package/dist/types/icons/IconBaoGaoZhuShou.d.ts.map +1 -0
- package/dist/types/icons/IconCheck.d.ts +17 -0
- package/dist/types/icons/IconCheck.d.ts.map +1 -0
- package/dist/types/icons/IconCheck1.d.ts +17 -0
- package/dist/types/icons/IconCheck1.d.ts.map +1 -0
- package/dist/types/icons/IconChengYuanGuanLi.d.ts +17 -0
- package/dist/types/icons/IconChengYuanGuanLi.d.ts.map +1 -0
- package/dist/types/icons/IconChongXinFaSong.d.ts +17 -0
- package/dist/types/icons/IconChongXinFaSong.d.ts.map +1 -0
- package/dist/types/icons/IconCloseCircle.d.ts +17 -0
- package/dist/types/icons/IconCloseCircle.d.ts.map +1 -0
- package/dist/types/icons/IconCuoWu.d.ts +17 -0
- package/dist/types/icons/IconCuoWu.d.ts.map +1 -0
- package/dist/types/icons/IconDingDing.d.ts +17 -0
- package/dist/types/icons/IconDingDing.d.ts.map +1 -0
- package/dist/types/icons/IconEdit03.d.ts +17 -0
- package/dist/types/icons/IconEdit03.d.ts.map +1 -0
- package/dist/types/icons/IconFanHui.d.ts +17 -0
- package/dist/types/icons/IconFanHui.d.ts.map +1 -0
- package/dist/types/icons/IconFangDa.d.ts +17 -0
- package/dist/types/icons/IconFangDa.d.ts.map +1 -0
- package/dist/types/icons/IconFrame.d.ts +17 -0
- package/dist/types/icons/IconFrame.d.ts.map +1 -0
- package/dist/types/icons/IconFrame1261156242.d.ts +17 -0
- package/dist/types/icons/IconFrame1261156242.d.ts.map +1 -0
- package/dist/types/icons/IconGuanBi.d.ts +17 -0
- package/dist/types/icons/IconGuanBi.d.ts.map +1 -0
- package/dist/types/icons/IconGuanBi1.d.ts +17 -0
- package/dist/types/icons/IconGuanBi1.d.ts.map +1 -0
- package/dist/types/icons/IconGuanBiXiao.d.ts +17 -0
- package/dist/types/icons/IconGuanBiXiao.d.ts.map +1 -0
- package/dist/types/icons/IconGuanBiXiao1.d.ts +17 -0
- package/dist/types/icons/IconGuanBiXiao1.d.ts.map +1 -0
- package/dist/types/icons/IconLianJie.d.ts +17 -0
- package/dist/types/icons/IconLianJie.d.ts.map +1 -0
- package/dist/types/icons/IconLianJie1.d.ts +17 -0
- package/dist/types/icons/IconLianJie1.d.ts.map +1 -0
- package/dist/types/icons/IconQiWeiJiQiRen.d.ts +17 -0
- package/dist/types/icons/IconQiWeiJiQiRen.d.ts.map +1 -0
- package/dist/types/icons/IconQiYeBan.d.ts +17 -0
- package/dist/types/icons/IconQiYeBan.d.ts.map +1 -0
- package/dist/types/icons/IconRss.d.ts +17 -0
- package/dist/types/icons/IconRss.d.ts.map +1 -0
- package/dist/types/icons/IconSearch.d.ts +17 -0
- package/dist/types/icons/IconSearch.d.ts.map +1 -0
- package/dist/types/icons/IconSearch1.d.ts +17 -0
- package/dist/types/icons/IconSearch1.d.ts.map +1 -0
- package/dist/types/icons/IconSheZhi.d.ts +17 -0
- package/dist/types/icons/IconSheZhi.d.ts.map +1 -0
- package/dist/types/icons/IconShengCheng.d.ts +17 -0
- package/dist/types/icons/IconShengCheng.d.ts.map +1 -0
- package/dist/types/icons/IconShiBai.d.ts +17 -0
- package/dist/types/icons/IconShiBai.d.ts.map +1 -0
- package/dist/types/icons/IconShouQi.d.ts +17 -0
- package/dist/types/icons/IconShouQi.d.ts.map +1 -0
- package/dist/types/icons/IconSouSuoZhuShou.d.ts +17 -0
- package/dist/types/icons/IconSouSuoZhuShou.d.ts.map +1 -0
- package/dist/types/icons/IconSuoXiao.d.ts +17 -0
- package/dist/types/icons/IconSuoXiao.d.ts.map +1 -0
- package/dist/types/icons/IconTianJia.d.ts +17 -0
- package/dist/types/icons/IconTianJia.d.ts.map +1 -0
- package/dist/types/icons/IconTongZhi.d.ts +17 -0
- package/dist/types/icons/IconTongZhi.d.ts.map +1 -0
- package/dist/types/icons/IconTongZhi1.d.ts +17 -0
- package/dist/types/icons/IconTongZhi1.d.ts.map +1 -0
- package/dist/types/icons/IconTuiChu.d.ts +17 -0
- package/dist/types/icons/IconTuiChu.d.ts.map +1 -0
- package/dist/types/icons/IconWangLuoJianSuo.d.ts +17 -0
- package/dist/types/icons/IconWangLuoJianSuo.d.ts.map +1 -0
- package/dist/types/icons/IconWangYeXiaZai.d.ts +17 -0
- package/dist/types/icons/IconWangYeXiaZai.d.ts.map +1 -0
- package/dist/types/icons/IconWeiBiaoTi1HuaBan11.d.ts +17 -0
- package/dist/types/icons/IconWeiBiaoTi1HuaBan11.d.ts.map +1 -0
- package/dist/types/icons/IconWenDaZhuShou.d.ts +17 -0
- package/dist/types/icons/IconWenDaZhuShou.d.ts.map +1 -0
- package/dist/types/icons/IconWenDang.d.ts +17 -0
- package/dist/types/icons/IconWenDang.d.ts.map +1 -0
- package/dist/types/icons/IconWenDang1.d.ts +17 -0
- package/dist/types/icons/IconWenDang1.d.ts.map +1 -0
- package/dist/types/icons/IconWenJian.d.ts +17 -0
- package/dist/types/icons/IconWenJian.d.ts.map +1 -0
- package/dist/types/icons/IconXiTongPeiZhi.d.ts +17 -0
- package/dist/types/icons/IconXiTongPeiZhi.d.ts.map +1 -0
- package/dist/types/icons/IconXiaZai.d.ts +17 -0
- package/dist/types/icons/IconXiaZai.d.ts.map +1 -0
- package/dist/types/icons/IconXiaZaiZhuShou.d.ts +17 -0
- package/dist/types/icons/IconXiaZaiZhuShou.d.ts.map +1 -0
- package/dist/types/icons/IconXiaoXi.d.ts +17 -0
- package/dist/types/icons/IconXiaoXi.d.ts.map +1 -0
- package/dist/types/icons/IconXinXiGuanLi.d.ts +17 -0
- package/dist/types/icons/IconXinXiGuanLi.d.ts.map +1 -0
- package/dist/types/icons/IconXinZeng.d.ts +17 -0
- package/dist/types/icons/IconXinZeng.d.ts.map +1 -0
- package/dist/types/icons/IconYanZhengMa.d.ts +17 -0
- package/dist/types/icons/IconYanZhengMa.d.ts.map +1 -0
- package/dist/types/icons/IconYunYingGuanLi.d.ts +17 -0
- package/dist/types/icons/IconYunYingGuanLi.d.ts.map +1 -0
- package/dist/types/icons/IconZengJia.d.ts +17 -0
- package/dist/types/icons/IconZengJia.d.ts.map +1 -0
- package/dist/types/icons/IconZhanKai.d.ts +17 -0
- package/dist/types/icons/IconZhanKai.d.ts.map +1 -0
- package/dist/types/icons/IconZhanKai1.d.ts +17 -0
- package/dist/types/icons/IconZhanKai1.d.ts.map +1 -0
- package/dist/types/icons/IconZhengQue.d.ts +17 -0
- package/dist/types/icons/IconZhengQue.d.ts.map +1 -0
- package/dist/types/icons/IconZhiShiKu.d.ts +17 -0
- package/dist/types/icons/IconZhiShiKu.d.ts.map +1 -0
- package/dist/types/icons/IconZhiShiKu1.d.ts +17 -0
- package/dist/types/icons/IconZhiShiKu1.d.ts.map +1 -0
- package/dist/types/index.d.ts +56 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/manifest-generator.d.ts +113 -0
- package/dist/types/manifest-generator.d.ts.map +1 -0
- package/dist/types/multi-format-output.d.ts +151 -0
- package/dist/types/multi-format-output.d.ts.map +1 -0
- package/dist/types/svg-exporter.d.ts +103 -0
- package/dist/types/svg-exporter.d.ts.map +1 -0
- package/dist/types/svg-transformer.d.ts +103 -0
- package/dist/types/svg-transformer.d.ts.map +1 -0
- package/dist/types/types.d.ts +346 -0
- package/dist/types/types.d.ts.map +1 -0
- package/dist/types/version-manager.d.ts +82 -0
- package/dist/types/version-manager.d.ts.map +1 -0
- package/icons.json +227 -0
- package/package.json +66 -0
- package/svg/back.svg +1 -0
- package/svg/back1.svg +1 -0
- package/svg/check.svg +1 -0
- package/svg/check1.svg +1 -0
- package/svg/search.svg +1 -0
- package/svg/search1.svg +1 -0
- package/svg//345/205/263/351/227/255-/345/260/217.svg +1 -0
- package/svg//345/205/263/351/227/255-/345/260/2171.svg +1 -0
- package/svg//345/205/263/351/227/255.svg +1 -0
- package/svg//345/205/263/351/227/2551.svg +1 -0
- package/svg//345/261/225/345/274/200.svg +1 -0
- package/svg//345/261/225/345/274/2001.svg +1 -0
- package/svg//346/226/207/346/241/243.svg +1 -0
- package/svg//346/226/207/346/241/2431.svg +1 -0
- package/svg//347/237/245/350/257/206/345/272/223.svg +1 -0
- package/svg//347/237/245/350/257/206/345/272/2231.svg +1 -0
- package/svg//351/200/232/347/237/245.svg +1 -0
- package/svg//351/200/232/347/237/2451.svg +1 -0
- package/svg//351/223/276/346/216/245.svg +1 -0
- package/svg//351/223/276/346/216/2451.svg +1 -0
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SVG Batch Export Module
|
|
3
|
+
*
|
|
4
|
+
* Provides functions to batch export SVG files from Figma and save them to disk.
|
|
5
|
+
* Handles concurrent downloads with rate limiting and error handling.
|
|
6
|
+
*
|
|
7
|
+
* Requirements: 2.3, 2.4
|
|
8
|
+
*/
|
|
9
|
+
import * as fs from 'fs/promises';
|
|
10
|
+
import * as path from 'path';
|
|
11
|
+
/**
|
|
12
|
+
* Default export options
|
|
13
|
+
* 降低并发数以减少限速风险
|
|
14
|
+
*/
|
|
15
|
+
const DEFAULT_EXPORT_OPTIONS = {
|
|
16
|
+
outputDir: './svg',
|
|
17
|
+
concurrency: 3, // 降低并发数,减少限速风险
|
|
18
|
+
simplifyStroke: true,
|
|
19
|
+
includeId: false,
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Ensures the output directory exists
|
|
23
|
+
*
|
|
24
|
+
* @param dir - Directory path to create
|
|
25
|
+
*/
|
|
26
|
+
async function ensureDirectory(dir) {
|
|
27
|
+
try {
|
|
28
|
+
await fs.mkdir(dir, { recursive: true });
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
// Directory might already exist, which is fine
|
|
32
|
+
if (error.code !== 'EEXIST') {
|
|
33
|
+
throw error;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Sanitizes a filename to be safe for the filesystem
|
|
39
|
+
*
|
|
40
|
+
* @param name - Original name
|
|
41
|
+
* @returns Sanitized filename
|
|
42
|
+
*/
|
|
43
|
+
export function sanitizeFilename(name) {
|
|
44
|
+
return name
|
|
45
|
+
.toLowerCase()
|
|
46
|
+
.replace(/[^a-z0-9-]/g, '-')
|
|
47
|
+
.replace(/-+/g, '-')
|
|
48
|
+
.replace(/^-|-$/g, '');
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Saves SVG content to a file
|
|
52
|
+
*
|
|
53
|
+
* @param content - SVG content
|
|
54
|
+
* @param filePath - Path to save the file
|
|
55
|
+
*/
|
|
56
|
+
async function saveSvgFile(content, filePath) {
|
|
57
|
+
await fs.writeFile(filePath, content, 'utf-8');
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Processes a batch of icons concurrently
|
|
61
|
+
*
|
|
62
|
+
* @param items - Items to process
|
|
63
|
+
* @param processor - Processing function
|
|
64
|
+
* @param concurrency - Maximum concurrent operations
|
|
65
|
+
*/
|
|
66
|
+
async function processBatch(items, processor, concurrency) {
|
|
67
|
+
const results = [];
|
|
68
|
+
const executing = [];
|
|
69
|
+
for (const item of items) {
|
|
70
|
+
const promise = processor(item).then((result) => {
|
|
71
|
+
results.push(result);
|
|
72
|
+
});
|
|
73
|
+
executing.push(promise);
|
|
74
|
+
if (executing.length >= concurrency) {
|
|
75
|
+
await Promise.race(executing);
|
|
76
|
+
// Remove completed promises
|
|
77
|
+
const completed = executing.filter((p) => p.then(() => false).catch(() => false));
|
|
78
|
+
executing.length = 0;
|
|
79
|
+
executing.push(...completed);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
await Promise.all(executing);
|
|
83
|
+
return results;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Exports SVG files for a list of icon components from Figma
|
|
87
|
+
*
|
|
88
|
+
* @param client - Figma API client
|
|
89
|
+
* @param fileKey - Figma file key
|
|
90
|
+
* @param icons - List of icon components to export
|
|
91
|
+
* @param options - Export options
|
|
92
|
+
* @returns Batch export result
|
|
93
|
+
*/
|
|
94
|
+
export async function batchExportSvg(client, fileKey, icons, options) {
|
|
95
|
+
const opts = { ...DEFAULT_EXPORT_OPTIONS, ...options };
|
|
96
|
+
const successful = [];
|
|
97
|
+
const failed = [];
|
|
98
|
+
// Ensure output directory exists
|
|
99
|
+
await ensureDirectory(opts.outputDir);
|
|
100
|
+
// Get image URLs from Figma API
|
|
101
|
+
const iconIds = icons.map((icon) => icon.id);
|
|
102
|
+
let imageUrls;
|
|
103
|
+
try {
|
|
104
|
+
imageUrls = await client.getImages(fileKey, iconIds, {
|
|
105
|
+
format: 'svg',
|
|
106
|
+
svgSimplifyStroke: opts.simplifyStroke,
|
|
107
|
+
svgIncludeId: opts.includeId,
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
// If we can't get image URLs, all icons fail
|
|
112
|
+
for (const icon of icons) {
|
|
113
|
+
failed.push({
|
|
114
|
+
id: icon.id,
|
|
115
|
+
name: icon.name,
|
|
116
|
+
success: false,
|
|
117
|
+
error: error instanceof Error
|
|
118
|
+
? error.message
|
|
119
|
+
: 'Failed to get image URLs from Figma',
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
return {
|
|
123
|
+
successful,
|
|
124
|
+
failed,
|
|
125
|
+
totalProcessed: icons.length,
|
|
126
|
+
outputDir: opts.outputDir,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
// Track progress
|
|
130
|
+
let completed = 0;
|
|
131
|
+
const total = icons.length;
|
|
132
|
+
// Process each icon
|
|
133
|
+
const processIcon = async (icon) => {
|
|
134
|
+
const imageUrl = imageUrls[icon.id];
|
|
135
|
+
if (!imageUrl) {
|
|
136
|
+
return {
|
|
137
|
+
id: icon.id,
|
|
138
|
+
name: icon.name,
|
|
139
|
+
success: false,
|
|
140
|
+
error: 'No image URL returned from Figma API',
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
try {
|
|
144
|
+
// Download SVG content
|
|
145
|
+
const svgContent = await client.downloadSvg(imageUrl);
|
|
146
|
+
// Generate filename and save
|
|
147
|
+
const filename = `${sanitizeFilename(icon.name)}.svg`;
|
|
148
|
+
const filePath = path.join(opts.outputDir, filename);
|
|
149
|
+
await saveSvgFile(svgContent, filePath);
|
|
150
|
+
completed++;
|
|
151
|
+
opts.onProgress?.({
|
|
152
|
+
total,
|
|
153
|
+
completed,
|
|
154
|
+
failed: failed.length,
|
|
155
|
+
current: icon.name,
|
|
156
|
+
});
|
|
157
|
+
return {
|
|
158
|
+
id: icon.id,
|
|
159
|
+
name: icon.name,
|
|
160
|
+
success: true,
|
|
161
|
+
filePath,
|
|
162
|
+
svgContent,
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
completed++;
|
|
167
|
+
opts.onProgress?.({
|
|
168
|
+
total,
|
|
169
|
+
completed,
|
|
170
|
+
failed: failed.length + 1,
|
|
171
|
+
current: icon.name,
|
|
172
|
+
});
|
|
173
|
+
return {
|
|
174
|
+
id: icon.id,
|
|
175
|
+
name: icon.name,
|
|
176
|
+
success: false,
|
|
177
|
+
error: error instanceof Error
|
|
178
|
+
? error.message
|
|
179
|
+
: 'Unknown error during export',
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
// Process icons with concurrency limit
|
|
184
|
+
const results = await Promise.all(icons.map((icon) => processIcon(icon)));
|
|
185
|
+
// Separate successful and failed results
|
|
186
|
+
for (const result of results) {
|
|
187
|
+
if (result.success) {
|
|
188
|
+
successful.push(result);
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
failed.push(result);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
return {
|
|
195
|
+
successful,
|
|
196
|
+
failed,
|
|
197
|
+
totalProcessed: icons.length,
|
|
198
|
+
outputDir: opts.outputDir,
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Exports a single SVG from Figma
|
|
203
|
+
*
|
|
204
|
+
* @param client - Figma API client
|
|
205
|
+
* @param fileKey - Figma file key
|
|
206
|
+
* @param icon - Icon component to export
|
|
207
|
+
* @param outputDir - Output directory
|
|
208
|
+
* @returns Export result
|
|
209
|
+
*/
|
|
210
|
+
export async function exportSingleSvg(client, fileKey, icon, outputDir) {
|
|
211
|
+
const result = await batchExportSvg(client, fileKey, [icon], { outputDir });
|
|
212
|
+
if (result.successful.length > 0) {
|
|
213
|
+
return result.successful[0];
|
|
214
|
+
}
|
|
215
|
+
return result.failed[0];
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Reads all SVG files from a directory
|
|
219
|
+
*
|
|
220
|
+
* @param dir - Directory to read from
|
|
221
|
+
* @returns Map of filename to SVG content
|
|
222
|
+
*/
|
|
223
|
+
export async function readSvgDirectory(dir) {
|
|
224
|
+
const svgMap = new Map();
|
|
225
|
+
try {
|
|
226
|
+
const files = await fs.readdir(dir);
|
|
227
|
+
for (const file of files) {
|
|
228
|
+
if (file.endsWith('.svg')) {
|
|
229
|
+
const filePath = path.join(dir, file);
|
|
230
|
+
const content = await fs.readFile(filePath, 'utf-8');
|
|
231
|
+
const name = file.replace('.svg', '');
|
|
232
|
+
svgMap.set(name, content);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
catch (error) {
|
|
237
|
+
// Directory might not exist
|
|
238
|
+
if (error.code !== 'ENOENT') {
|
|
239
|
+
throw error;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
return svgMap;
|
|
243
|
+
}
|
|
244
|
+
//# sourceMappingURL=svg-exporter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"svg-exporter.js","sourceRoot":"","sources":["../../src/svg-exporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SVG Transformer Module
|
|
3
|
+
*
|
|
4
|
+
* Handles SVG optimization using SVGO and conversion to JSX format.
|
|
5
|
+
* Requirements: 3.1, 3.2, 3.3, 3.4, 3.5, 3.6
|
|
6
|
+
*/
|
|
7
|
+
import { optimize } from 'svgo';
|
|
8
|
+
/**
|
|
9
|
+
* 自定义 SVGO 插件:清理 Figma 导出的 SVG 问题元素
|
|
10
|
+
* - 移除超大背景路径(设计稿背景泄漏)
|
|
11
|
+
* - 移除 clipPath 内的填充路径
|
|
12
|
+
* - 移除不需要的白色/透明填充背景
|
|
13
|
+
*/
|
|
14
|
+
const cleanFigmaExport = {
|
|
15
|
+
name: 'cleanFigmaExport',
|
|
16
|
+
fn: () => {
|
|
17
|
+
return {
|
|
18
|
+
element: {
|
|
19
|
+
enter: (node, parentNode) => {
|
|
20
|
+
// 移除超大尺寸的背景路径(如 d="M0 0h1440v1024H0z")
|
|
21
|
+
if (node.name === 'path' && node.attributes.d) {
|
|
22
|
+
const d = node.attributes.d;
|
|
23
|
+
// 检测矩形路径,尺寸超过 500 的视为设计稿背景
|
|
24
|
+
const rectMatch = d.match(/M[0\s-]*[0\s-]*[hH](\d+)[vV](\d+)/);
|
|
25
|
+
if (rectMatch) {
|
|
26
|
+
const width = parseInt(rectMatch[1], 10);
|
|
27
|
+
const height = parseInt(rectMatch[2], 10);
|
|
28
|
+
if (width > 500 || height > 500) {
|
|
29
|
+
// 从父节点移除此元素
|
|
30
|
+
if (parentNode.type === 'element' && parentNode.children) {
|
|
31
|
+
const index = parentNode.children.indexOf(node);
|
|
32
|
+
if (index > -1) {
|
|
33
|
+
parentNode.children.splice(index, 1);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
// 移除 clipPath 定义中的纯白色填充路径
|
|
41
|
+
if (node.name === 'clipPath') {
|
|
42
|
+
if (node.children) {
|
|
43
|
+
node.children = node.children.filter((child) => {
|
|
44
|
+
if (child.type === 'element' && child.name === 'path') {
|
|
45
|
+
const fill = child.attributes?.fill;
|
|
46
|
+
// 保留非白色填充的元素
|
|
47
|
+
return fill !== 'white' && fill !== '#fff' && fill !== '#ffffff';
|
|
48
|
+
}
|
|
49
|
+
return true;
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// 移除带有 transform="translate(负值)" 的大背景
|
|
54
|
+
if (node.name === 'path' && node.attributes.transform) {
|
|
55
|
+
const transform = node.attributes.transform;
|
|
56
|
+
if (transform.includes('translate(-') && node.attributes.d) {
|
|
57
|
+
const d = node.attributes.d;
|
|
58
|
+
// 如果是大矩形路径,移除
|
|
59
|
+
if (d.match(/[hH]\d{3,}[vV]\d{3,}/)) {
|
|
60
|
+
if (parentNode.type === 'element' && parentNode.children) {
|
|
61
|
+
const index = parentNode.children.indexOf(node);
|
|
62
|
+
if (index > -1) {
|
|
63
|
+
parentNode.children.splice(index, 1);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Default SVGO configuration for icon optimization
|
|
76
|
+
* - Removes dimensions (width/height)
|
|
77
|
+
* - Preserves original colors (不替换为 currentColor)
|
|
78
|
+
* - Removes unnecessary metadata
|
|
79
|
+
* - Cleans up Figma export artifacts
|
|
80
|
+
*/
|
|
81
|
+
export const defaultSvgoConfig = {
|
|
82
|
+
plugins: [
|
|
83
|
+
{
|
|
84
|
+
name: 'preset-default',
|
|
85
|
+
params: {
|
|
86
|
+
overrides: {
|
|
87
|
+
// 禁用颜色转换,保留原始颜色
|
|
88
|
+
convertColors: false,
|
|
89
|
+
// 禁用移除 viewBox
|
|
90
|
+
removeViewBox: false,
|
|
91
|
+
// 禁用移除未使用的 defs(保留渐变定义)
|
|
92
|
+
removeUselessDefs: false,
|
|
93
|
+
// 禁用移除未知属性(保留 stop-color 等属性)
|
|
94
|
+
removeUnknownsAndDefaults: false,
|
|
95
|
+
// 禁用合并路径(可能影响渐变引用)
|
|
96
|
+
mergePaths: false,
|
|
97
|
+
// 禁用路径转换(保留原始路径数据)
|
|
98
|
+
convertPathData: {
|
|
99
|
+
floatPrecision: 3,
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
'removeDimensions',
|
|
105
|
+
'removeXMLNS',
|
|
106
|
+
// 添加自定义清理插件
|
|
107
|
+
cleanFigmaExport,
|
|
108
|
+
],
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* Default transformation options
|
|
112
|
+
*/
|
|
113
|
+
export const defaultTransformOptions = {
|
|
114
|
+
replaceColors: true,
|
|
115
|
+
removeSize: true,
|
|
116
|
+
removeFill: true,
|
|
117
|
+
addViewBox: true,
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* Optimizes SVG content using SVGO
|
|
121
|
+
*
|
|
122
|
+
* @param svgContent - Raw SVG string
|
|
123
|
+
* @param config - Optional SVGO configuration override
|
|
124
|
+
* @returns Optimized SVG string
|
|
125
|
+
*
|
|
126
|
+
* Requirements: 3.1, 3.2, 3.3, 3.4
|
|
127
|
+
*/
|
|
128
|
+
export function optimizeSvg(svgContent, config = defaultSvgoConfig) {
|
|
129
|
+
const result = optimize(svgContent, config);
|
|
130
|
+
return result.data;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Map of SVG attribute names to their JSX equivalents
|
|
134
|
+
*/
|
|
135
|
+
const svgToJsxAttributeMap = {
|
|
136
|
+
class: 'className',
|
|
137
|
+
'stroke-width': 'strokeWidth',
|
|
138
|
+
'stroke-linecap': 'strokeLinecap',
|
|
139
|
+
'stroke-linejoin': 'strokeLinejoin',
|
|
140
|
+
'stroke-dasharray': 'strokeDasharray',
|
|
141
|
+
'stroke-dashoffset': 'strokeDashoffset',
|
|
142
|
+
'stroke-miterlimit': 'strokeMiterlimit',
|
|
143
|
+
'stroke-opacity': 'strokeOpacity',
|
|
144
|
+
'fill-rule': 'fillRule',
|
|
145
|
+
'fill-opacity': 'fillOpacity',
|
|
146
|
+
'clip-rule': 'clipRule',
|
|
147
|
+
'clip-path': 'clipPath',
|
|
148
|
+
'font-family': 'fontFamily',
|
|
149
|
+
'font-size': 'fontSize',
|
|
150
|
+
'font-style': 'fontStyle',
|
|
151
|
+
'font-weight': 'fontWeight',
|
|
152
|
+
'text-anchor': 'textAnchor',
|
|
153
|
+
'text-decoration': 'textDecoration',
|
|
154
|
+
'dominant-baseline': 'dominantBaseline',
|
|
155
|
+
'alignment-baseline': 'alignmentBaseline',
|
|
156
|
+
'baseline-shift': 'baselineShift',
|
|
157
|
+
'stop-color': 'stopColor',
|
|
158
|
+
'stop-opacity': 'stopOpacity',
|
|
159
|
+
'color-interpolation': 'colorInterpolation',
|
|
160
|
+
'color-interpolation-filters': 'colorInterpolationFilters',
|
|
161
|
+
'flood-color': 'floodColor',
|
|
162
|
+
'flood-opacity': 'floodOpacity',
|
|
163
|
+
'lighting-color': 'lightingColor',
|
|
164
|
+
'marker-start': 'markerStart',
|
|
165
|
+
'marker-mid': 'markerMid',
|
|
166
|
+
'marker-end': 'markerEnd',
|
|
167
|
+
'paint-order': 'paintOrder',
|
|
168
|
+
'shape-rendering': 'shapeRendering',
|
|
169
|
+
'vector-effect': 'vectorEffect',
|
|
170
|
+
'pointer-events': 'pointerEvents',
|
|
171
|
+
'xlink:href': 'xlinkHref',
|
|
172
|
+
'xml:space': 'xmlSpace',
|
|
173
|
+
'xmlns:xlink': 'xmlnsXlink',
|
|
174
|
+
};
|
|
175
|
+
/**
|
|
176
|
+
* Converts a kebab-case attribute name to camelCase
|
|
177
|
+
*
|
|
178
|
+
* @param attr - Attribute name in kebab-case
|
|
179
|
+
* @returns Attribute name in camelCase
|
|
180
|
+
*/
|
|
181
|
+
export function kebabToCamelCase(attr) {
|
|
182
|
+
// Check if it's a known SVG attribute that needs special handling
|
|
183
|
+
if (svgToJsxAttributeMap[attr]) {
|
|
184
|
+
return svgToJsxAttributeMap[attr];
|
|
185
|
+
}
|
|
186
|
+
// Convert kebab-case to camelCase
|
|
187
|
+
return attr.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Converts SVG content to JSX-compatible format
|
|
191
|
+
*
|
|
192
|
+
* Transforms attribute names from kebab-case to camelCase
|
|
193
|
+
* as required by React/JSX.
|
|
194
|
+
*
|
|
195
|
+
* @param svgContent - SVG string with standard attribute names
|
|
196
|
+
* @returns SVG string with JSX-compatible attribute names
|
|
197
|
+
*
|
|
198
|
+
* Requirements: 3.5
|
|
199
|
+
*/
|
|
200
|
+
export function convertToJsx(svgContent) {
|
|
201
|
+
// Match all attributes in the SVG
|
|
202
|
+
// Pattern: attribute-name="value" or attribute-name='value'
|
|
203
|
+
return svgContent.replace(/\s([a-z][a-z0-9]*(?:-[a-z0-9]+)+)=/gi, (_, attrName) => {
|
|
204
|
+
const jsxAttrName = kebabToCamelCase(attrName.toLowerCase());
|
|
205
|
+
return ` ${jsxAttrName}=`;
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Transforms SVG content: optimizes and converts to JSX format
|
|
210
|
+
*
|
|
211
|
+
* @param svgContent - Raw SVG string
|
|
212
|
+
* @param options - Transformation options
|
|
213
|
+
* @param svgoConfig - Optional SVGO configuration override
|
|
214
|
+
* @returns TransformResult with original/optimized sizes and content
|
|
215
|
+
*
|
|
216
|
+
* Requirements: 3.1, 3.2, 3.3, 3.4, 3.5, 3.6
|
|
217
|
+
*/
|
|
218
|
+
export function transformSvg(svgContent, _options = defaultTransformOptions, svgoConfig = defaultSvgoConfig) {
|
|
219
|
+
const originalSize = svgContent.length;
|
|
220
|
+
// Optimize SVG with SVGO
|
|
221
|
+
// Note: _options is reserved for future use when custom transform options are needed
|
|
222
|
+
const optimizedSvg = optimizeSvg(svgContent, svgoConfig);
|
|
223
|
+
// Convert to JSX format
|
|
224
|
+
const jsxContent = convertToJsx(optimizedSvg);
|
|
225
|
+
return {
|
|
226
|
+
originalSize,
|
|
227
|
+
optimizedSize: optimizedSvg.length,
|
|
228
|
+
svgContent: optimizedSvg,
|
|
229
|
+
jsxContent,
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Extracts the inner content of an SVG element (everything between <svg> tags)
|
|
234
|
+
*
|
|
235
|
+
* @param svgContent - Full SVG string
|
|
236
|
+
* @returns Inner content of the SVG
|
|
237
|
+
*/
|
|
238
|
+
export function extractSvgInnerContent(svgContent) {
|
|
239
|
+
// Match content between <svg ...> and </svg>
|
|
240
|
+
const match = svgContent.match(/<svg[^>]*>([\s\S]*)<\/svg>/i);
|
|
241
|
+
return match ? match[1].trim() : '';
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Extracts the viewBox attribute from an SVG string
|
|
245
|
+
*
|
|
246
|
+
* @param svgContent - SVG string
|
|
247
|
+
* @returns viewBox value or null if not found
|
|
248
|
+
*/
|
|
249
|
+
export function extractViewBox(svgContent) {
|
|
250
|
+
const match = svgContent.match(/viewBox=["']([^"']+)["']/i);
|
|
251
|
+
return match ? match[1] : null;
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Extracts the fill attribute from the root SVG element
|
|
255
|
+
*
|
|
256
|
+
* @param svgContent - SVG string
|
|
257
|
+
* @returns fill value or null if not found
|
|
258
|
+
*/
|
|
259
|
+
export function extractSvgRootFill(svgContent) {
|
|
260
|
+
const match = svgContent.match(/<svg[^>]*\sfill=["']([^"']+)["']/i);
|
|
261
|
+
return match ? match[1] : null;
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Checks if SVG content contains width/height attributes
|
|
265
|
+
*
|
|
266
|
+
* @param svgContent - SVG string
|
|
267
|
+
* @returns true if width or height attributes are present
|
|
268
|
+
*/
|
|
269
|
+
export function hasFixedDimensions(svgContent) {
|
|
270
|
+
const widthMatch = svgContent.match(/<svg[^>]*\swidth=["'][^"']+["']/i);
|
|
271
|
+
const heightMatch = svgContent.match(/<svg[^>]*\sheight=["'][^"']+["']/i);
|
|
272
|
+
return !!(widthMatch || heightMatch);
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Checks if SVG content uses currentColor for fill
|
|
276
|
+
*
|
|
277
|
+
* @param svgContent - SVG string
|
|
278
|
+
* @returns true if fill="currentColor" is present on the svg element
|
|
279
|
+
*/
|
|
280
|
+
export function usesCurrentColor(svgContent) {
|
|
281
|
+
// Check if the SVG element has fill="currentColor"
|
|
282
|
+
const svgTagMatch = svgContent.match(/<svg[^>]*>/i);
|
|
283
|
+
if (!svgTagMatch)
|
|
284
|
+
return false;
|
|
285
|
+
return /fill=["']currentColor["']/i.test(svgTagMatch[0]);
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Checks if all attribute names in SVG are in JSX camelCase format
|
|
289
|
+
*
|
|
290
|
+
* @param svgContent - SVG string
|
|
291
|
+
* @returns true if all attributes are in camelCase
|
|
292
|
+
*/
|
|
293
|
+
export function hasJsxAttributes(svgContent) {
|
|
294
|
+
// List of common kebab-case SVG attributes that should be converted
|
|
295
|
+
const kebabAttributes = [
|
|
296
|
+
'stroke-width',
|
|
297
|
+
'stroke-linecap',
|
|
298
|
+
'stroke-linejoin',
|
|
299
|
+
'fill-rule',
|
|
300
|
+
'clip-rule',
|
|
301
|
+
'clip-path',
|
|
302
|
+
'font-family',
|
|
303
|
+
'font-size',
|
|
304
|
+
];
|
|
305
|
+
for (const attr of kebabAttributes) {
|
|
306
|
+
// Check if the kebab-case version exists (it shouldn't after conversion)
|
|
307
|
+
const regex = new RegExp(`\\s${attr}=`, 'i');
|
|
308
|
+
if (regex.test(svgContent)) {
|
|
309
|
+
return false;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
return true;
|
|
313
|
+
}
|
|
314
|
+
//# sourceMappingURL=svg-transformer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"svg-transformer.js","sourceRoot":"","sources":["../../src/svg-transformer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
|