@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,167 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Version Manager Module
|
|
3
|
+
*
|
|
4
|
+
* Provides semantic version suggestions based on icon changes.
|
|
5
|
+
* Follows SemVer conventions:
|
|
6
|
+
* - major: breaking changes (icon removals)
|
|
7
|
+
* - minor: new features (icon additions)
|
|
8
|
+
* - patch: bug fixes (icon modifications only)
|
|
9
|
+
*
|
|
10
|
+
* Requirements: 13.1, 13.2, 13.3, 13.4
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Suggests a semantic version bump type based on icon changes
|
|
14
|
+
*
|
|
15
|
+
* Rules (per Requirements 13.1-13.4):
|
|
16
|
+
* - If icons are removed → major (breaking change)
|
|
17
|
+
* - If icons are added (with or without modifications) → minor (new feature)
|
|
18
|
+
* - If only icons are modified → patch (bug fix)
|
|
19
|
+
* - If no changes → patch (default)
|
|
20
|
+
*
|
|
21
|
+
* @param diff - The icon diff containing added, modified, and removed icons
|
|
22
|
+
* @returns VersionSuggestion with bump type and reason
|
|
23
|
+
*
|
|
24
|
+
* Requirements: 13.1, 13.2, 13.3, 13.4
|
|
25
|
+
*/
|
|
26
|
+
export function suggestVersionBump(diff) {
|
|
27
|
+
const hasRemovals = diff.removed.length > 0;
|
|
28
|
+
const hasAdditions = diff.added.length > 0;
|
|
29
|
+
const hasModifications = diff.modified.length > 0;
|
|
30
|
+
// Rule 1: Removals are breaking changes → major
|
|
31
|
+
// Requirements: 13.3
|
|
32
|
+
if (hasRemovals) {
|
|
33
|
+
const removedCount = diff.removed.length;
|
|
34
|
+
const reason = removedCount === 1
|
|
35
|
+
? `1 icon removed (breaking change)`
|
|
36
|
+
: `${removedCount} icons removed (breaking change)`;
|
|
37
|
+
return {
|
|
38
|
+
bumpType: 'major',
|
|
39
|
+
reason,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
// Rule 2: Additions are new features → minor
|
|
43
|
+
// Requirements: 13.2
|
|
44
|
+
if (hasAdditions) {
|
|
45
|
+
const addedCount = diff.added.length;
|
|
46
|
+
const modifiedCount = diff.modified.length;
|
|
47
|
+
let reason = addedCount === 1 ? `1 icon added` : `${addedCount} icons added`;
|
|
48
|
+
if (modifiedCount > 0) {
|
|
49
|
+
reason +=
|
|
50
|
+
modifiedCount === 1
|
|
51
|
+
? `, 1 icon modified`
|
|
52
|
+
: `, ${modifiedCount} icons modified`;
|
|
53
|
+
}
|
|
54
|
+
return {
|
|
55
|
+
bumpType: 'minor',
|
|
56
|
+
reason,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
// Rule 3: Only modifications → patch
|
|
60
|
+
// Requirements: 13.4
|
|
61
|
+
if (hasModifications) {
|
|
62
|
+
const modifiedCount = diff.modified.length;
|
|
63
|
+
const reason = modifiedCount === 1
|
|
64
|
+
? `1 icon modified`
|
|
65
|
+
: `${modifiedCount} icons modified`;
|
|
66
|
+
return {
|
|
67
|
+
bumpType: 'patch',
|
|
68
|
+
reason,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
// No changes → default to patch
|
|
72
|
+
return {
|
|
73
|
+
bumpType: 'patch',
|
|
74
|
+
reason: 'No changes detected',
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Increments a semantic version string based on bump type
|
|
79
|
+
*
|
|
80
|
+
* @param currentVersion - Current version string (e.g., "1.2.3")
|
|
81
|
+
* @param bumpType - Type of version bump
|
|
82
|
+
* @returns New version string
|
|
83
|
+
*
|
|
84
|
+
* Requirements: 13.1
|
|
85
|
+
*/
|
|
86
|
+
export function incrementVersion(currentVersion, bumpType) {
|
|
87
|
+
const parts = parseVersion(currentVersion);
|
|
88
|
+
switch (bumpType) {
|
|
89
|
+
case 'major':
|
|
90
|
+
return `${parts.major + 1}.0.0`;
|
|
91
|
+
case 'minor':
|
|
92
|
+
return `${parts.major}.${parts.minor + 1}.0`;
|
|
93
|
+
case 'patch':
|
|
94
|
+
return `${parts.major}.${parts.minor}.${parts.patch + 1}`;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Parses a semantic version string into components
|
|
99
|
+
*
|
|
100
|
+
* @param version - Version string (e.g., "1.2.3")
|
|
101
|
+
* @returns Parsed version components
|
|
102
|
+
* @throws Error if version format is invalid
|
|
103
|
+
*/
|
|
104
|
+
export function parseVersion(version) {
|
|
105
|
+
// Remove 'v' prefix if present
|
|
106
|
+
const cleanVersion = version.startsWith('v') ? version.slice(1) : version;
|
|
107
|
+
const match = cleanVersion.match(/^(\d+)\.(\d+)\.(\d+)/);
|
|
108
|
+
if (!match) {
|
|
109
|
+
throw new Error(`Invalid version format: ${version}`);
|
|
110
|
+
}
|
|
111
|
+
return {
|
|
112
|
+
major: parseInt(match[1], 10),
|
|
113
|
+
minor: parseInt(match[2], 10),
|
|
114
|
+
patch: parseInt(match[3], 10),
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Validates a semantic version string
|
|
119
|
+
*
|
|
120
|
+
* @param version - Version string to validate
|
|
121
|
+
* @returns True if valid semantic version
|
|
122
|
+
*/
|
|
123
|
+
export function isValidVersion(version) {
|
|
124
|
+
try {
|
|
125
|
+
parseVersion(version);
|
|
126
|
+
return true;
|
|
127
|
+
}
|
|
128
|
+
catch {
|
|
129
|
+
return false;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Compares two semantic versions
|
|
134
|
+
*
|
|
135
|
+
* @param a - First version
|
|
136
|
+
* @param b - Second version
|
|
137
|
+
* @returns -1 if a < b, 0 if a === b, 1 if a > b
|
|
138
|
+
*/
|
|
139
|
+
export function compareVersions(a, b) {
|
|
140
|
+
const parsedA = parseVersion(a);
|
|
141
|
+
const parsedB = parseVersion(b);
|
|
142
|
+
if (parsedA.major !== parsedB.major) {
|
|
143
|
+
return parsedA.major < parsedB.major ? -1 : 1;
|
|
144
|
+
}
|
|
145
|
+
if (parsedA.minor !== parsedB.minor) {
|
|
146
|
+
return parsedA.minor < parsedB.minor ? -1 : 1;
|
|
147
|
+
}
|
|
148
|
+
if (parsedA.patch !== parsedB.patch) {
|
|
149
|
+
return parsedA.patch < parsedB.patch ? -1 : 1;
|
|
150
|
+
}
|
|
151
|
+
return 0;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Suggests a new version based on current version and icon diff
|
|
155
|
+
*
|
|
156
|
+
* Convenience function that combines suggestVersionBump and incrementVersion.
|
|
157
|
+
*
|
|
158
|
+
* @param currentVersion - Current version string
|
|
159
|
+
* @param diff - Icon diff
|
|
160
|
+
* @returns Object with suggested version and reason
|
|
161
|
+
*/
|
|
162
|
+
export function suggestNewVersion(currentVersion, diff) {
|
|
163
|
+
const suggestion = suggestVersionBump(diff);
|
|
164
|
+
const version = incrementVersion(currentVersion, suggestion.bumpType);
|
|
165
|
+
return { version, suggestion };
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=version-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-manager.js","sourceRoot":"","sources":["../../src/version-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Changelog Generator Module
|
|
3
|
+
*
|
|
4
|
+
* Generates changelog entries by comparing icon manifests and
|
|
5
|
+
* producing Markdown-formatted version history.
|
|
6
|
+
*
|
|
7
|
+
* Requirements: 10.1, 10.2, 10.3, 10.4, 10.5
|
|
8
|
+
*/
|
|
9
|
+
import type { IconManifest, IconMetadata, IconDiff, ChangelogEntry } from './types';
|
|
10
|
+
/**
|
|
11
|
+
* Computes the diff between two icon manifests
|
|
12
|
+
*
|
|
13
|
+
* Identifies icons that were added, modified, or removed between versions.
|
|
14
|
+
* Modification is detected by comparing SVG content when available,
|
|
15
|
+
* or by comparing dimensions if SVG content is not present.
|
|
16
|
+
*
|
|
17
|
+
* @param currentManifest - The new/current manifest
|
|
18
|
+
* @param previousManifest - The old/previous manifest
|
|
19
|
+
* @returns IconDiff containing added, modified, and removed icons
|
|
20
|
+
*
|
|
21
|
+
* Requirements: 10.3
|
|
22
|
+
*/
|
|
23
|
+
export declare function computeIconDiff(currentManifest: IconManifest, previousManifest: IconManifest): IconDiff;
|
|
24
|
+
/**
|
|
25
|
+
* Determines if an icon has changed between versions
|
|
26
|
+
*
|
|
27
|
+
* @param current - Current version of the icon
|
|
28
|
+
* @param previous - Previous version of the icon
|
|
29
|
+
* @returns True if the icon has changed
|
|
30
|
+
*/
|
|
31
|
+
export declare function hasIconChanged(current: IconMetadata, previous: IconMetadata): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Checks if a diff has any changes
|
|
34
|
+
*
|
|
35
|
+
* @param diff - The icon diff to check
|
|
36
|
+
* @returns True if there are any changes
|
|
37
|
+
*/
|
|
38
|
+
export declare function hasChanges(diff: IconDiff): boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Options for changelog generation
|
|
41
|
+
*/
|
|
42
|
+
export interface ChangelogOptions {
|
|
43
|
+
/** Version number for the release */
|
|
44
|
+
version: string;
|
|
45
|
+
/** Update message from the designer */
|
|
46
|
+
message: string;
|
|
47
|
+
/** Optional date override (defaults to current date) */
|
|
48
|
+
date?: string;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Formats a date to ISO format (YYYY-MM-DD)
|
|
52
|
+
*
|
|
53
|
+
* @param date - Date to format (defaults to current date)
|
|
54
|
+
* @returns ISO formatted date string
|
|
55
|
+
*/
|
|
56
|
+
export declare function formatDate(date?: Date | string): string;
|
|
57
|
+
/**
|
|
58
|
+
* Creates a ChangelogEntry from a diff and options
|
|
59
|
+
*
|
|
60
|
+
* @param diff - The icon diff
|
|
61
|
+
* @param options - Changelog generation options
|
|
62
|
+
* @returns ChangelogEntry object
|
|
63
|
+
*
|
|
64
|
+
* Requirements: 10.2, 10.4, 10.5
|
|
65
|
+
*/
|
|
66
|
+
export declare function createChangelogEntry(diff: IconDiff, options: ChangelogOptions): ChangelogEntry;
|
|
67
|
+
/**
|
|
68
|
+
* Generates a Markdown-formatted changelog entry
|
|
69
|
+
*
|
|
70
|
+
* @param entry - The changelog entry to format
|
|
71
|
+
* @returns Markdown string
|
|
72
|
+
*
|
|
73
|
+
* Requirements: 10.1, 10.2, 10.4, 10.5
|
|
74
|
+
*/
|
|
75
|
+
export declare function generateChangelogMarkdown(entry: ChangelogEntry): string;
|
|
76
|
+
/**
|
|
77
|
+
* Generates a complete changelog entry from two manifests
|
|
78
|
+
*
|
|
79
|
+
* This is a convenience function that combines diff computation
|
|
80
|
+
* and markdown generation.
|
|
81
|
+
*
|
|
82
|
+
* @param currentManifest - The new/current manifest
|
|
83
|
+
* @param previousManifest - The old/previous manifest
|
|
84
|
+
* @param options - Changelog generation options
|
|
85
|
+
* @returns Markdown-formatted changelog entry
|
|
86
|
+
*
|
|
87
|
+
* Requirements: 10.1, 10.2, 10.3, 10.4, 10.5
|
|
88
|
+
*/
|
|
89
|
+
export declare function generateChangelog(currentManifest: IconManifest, previousManifest: IconManifest, options: ChangelogOptions): string;
|
|
90
|
+
/**
|
|
91
|
+
* Prepends a new changelog entry to an existing changelog file content
|
|
92
|
+
*
|
|
93
|
+
* @param existingContent - Existing CHANGELOG.md content
|
|
94
|
+
* @param newEntry - New changelog entry markdown
|
|
95
|
+
* @returns Updated changelog content
|
|
96
|
+
*/
|
|
97
|
+
export declare function prependToChangelog(existingContent: string, newEntry: string): string;
|
|
98
|
+
/**
|
|
99
|
+
* Creates an initial CHANGELOG.md content with header
|
|
100
|
+
*
|
|
101
|
+
* @param projectName - Name of the project
|
|
102
|
+
* @returns Initial changelog content
|
|
103
|
+
*/
|
|
104
|
+
export declare function createInitialChangelog(projectName?: string): string;
|
|
105
|
+
/**
|
|
106
|
+
* Parses a changelog entry from markdown
|
|
107
|
+
*
|
|
108
|
+
* @param markdown - Markdown content of a single entry
|
|
109
|
+
* @returns Parsed ChangelogEntry or null if parsing fails
|
|
110
|
+
*/
|
|
111
|
+
export declare function parseChangelogEntry(markdown: string): ChangelogEntry | null;
|
|
112
|
+
//# sourceMappingURL=changelog-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changelog-generator.d.ts","sourceRoot":"","sources":["../../src/changelog-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,cAAc,EAEf,MAAM,SAAS,CAAA;AAEhB;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC7B,eAAe,EAAE,YAAY,EAC7B,gBAAgB,EAAE,YAAY,GAC7B,QAAQ,CAqCV;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,YAAY,GACrB,OAAO,CAYT;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAIlD;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAA;IACf,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAA;IACf,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAWvD;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,gBAAgB,GACxB,cAAc,CAahB;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CA+CvE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAC/B,eAAe,EAAE,YAAY,EAC7B,gBAAgB,EAAE,YAAY,EAC9B,OAAO,EAAE,gBAAgB,GACxB,MAAM,CAIR;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,GACf,MAAM,CAcR;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,GAAE,MAAuB,GACnC,MAAM,CASR;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CA6B3E"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Component Generator Module
|
|
3
|
+
*
|
|
4
|
+
* Handles React component generation from optimized SVG content.
|
|
5
|
+
* Requirements: 4.1, 4.2, 4.3, 4.5, 4.6
|
|
6
|
+
*/
|
|
7
|
+
import type { IconMetadata, ComponentTemplate } from './types';
|
|
8
|
+
/**
|
|
9
|
+
* Converts a string to PascalCase format
|
|
10
|
+
*
|
|
11
|
+
* Handles various input formats:
|
|
12
|
+
* - kebab-case: "arrow-right" -> "ArrowRight"
|
|
13
|
+
* - snake_case: "arrow_right" -> "ArrowRight"
|
|
14
|
+
* - space separated: "arrow right" -> "ArrowRight"
|
|
15
|
+
* - mixed: "arrow-right_up" -> "ArrowRightUp"
|
|
16
|
+
* - already PascalCase: "ArrowRight" -> "ArrowRight"
|
|
17
|
+
* - camelCase: "arrowRight" -> "ArrowRight"
|
|
18
|
+
*
|
|
19
|
+
* @param str - Input string in any format
|
|
20
|
+
* @returns PascalCase formatted string
|
|
21
|
+
*
|
|
22
|
+
* Requirements: 4.3
|
|
23
|
+
*/
|
|
24
|
+
export declare function toPascalCase(str: string): string;
|
|
25
|
+
/**
|
|
26
|
+
* Generates a valid React component name from an icon name
|
|
27
|
+
*
|
|
28
|
+
* @param iconName - Original icon name
|
|
29
|
+
* @param prefix - Prefix to add (default: "Icon")
|
|
30
|
+
* @returns Valid React component name
|
|
31
|
+
*
|
|
32
|
+
* Requirements: 4.3
|
|
33
|
+
*/
|
|
34
|
+
export declare function generateComponentName(iconName: string, prefix?: string): string;
|
|
35
|
+
/**
|
|
36
|
+
* Generates a React component template from icon metadata and JSX content
|
|
37
|
+
*
|
|
38
|
+
* @param icon - Icon metadata
|
|
39
|
+
* @param jsxContent - JSX-compatible SVG content
|
|
40
|
+
* @returns ComponentTemplate with component code and type definitions
|
|
41
|
+
*
|
|
42
|
+
* Requirements: 4.1, 4.2, 4.6
|
|
43
|
+
*/
|
|
44
|
+
export declare function generateComponent(icon: IconMetadata, jsxContent: string, rawSvgContent?: string): ComponentTemplate;
|
|
45
|
+
/**
|
|
46
|
+
* Generates multiple component templates from a list of icons
|
|
47
|
+
*
|
|
48
|
+
* @param icons - Array of icon metadata with JSX content
|
|
49
|
+
* @returns Array of ComponentTemplate objects
|
|
50
|
+
*
|
|
51
|
+
* Requirements: 4.1, 4.2, 4.6
|
|
52
|
+
*/
|
|
53
|
+
export declare function generateComponents(icons: Array<{
|
|
54
|
+
metadata: IconMetadata;
|
|
55
|
+
jsxContent: string;
|
|
56
|
+
}>): ComponentTemplate[];
|
|
57
|
+
/**
|
|
58
|
+
* Result of generating an index file
|
|
59
|
+
*/
|
|
60
|
+
export interface IndexFileResult {
|
|
61
|
+
/** The generated index.ts content */
|
|
62
|
+
content: string;
|
|
63
|
+
/** List of all exported component names */
|
|
64
|
+
componentNames: string[];
|
|
65
|
+
/** The allIcons object export */
|
|
66
|
+
allIconsExport: string;
|
|
67
|
+
/** The IconName type definition */
|
|
68
|
+
iconNameType: string;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Generates the index.ts file content that exports all icon components
|
|
72
|
+
*
|
|
73
|
+
* @param components - Array of ComponentTemplate objects
|
|
74
|
+
* @returns IndexFileResult with the generated content
|
|
75
|
+
*
|
|
76
|
+
* Requirements: 4.5
|
|
77
|
+
*/
|
|
78
|
+
export declare function generateIndexFile(components: ComponentTemplate[]): IndexFileResult;
|
|
79
|
+
/**
|
|
80
|
+
* Generates a minimal index file for a subset of icons
|
|
81
|
+
*
|
|
82
|
+
* @param componentNames - Array of component names to export
|
|
83
|
+
* @returns The generated index.ts content
|
|
84
|
+
*
|
|
85
|
+
* Requirements: 4.5
|
|
86
|
+
*/
|
|
87
|
+
export declare function generateMinimalIndexFile(componentNames: string[]): string;
|
|
88
|
+
//# sourceMappingURL=component-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-generator.d.ts","sourceRoot":"","sources":["../../src/component-generator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAG9D;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAwBhD;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,MAAe,GACtB,MAAM,CAMR;AAuHD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,YAAY,EAClB,UAAU,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,MAAM,GACrB,iBAAiB,CA2KnB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,KAAK,CAAC;IAAE,QAAQ,EAAE,YAAY,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,GAC3D,iBAAiB,EAAE,CAIrB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAA;IACf,2CAA2C;IAC3C,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,iCAAiC;IACjC,cAAc,EAAE,MAAM,CAAA;IACtB,mCAAmC;IACnC,YAAY,EAAE,MAAM,CAAA;CACrB;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,iBAAiB,EAAE,GAC9B,eAAe,CA4DjB;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,MAAM,CAwBzE"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Figma API Client
|
|
3
|
+
*
|
|
4
|
+
* Provides methods to interact with the Figma API for fetching files and exporting images.
|
|
5
|
+
* Implements error handling and retry logic for robust API interactions.
|
|
6
|
+
*
|
|
7
|
+
* Requirements: 2.1, 2.5
|
|
8
|
+
*/
|
|
9
|
+
import type { FigmaFileResponse, ErrorResponse } from './types';
|
|
10
|
+
/**
|
|
11
|
+
* Figma API error codes
|
|
12
|
+
*/
|
|
13
|
+
export declare enum FigmaErrorCode {
|
|
14
|
+
INVALID_TOKEN = "FIGMA_INVALID_TOKEN",
|
|
15
|
+
RATE_LIMIT = "FIGMA_RATE_LIMIT",
|
|
16
|
+
FILE_NOT_FOUND = "FIGMA_FILE_NOT_FOUND",
|
|
17
|
+
NETWORK_ERROR = "FIGMA_NETWORK_ERROR",
|
|
18
|
+
UNKNOWN_ERROR = "FIGMA_UNKNOWN_ERROR"
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Custom error class for Figma API errors
|
|
22
|
+
*/
|
|
23
|
+
export declare class FigmaApiError extends Error {
|
|
24
|
+
code: FigmaErrorCode;
|
|
25
|
+
recoverable: boolean;
|
|
26
|
+
suggestion?: string | undefined;
|
|
27
|
+
details?: unknown | undefined;
|
|
28
|
+
constructor(code: FigmaErrorCode, message: string, recoverable?: boolean, suggestion?: string | undefined, details?: unknown | undefined);
|
|
29
|
+
toErrorResponse(): ErrorResponse;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Retry configuration options
|
|
33
|
+
*/
|
|
34
|
+
export interface RetryConfig {
|
|
35
|
+
maxRetries: number;
|
|
36
|
+
baseDelayMs: number;
|
|
37
|
+
maxDelayMs: number;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Image export options for Figma API
|
|
41
|
+
*/
|
|
42
|
+
export interface ImageExportOptions {
|
|
43
|
+
format: 'svg' | 'png' | 'jpg' | 'pdf';
|
|
44
|
+
scale?: number;
|
|
45
|
+
svgIncludeId?: boolean;
|
|
46
|
+
svgSimplifyStroke?: boolean;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Response from Figma images API
|
|
50
|
+
*/
|
|
51
|
+
export interface FigmaImagesResponse {
|
|
52
|
+
err: string | null;
|
|
53
|
+
images: Record<string, string>;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Figma API Client class
|
|
57
|
+
*/
|
|
58
|
+
export declare class FigmaClient {
|
|
59
|
+
private token;
|
|
60
|
+
private retryConfig;
|
|
61
|
+
constructor(token: string, retryConfig?: Partial<RetryConfig>);
|
|
62
|
+
/**
|
|
63
|
+
* Makes an authenticated request to the Figma API with retry logic
|
|
64
|
+
* Properly handles Retry-After header for rate limiting
|
|
65
|
+
*/
|
|
66
|
+
private fetchWithRetry;
|
|
67
|
+
/**
|
|
68
|
+
* Handles HTTP error responses and converts them to FigmaApiError
|
|
69
|
+
*/
|
|
70
|
+
private handleHttpError;
|
|
71
|
+
/**
|
|
72
|
+
* Sleep utility for retry delays
|
|
73
|
+
*/
|
|
74
|
+
private sleep;
|
|
75
|
+
/**
|
|
76
|
+
* Gets a Figma file by its key
|
|
77
|
+
*
|
|
78
|
+
* @param fileKey - The Figma file key
|
|
79
|
+
* @returns The file data including document structure and components
|
|
80
|
+
*/
|
|
81
|
+
getFile(fileKey: string): Promise<FigmaFileResponse>;
|
|
82
|
+
/**
|
|
83
|
+
* Exports images for specified node IDs
|
|
84
|
+
*
|
|
85
|
+
* @param fileKey - The Figma file key
|
|
86
|
+
* @param nodeIds - Array of node IDs to export
|
|
87
|
+
* @param options - Export options (format, scale, etc.)
|
|
88
|
+
* @returns Map of node IDs to image URLs
|
|
89
|
+
*/
|
|
90
|
+
getImages(fileKey: string, nodeIds: string[], options?: ImageExportOptions): Promise<Record<string, string>>;
|
|
91
|
+
/**
|
|
92
|
+
* Downloads SVG content from a URL
|
|
93
|
+
*
|
|
94
|
+
* @param url - The URL to download from
|
|
95
|
+
* @returns The SVG content as a string
|
|
96
|
+
*/
|
|
97
|
+
downloadSvg(url: string): Promise<string>;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Creates a new Figma client instance
|
|
101
|
+
*
|
|
102
|
+
* @param token - Figma Personal Access Token
|
|
103
|
+
* @param retryConfig - Optional retry configuration
|
|
104
|
+
* @returns A new FigmaClient instance
|
|
105
|
+
*/
|
|
106
|
+
export declare function createFigmaClient(token: string, retryConfig?: Partial<RetryConfig>): FigmaClient;
|
|
107
|
+
//# sourceMappingURL=figma-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"figma-client.d.ts","sourceRoot":"","sources":["../../src/figma-client.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,iBAAiB,EAGjB,aAAa,EACd,MAAM,SAAS,CAAA;AAoBhB;;GAEG;AACH,oBAAY,cAAc;IACxB,aAAa,wBAAwB;IACrC,UAAU,qBAAqB;IAC/B,cAAc,yBAAyB;IACvC,aAAa,wBAAwB;IACrC,aAAa,wBAAwB;CACtC;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK;IAE7B,IAAI,EAAE,cAAc;IAEpB,WAAW,EAAE,OAAO;IACpB,UAAU,CAAC,EAAE,MAAM;IACnB,OAAO,CAAC,EAAE,OAAO;gBAJjB,IAAI,EAAE,cAAc,EAC3B,OAAO,EAAE,MAAM,EACR,WAAW,GAAE,OAAe,EAC5B,UAAU,CAAC,EAAE,MAAM,YAAA,EACnB,OAAO,CAAC,EAAE,OAAO,YAAA;IAM1B,eAAe,IAAI,aAAa;CASjC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAA;IACrC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC/B;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,WAAW,CAAa;gBAEpB,KAAK,EAAE,MAAM,EAAE,WAAW,GAAE,OAAO,CAAC,WAAW,CAAM;IAajE;;;OAGG;YACW,cAAc;IAkF5B;;OAEG;IACH,OAAO,CAAC,eAAe;IAyCvB;;OAEG;IACH,OAAO,CAAC,KAAK;IAIb;;;;;OAKG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAc1D;;;;;;;OAOG;IACG,SAAS,CACb,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,GAAE,kBAAsC,GAC9C,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IA+ClC;;;;;OAKG;IACG,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAuDhD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GACjC,WAAW,CAEb"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Icon Component Filtering Module
|
|
3
|
+
*
|
|
4
|
+
* Provides functions to filter and identify icon components from Figma file data.
|
|
5
|
+
* Filters components based on type and naming conventions.
|
|
6
|
+
*
|
|
7
|
+
* Requirements: 2.2
|
|
8
|
+
*/
|
|
9
|
+
import type { FigmaComponent, FigmaNode, FigmaFileResponse } from './types';
|
|
10
|
+
/**
|
|
11
|
+
* Default icon naming pattern - matches lowercase names with hyphens
|
|
12
|
+
* Examples: "arrow-right", "check-circle", "user-profile"
|
|
13
|
+
*/
|
|
14
|
+
export declare const DEFAULT_ICON_NAME_PATTERN: RegExp;
|
|
15
|
+
/**
|
|
16
|
+
* Icon filter configuration
|
|
17
|
+
*/
|
|
18
|
+
export interface IconFilterConfig {
|
|
19
|
+
/** Pattern to match icon names */
|
|
20
|
+
namePattern: RegExp;
|
|
21
|
+
/** Prefix that icon names should start with (optional) */
|
|
22
|
+
namePrefix?: string;
|
|
23
|
+
/** Suffix that icon names should end with (optional) */
|
|
24
|
+
nameSuffix?: string;
|
|
25
|
+
/** Minimum icon size in pixels */
|
|
26
|
+
minSize?: number;
|
|
27
|
+
/** Maximum icon size in pixels */
|
|
28
|
+
maxSize?: number;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Default filter configuration
|
|
32
|
+
*/
|
|
33
|
+
export declare const DEFAULT_FILTER_CONFIG: IconFilterConfig;
|
|
34
|
+
/**
|
|
35
|
+
* Filtered icon component with additional metadata
|
|
36
|
+
*/
|
|
37
|
+
export interface FilteredIconComponent {
|
|
38
|
+
/** Component ID */
|
|
39
|
+
id: string;
|
|
40
|
+
/** Component name */
|
|
41
|
+
name: string;
|
|
42
|
+
/** Component width */
|
|
43
|
+
width: number;
|
|
44
|
+
/** Component height */
|
|
45
|
+
height: number;
|
|
46
|
+
/** Original Figma component data */
|
|
47
|
+
original: FigmaComponent;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Result of filtering operation
|
|
51
|
+
*/
|
|
52
|
+
export interface FilterResult {
|
|
53
|
+
/** Successfully filtered icon components */
|
|
54
|
+
icons: FilteredIconComponent[];
|
|
55
|
+
/** Components that were skipped (not matching criteria) */
|
|
56
|
+
skipped: Array<{
|
|
57
|
+
id: string;
|
|
58
|
+
name: string;
|
|
59
|
+
reason: string;
|
|
60
|
+
}>;
|
|
61
|
+
/** Total components processed */
|
|
62
|
+
totalProcessed: number;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Checks if a component matches the icon naming convention
|
|
66
|
+
*
|
|
67
|
+
* @param name - Component name to check
|
|
68
|
+
* @param config - Filter configuration
|
|
69
|
+
* @returns True if the name matches the icon naming convention
|
|
70
|
+
*/
|
|
71
|
+
export declare function matchesIconNamingConvention(name: string, config?: IconFilterConfig): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Checks if a component has valid icon dimensions
|
|
74
|
+
*
|
|
75
|
+
* @param width - Component width
|
|
76
|
+
* @param height - Component height
|
|
77
|
+
* @param config - Filter configuration
|
|
78
|
+
* @returns True if dimensions are within valid range
|
|
79
|
+
*/
|
|
80
|
+
export declare function hasValidIconDimensions(width: number, height: number, config?: IconFilterConfig): boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Checks if a Figma node is a COMPONENT or FRAME type (SVGs are imported as frames)
|
|
83
|
+
*
|
|
84
|
+
* @param node - Figma node or component to check
|
|
85
|
+
* @returns True if the node is a COMPONENT or FRAME type
|
|
86
|
+
*/
|
|
87
|
+
export declare function isComponentType(node: FigmaNode | FigmaComponent | {
|
|
88
|
+
type?: string;
|
|
89
|
+
}): boolean;
|
|
90
|
+
/**
|
|
91
|
+
* Filters a single component to determine if it's a valid icon
|
|
92
|
+
*
|
|
93
|
+
* @param component - Figma component to check
|
|
94
|
+
* @param config - Filter configuration
|
|
95
|
+
* @returns Object with isIcon flag and reason if not an icon
|
|
96
|
+
*/
|
|
97
|
+
export declare function filterIconComponent(component: FigmaComponent, config?: IconFilterConfig): {
|
|
98
|
+
isIcon: boolean;
|
|
99
|
+
reason?: string;
|
|
100
|
+
};
|
|
101
|
+
/**
|
|
102
|
+
* Filters icon components from a Figma file response
|
|
103
|
+
* Searches both the components map and the document tree for FRAME nodes (imported SVGs)
|
|
104
|
+
*
|
|
105
|
+
* @param fileResponse - Figma file API response
|
|
106
|
+
* @param config - Filter configuration
|
|
107
|
+
* @returns Filter result with icons and skipped components
|
|
108
|
+
*/
|
|
109
|
+
export declare function filterIconComponents(fileResponse: FigmaFileResponse, config?: IconFilterConfig): FilterResult;
|
|
110
|
+
/**
|
|
111
|
+
* Extracts component IDs from filtered icons
|
|
112
|
+
*
|
|
113
|
+
* @param icons - Array of filtered icon components
|
|
114
|
+
* @returns Array of component IDs
|
|
115
|
+
*/
|
|
116
|
+
export declare function extractComponentIds(icons: FilteredIconComponent[]): string[];
|
|
117
|
+
/**
|
|
118
|
+
* Filters components from a mixed list of Figma nodes
|
|
119
|
+
* Recursively searches through the node tree to find COMPONENT nodes
|
|
120
|
+
*
|
|
121
|
+
* @param nodes - Array of Figma nodes
|
|
122
|
+
* @param config - Filter configuration
|
|
123
|
+
* @returns Array of filtered icon components
|
|
124
|
+
*/
|
|
125
|
+
export declare function filterIconsFromNodes(nodes: FigmaNode[], config?: IconFilterConfig): FilteredIconComponent[];
|
|
126
|
+
//# sourceMappingURL=icon-filter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon-filter.d.ts","sourceRoot":"","sources":["../../src/icon-filter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAE3E;;;GAGG;AACH,eAAO,MAAM,yBAAyB,QAAsB,CAAA;AAE5D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,gBAInC,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,mBAAmB;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,oCAAoC;IACpC,QAAQ,EAAE,cAAc,CAAA;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,4CAA4C;IAC5C,KAAK,EAAE,qBAAqB,EAAE,CAAA;IAC9B,2DAA2D;IAC3D,OAAO,EAAE,KAAK,CAAC;QACb,EAAE,EAAE,MAAM,CAAA;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,CAAA;KACf,CAAC,CAAA;IACF,iCAAiC;IACjC,cAAc,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,gBAAwC,GAC/C,OAAO,CAqBT;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,gBAAwC,GAC/C,OAAO,CAsBT;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,SAAS,GAAG,cAAc,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD,OAAO,CAET;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,cAAc,EACzB,MAAM,GAAE,gBAAwC,GAC/C;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CA2BtC;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,iBAAiB,EAC/B,MAAM,GAAE,gBAAwC,GAC/C,YAAY,CA+Cd;AAmED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,qBAAqB,EAAE,GAAG,MAAM,EAAE,CAE5E;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,EAAE,EAClB,MAAM,GAAE,gBAAwC,GAC/C,qBAAqB,EAAE,CAyCzB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Icon search/filter functionality
|
|
3
|
+
*/
|
|
4
|
+
export interface IconInfo {
|
|
5
|
+
name: string;
|
|
6
|
+
originalName: string;
|
|
7
|
+
svgPath?: string;
|
|
8
|
+
componentPath?: string;
|
|
9
|
+
size?: {
|
|
10
|
+
width: number;
|
|
11
|
+
height: number;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Filter icons by search query
|
|
16
|
+
* Returns only icons whose names contain the search query (case-insensitive)
|
|
17
|
+
*
|
|
18
|
+
* @param icons - Array of icon objects
|
|
19
|
+
* @param query - Search query string
|
|
20
|
+
* @returns Filtered icons matching the query
|
|
21
|
+
*/
|
|
22
|
+
export declare function filterIcons(icons: IconInfo[], query: string): IconInfo[];
|
|
23
|
+
/**
|
|
24
|
+
* Check if an icon matches a search query
|
|
25
|
+
*
|
|
26
|
+
* @param icon - Icon object to check
|
|
27
|
+
* @param query - Search query string
|
|
28
|
+
* @returns True if icon matches the query
|
|
29
|
+
*/
|
|
30
|
+
export declare function iconMatchesQuery(icon: IconInfo, query: string): boolean;
|
|
31
|
+
//# sourceMappingURL=icon-search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon-search.d.ts","sourceRoot":"","sources":["../../src/icon-search.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,IAAI,CAAC,EAAE;QACL,KAAK,EAAE,MAAM,CAAA;QACb,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;CACF;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,EAAE,CAcxE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAYvE"}
|