@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.
Files changed (455) hide show
  1. package/README.md +155 -0
  2. package/dist/cjs/changelog-generator.js +300 -0
  3. package/dist/cjs/changelog-generator.js.map +1 -0
  4. package/dist/cjs/component-generator.js +434 -0
  5. package/dist/cjs/component-generator.js.map +1 -0
  6. package/dist/cjs/figma-client.js +260 -0
  7. package/dist/cjs/figma-client.js.map +1 -0
  8. package/dist/cjs/icon-filter.js +278 -0
  9. package/dist/cjs/icon-filter.js.map +1 -0
  10. package/dist/cjs/icon-search.js +43 -0
  11. package/dist/cjs/icon-search.js.map +1 -0
  12. package/dist/cjs/icon-validator.js +369 -0
  13. package/dist/cjs/icon-validator.js.map +1 -0
  14. package/dist/cjs/icons/IconArrowRight.js +17 -0
  15. package/dist/cjs/icons/IconArrowRight.js.map +1 -0
  16. package/dist/cjs/icons/IconBack.js +17 -0
  17. package/dist/cjs/icons/IconBack.js.map +1 -0
  18. package/dist/cjs/icons/IconBack1.js +17 -0
  19. package/dist/cjs/icons/IconBack1.js.map +1 -0
  20. package/dist/cjs/icons/IconBangZhuShuoMing.js +17 -0
  21. package/dist/cjs/icons/IconBangZhuShuoMing.js.map +1 -0
  22. package/dist/cjs/icons/IconBaoGaoZhuShou.js +20 -0
  23. package/dist/cjs/icons/IconBaoGaoZhuShou.js.map +1 -0
  24. package/dist/cjs/icons/IconCheck.js +17 -0
  25. package/dist/cjs/icons/IconCheck.js.map +1 -0
  26. package/dist/cjs/icons/IconCheck1.js +17 -0
  27. package/dist/cjs/icons/IconCheck1.js.map +1 -0
  28. package/dist/cjs/icons/IconChengYuanGuanLi.js +20 -0
  29. package/dist/cjs/icons/IconChengYuanGuanLi.js.map +1 -0
  30. package/dist/cjs/icons/IconChongXinFaSong.js +17 -0
  31. package/dist/cjs/icons/IconChongXinFaSong.js.map +1 -0
  32. package/dist/cjs/icons/IconCloseCircle.js +17 -0
  33. package/dist/cjs/icons/IconCloseCircle.js.map +1 -0
  34. package/dist/cjs/icons/IconCuoWu.js +17 -0
  35. package/dist/cjs/icons/IconCuoWu.js.map +1 -0
  36. package/dist/cjs/icons/IconDingDing.js +17 -0
  37. package/dist/cjs/icons/IconDingDing.js.map +1 -0
  38. package/dist/cjs/icons/IconEdit03.js +17 -0
  39. package/dist/cjs/icons/IconEdit03.js.map +1 -0
  40. package/dist/cjs/icons/IconFanHui.js +17 -0
  41. package/dist/cjs/icons/IconFanHui.js.map +1 -0
  42. package/dist/cjs/icons/IconFangDa.js +17 -0
  43. package/dist/cjs/icons/IconFangDa.js.map +1 -0
  44. package/dist/cjs/icons/IconFrame.js +17 -0
  45. package/dist/cjs/icons/IconFrame.js.map +1 -0
  46. package/dist/cjs/icons/IconFrame1261156242.js +17 -0
  47. package/dist/cjs/icons/IconFrame1261156242.js.map +1 -0
  48. package/dist/cjs/icons/IconGuanBi.js +17 -0
  49. package/dist/cjs/icons/IconGuanBi.js.map +1 -0
  50. package/dist/cjs/icons/IconGuanBi1.js +17 -0
  51. package/dist/cjs/icons/IconGuanBi1.js.map +1 -0
  52. package/dist/cjs/icons/IconGuanBiXiao.js +17 -0
  53. package/dist/cjs/icons/IconGuanBiXiao.js.map +1 -0
  54. package/dist/cjs/icons/IconGuanBiXiao1.js +17 -0
  55. package/dist/cjs/icons/IconGuanBiXiao1.js.map +1 -0
  56. package/dist/cjs/icons/IconLianJie.js +17 -0
  57. package/dist/cjs/icons/IconLianJie.js.map +1 -0
  58. package/dist/cjs/icons/IconLianJie1.js +17 -0
  59. package/dist/cjs/icons/IconLianJie1.js.map +1 -0
  60. package/dist/cjs/icons/IconQiWeiJiQiRen.js +17 -0
  61. package/dist/cjs/icons/IconQiWeiJiQiRen.js.map +1 -0
  62. package/dist/cjs/icons/IconQiYeBan.js +20 -0
  63. package/dist/cjs/icons/IconQiYeBan.js.map +1 -0
  64. package/dist/cjs/icons/IconRss.js +17 -0
  65. package/dist/cjs/icons/IconRss.js.map +1 -0
  66. package/dist/cjs/icons/IconSearch.js +17 -0
  67. package/dist/cjs/icons/IconSearch.js.map +1 -0
  68. package/dist/cjs/icons/IconSearch1.js +17 -0
  69. package/dist/cjs/icons/IconSearch1.js.map +1 -0
  70. package/dist/cjs/icons/IconSheZhi.js +17 -0
  71. package/dist/cjs/icons/IconSheZhi.js.map +1 -0
  72. package/dist/cjs/icons/IconShengCheng.js +17 -0
  73. package/dist/cjs/icons/IconShengCheng.js.map +1 -0
  74. package/dist/cjs/icons/IconShiBai.js +17 -0
  75. package/dist/cjs/icons/IconShiBai.js.map +1 -0
  76. package/dist/cjs/icons/IconShouQi.js +17 -0
  77. package/dist/cjs/icons/IconShouQi.js.map +1 -0
  78. package/dist/cjs/icons/IconSouSuoZhuShou.js +20 -0
  79. package/dist/cjs/icons/IconSouSuoZhuShou.js.map +1 -0
  80. package/dist/cjs/icons/IconSuoXiao.js +17 -0
  81. package/dist/cjs/icons/IconSuoXiao.js.map +1 -0
  82. package/dist/cjs/icons/IconTianJia.js +17 -0
  83. package/dist/cjs/icons/IconTianJia.js.map +1 -0
  84. package/dist/cjs/icons/IconTongZhi.js +17 -0
  85. package/dist/cjs/icons/IconTongZhi.js.map +1 -0
  86. package/dist/cjs/icons/IconTongZhi1.js +17 -0
  87. package/dist/cjs/icons/IconTongZhi1.js.map +1 -0
  88. package/dist/cjs/icons/IconTuiChu.js +17 -0
  89. package/dist/cjs/icons/IconTuiChu.js.map +1 -0
  90. package/dist/cjs/icons/IconWangLuoJianSuo.js +17 -0
  91. package/dist/cjs/icons/IconWangLuoJianSuo.js.map +1 -0
  92. package/dist/cjs/icons/IconWangYeXiaZai.js +17 -0
  93. package/dist/cjs/icons/IconWangYeXiaZai.js.map +1 -0
  94. package/dist/cjs/icons/IconWeiBiaoTi1HuaBan11.js +17 -0
  95. package/dist/cjs/icons/IconWeiBiaoTi1HuaBan11.js.map +1 -0
  96. package/dist/cjs/icons/IconWenDaZhuShou.js +20 -0
  97. package/dist/cjs/icons/IconWenDaZhuShou.js.map +1 -0
  98. package/dist/cjs/icons/IconWenDang.js +17 -0
  99. package/dist/cjs/icons/IconWenDang.js.map +1 -0
  100. package/dist/cjs/icons/IconWenDang1.js +17 -0
  101. package/dist/cjs/icons/IconWenDang1.js.map +1 -0
  102. package/dist/cjs/icons/IconWenJian.js +17 -0
  103. package/dist/cjs/icons/IconWenJian.js.map +1 -0
  104. package/dist/cjs/icons/IconXiTongPeiZhi.js +20 -0
  105. package/dist/cjs/icons/IconXiTongPeiZhi.js.map +1 -0
  106. package/dist/cjs/icons/IconXiaZai.js +17 -0
  107. package/dist/cjs/icons/IconXiaZai.js.map +1 -0
  108. package/dist/cjs/icons/IconXiaZaiZhuShou.js +20 -0
  109. package/dist/cjs/icons/IconXiaZaiZhuShou.js.map +1 -0
  110. package/dist/cjs/icons/IconXiaoXi.js +17 -0
  111. package/dist/cjs/icons/IconXiaoXi.js.map +1 -0
  112. package/dist/cjs/icons/IconXinXiGuanLi.js +20 -0
  113. package/dist/cjs/icons/IconXinXiGuanLi.js.map +1 -0
  114. package/dist/cjs/icons/IconXinZeng.js +17 -0
  115. package/dist/cjs/icons/IconXinZeng.js.map +1 -0
  116. package/dist/cjs/icons/IconYanZhengMa.js +17 -0
  117. package/dist/cjs/icons/IconYanZhengMa.js.map +1 -0
  118. package/dist/cjs/icons/IconYunYingGuanLi.js +20 -0
  119. package/dist/cjs/icons/IconYunYingGuanLi.js.map +1 -0
  120. package/dist/cjs/icons/IconZengJia.js +17 -0
  121. package/dist/cjs/icons/IconZengJia.js.map +1 -0
  122. package/dist/cjs/icons/IconZhanKai.js +17 -0
  123. package/dist/cjs/icons/IconZhanKai.js.map +1 -0
  124. package/dist/cjs/icons/IconZhanKai1.js +17 -0
  125. package/dist/cjs/icons/IconZhanKai1.js.map +1 -0
  126. package/dist/cjs/icons/IconZhengQue.js +17 -0
  127. package/dist/cjs/icons/IconZhengQue.js.map +1 -0
  128. package/dist/cjs/icons/IconZhiShiKu.js +17 -0
  129. package/dist/cjs/icons/IconZhiShiKu.js.map +1 -0
  130. package/dist/cjs/icons/IconZhiShiKu1.js +17 -0
  131. package/dist/cjs/icons/IconZhiShiKu1.js.map +1 -0
  132. package/dist/cjs/index.js +95 -0
  133. package/dist/cjs/index.js.map +1 -0
  134. package/dist/cjs/manifest-generator.js +281 -0
  135. package/dist/cjs/manifest-generator.js.map +1 -0
  136. package/dist/cjs/multi-format-output.js +233 -0
  137. package/dist/cjs/multi-format-output.js.map +1 -0
  138. package/dist/cjs/svg-exporter.js +283 -0
  139. package/dist/cjs/svg-exporter.js.map +1 -0
  140. package/dist/cjs/svg-transformer.js +327 -0
  141. package/dist/cjs/svg-transformer.js.map +1 -0
  142. package/dist/cjs/types.js +3 -0
  143. package/dist/cjs/types.js.map +1 -0
  144. package/dist/cjs/version-manager.js +175 -0
  145. package/dist/cjs/version-manager.js.map +1 -0
  146. package/dist/esm/changelog-generator.js +288 -0
  147. package/dist/esm/changelog-generator.js.map +1 -0
  148. package/dist/esm/component-generator.js +426 -0
  149. package/dist/esm/component-generator.js.map +1 -0
  150. package/dist/esm/figma-client.js +254 -0
  151. package/dist/esm/figma-client.js.map +1 -0
  152. package/dist/esm/icon-filter.js +268 -0
  153. package/dist/esm/icon-filter.js.map +1 -0
  154. package/dist/esm/icon-search.js +39 -0
  155. package/dist/esm/icon-search.js.map +1 -0
  156. package/dist/esm/icon-validator.js +358 -0
  157. package/dist/esm/icon-validator.js.map +1 -0
  158. package/dist/esm/icons/IconArrowRight.js +14 -0
  159. package/dist/esm/icons/IconArrowRight.js.map +1 -0
  160. package/dist/esm/icons/IconBack.js +14 -0
  161. package/dist/esm/icons/IconBack.js.map +1 -0
  162. package/dist/esm/icons/IconBack1.js +14 -0
  163. package/dist/esm/icons/IconBack1.js.map +1 -0
  164. package/dist/esm/icons/IconBangZhuShuoMing.js +14 -0
  165. package/dist/esm/icons/IconBangZhuShuoMing.js.map +1 -0
  166. package/dist/esm/icons/IconBaoGaoZhuShou.js +17 -0
  167. package/dist/esm/icons/IconBaoGaoZhuShou.js.map +1 -0
  168. package/dist/esm/icons/IconCheck.js +14 -0
  169. package/dist/esm/icons/IconCheck.js.map +1 -0
  170. package/dist/esm/icons/IconCheck1.js +14 -0
  171. package/dist/esm/icons/IconCheck1.js.map +1 -0
  172. package/dist/esm/icons/IconChengYuanGuanLi.js +17 -0
  173. package/dist/esm/icons/IconChengYuanGuanLi.js.map +1 -0
  174. package/dist/esm/icons/IconChongXinFaSong.js +14 -0
  175. package/dist/esm/icons/IconChongXinFaSong.js.map +1 -0
  176. package/dist/esm/icons/IconCloseCircle.js +14 -0
  177. package/dist/esm/icons/IconCloseCircle.js.map +1 -0
  178. package/dist/esm/icons/IconCuoWu.js +14 -0
  179. package/dist/esm/icons/IconCuoWu.js.map +1 -0
  180. package/dist/esm/icons/IconDingDing.js +14 -0
  181. package/dist/esm/icons/IconDingDing.js.map +1 -0
  182. package/dist/esm/icons/IconEdit03.js +14 -0
  183. package/dist/esm/icons/IconEdit03.js.map +1 -0
  184. package/dist/esm/icons/IconFanHui.js +14 -0
  185. package/dist/esm/icons/IconFanHui.js.map +1 -0
  186. package/dist/esm/icons/IconFangDa.js +14 -0
  187. package/dist/esm/icons/IconFangDa.js.map +1 -0
  188. package/dist/esm/icons/IconFrame.js +14 -0
  189. package/dist/esm/icons/IconFrame.js.map +1 -0
  190. package/dist/esm/icons/IconFrame1261156242.js +14 -0
  191. package/dist/esm/icons/IconFrame1261156242.js.map +1 -0
  192. package/dist/esm/icons/IconGuanBi.js +14 -0
  193. package/dist/esm/icons/IconGuanBi.js.map +1 -0
  194. package/dist/esm/icons/IconGuanBi1.js +14 -0
  195. package/dist/esm/icons/IconGuanBi1.js.map +1 -0
  196. package/dist/esm/icons/IconGuanBiXiao.js +14 -0
  197. package/dist/esm/icons/IconGuanBiXiao.js.map +1 -0
  198. package/dist/esm/icons/IconGuanBiXiao1.js +14 -0
  199. package/dist/esm/icons/IconGuanBiXiao1.js.map +1 -0
  200. package/dist/esm/icons/IconLianJie.js +14 -0
  201. package/dist/esm/icons/IconLianJie.js.map +1 -0
  202. package/dist/esm/icons/IconLianJie1.js +14 -0
  203. package/dist/esm/icons/IconLianJie1.js.map +1 -0
  204. package/dist/esm/icons/IconQiWeiJiQiRen.js +14 -0
  205. package/dist/esm/icons/IconQiWeiJiQiRen.js.map +1 -0
  206. package/dist/esm/icons/IconQiYeBan.js +17 -0
  207. package/dist/esm/icons/IconQiYeBan.js.map +1 -0
  208. package/dist/esm/icons/IconRss.js +14 -0
  209. package/dist/esm/icons/IconRss.js.map +1 -0
  210. package/dist/esm/icons/IconSearch.js +14 -0
  211. package/dist/esm/icons/IconSearch.js.map +1 -0
  212. package/dist/esm/icons/IconSearch1.js +14 -0
  213. package/dist/esm/icons/IconSearch1.js.map +1 -0
  214. package/dist/esm/icons/IconSheZhi.js +14 -0
  215. package/dist/esm/icons/IconSheZhi.js.map +1 -0
  216. package/dist/esm/icons/IconShengCheng.js +14 -0
  217. package/dist/esm/icons/IconShengCheng.js.map +1 -0
  218. package/dist/esm/icons/IconShiBai.js +14 -0
  219. package/dist/esm/icons/IconShiBai.js.map +1 -0
  220. package/dist/esm/icons/IconShouQi.js +14 -0
  221. package/dist/esm/icons/IconShouQi.js.map +1 -0
  222. package/dist/esm/icons/IconSouSuoZhuShou.js +17 -0
  223. package/dist/esm/icons/IconSouSuoZhuShou.js.map +1 -0
  224. package/dist/esm/icons/IconSuoXiao.js +14 -0
  225. package/dist/esm/icons/IconSuoXiao.js.map +1 -0
  226. package/dist/esm/icons/IconTianJia.js +14 -0
  227. package/dist/esm/icons/IconTianJia.js.map +1 -0
  228. package/dist/esm/icons/IconTongZhi.js +14 -0
  229. package/dist/esm/icons/IconTongZhi.js.map +1 -0
  230. package/dist/esm/icons/IconTongZhi1.js +14 -0
  231. package/dist/esm/icons/IconTongZhi1.js.map +1 -0
  232. package/dist/esm/icons/IconTuiChu.js +14 -0
  233. package/dist/esm/icons/IconTuiChu.js.map +1 -0
  234. package/dist/esm/icons/IconWangLuoJianSuo.js +14 -0
  235. package/dist/esm/icons/IconWangLuoJianSuo.js.map +1 -0
  236. package/dist/esm/icons/IconWangYeXiaZai.js +14 -0
  237. package/dist/esm/icons/IconWangYeXiaZai.js.map +1 -0
  238. package/dist/esm/icons/IconWeiBiaoTi1HuaBan11.js +14 -0
  239. package/dist/esm/icons/IconWeiBiaoTi1HuaBan11.js.map +1 -0
  240. package/dist/esm/icons/IconWenDaZhuShou.js +17 -0
  241. package/dist/esm/icons/IconWenDaZhuShou.js.map +1 -0
  242. package/dist/esm/icons/IconWenDang.js +14 -0
  243. package/dist/esm/icons/IconWenDang.js.map +1 -0
  244. package/dist/esm/icons/IconWenDang1.js +14 -0
  245. package/dist/esm/icons/IconWenDang1.js.map +1 -0
  246. package/dist/esm/icons/IconWenJian.js +14 -0
  247. package/dist/esm/icons/IconWenJian.js.map +1 -0
  248. package/dist/esm/icons/IconXiTongPeiZhi.js +17 -0
  249. package/dist/esm/icons/IconXiTongPeiZhi.js.map +1 -0
  250. package/dist/esm/icons/IconXiaZai.js +14 -0
  251. package/dist/esm/icons/IconXiaZai.js.map +1 -0
  252. package/dist/esm/icons/IconXiaZaiZhuShou.js +17 -0
  253. package/dist/esm/icons/IconXiaZaiZhuShou.js.map +1 -0
  254. package/dist/esm/icons/IconXiaoXi.js +14 -0
  255. package/dist/esm/icons/IconXiaoXi.js.map +1 -0
  256. package/dist/esm/icons/IconXinXiGuanLi.js +17 -0
  257. package/dist/esm/icons/IconXinXiGuanLi.js.map +1 -0
  258. package/dist/esm/icons/IconXinZeng.js +14 -0
  259. package/dist/esm/icons/IconXinZeng.js.map +1 -0
  260. package/dist/esm/icons/IconYanZhengMa.js +14 -0
  261. package/dist/esm/icons/IconYanZhengMa.js.map +1 -0
  262. package/dist/esm/icons/IconYunYingGuanLi.js +17 -0
  263. package/dist/esm/icons/IconYunYingGuanLi.js.map +1 -0
  264. package/dist/esm/icons/IconZengJia.js +14 -0
  265. package/dist/esm/icons/IconZengJia.js.map +1 -0
  266. package/dist/esm/icons/IconZhanKai.js +14 -0
  267. package/dist/esm/icons/IconZhanKai.js.map +1 -0
  268. package/dist/esm/icons/IconZhanKai1.js +14 -0
  269. package/dist/esm/icons/IconZhanKai1.js.map +1 -0
  270. package/dist/esm/icons/IconZhengQue.js +14 -0
  271. package/dist/esm/icons/IconZhengQue.js.map +1 -0
  272. package/dist/esm/icons/IconZhiShiKu.js +14 -0
  273. package/dist/esm/icons/IconZhiShiKu.js.map +1 -0
  274. package/dist/esm/icons/IconZhiShiKu1.js +14 -0
  275. package/dist/esm/icons/IconZhiShiKu1.js.map +1 -0
  276. package/dist/esm/index.js +72 -0
  277. package/dist/esm/index.js.map +1 -0
  278. package/dist/esm/manifest-generator.js +267 -0
  279. package/dist/esm/manifest-generator.js.map +1 -0
  280. package/dist/esm/multi-format-output.js +221 -0
  281. package/dist/esm/multi-format-output.js.map +1 -0
  282. package/dist/esm/svg-exporter.js +244 -0
  283. package/dist/esm/svg-exporter.js.map +1 -0
  284. package/dist/esm/svg-transformer.js +314 -0
  285. package/dist/esm/svg-transformer.js.map +1 -0
  286. package/dist/esm/types.js +2 -0
  287. package/dist/esm/types.js.map +1 -0
  288. package/dist/esm/version-manager.js +167 -0
  289. package/dist/esm/version-manager.js.map +1 -0
  290. package/dist/types/changelog-generator.d.ts +112 -0
  291. package/dist/types/changelog-generator.d.ts.map +1 -0
  292. package/dist/types/component-generator.d.ts +88 -0
  293. package/dist/types/component-generator.d.ts.map +1 -0
  294. package/dist/types/figma-client.d.ts +107 -0
  295. package/dist/types/figma-client.d.ts.map +1 -0
  296. package/dist/types/icon-filter.d.ts +126 -0
  297. package/dist/types/icon-filter.d.ts.map +1 -0
  298. package/dist/types/icon-search.d.ts +31 -0
  299. package/dist/types/icon-search.d.ts.map +1 -0
  300. package/dist/types/icon-validator.d.ts +110 -0
  301. package/dist/types/icon-validator.d.ts.map +1 -0
  302. package/dist/types/icons/IconArrowRight.d.ts +17 -0
  303. package/dist/types/icons/IconArrowRight.d.ts.map +1 -0
  304. package/dist/types/icons/IconBack.d.ts +17 -0
  305. package/dist/types/icons/IconBack.d.ts.map +1 -0
  306. package/dist/types/icons/IconBack1.d.ts +17 -0
  307. package/dist/types/icons/IconBack1.d.ts.map +1 -0
  308. package/dist/types/icons/IconBangZhuShuoMing.d.ts +17 -0
  309. package/dist/types/icons/IconBangZhuShuoMing.d.ts.map +1 -0
  310. package/dist/types/icons/IconBaoGaoZhuShou.d.ts +17 -0
  311. package/dist/types/icons/IconBaoGaoZhuShou.d.ts.map +1 -0
  312. package/dist/types/icons/IconCheck.d.ts +17 -0
  313. package/dist/types/icons/IconCheck.d.ts.map +1 -0
  314. package/dist/types/icons/IconCheck1.d.ts +17 -0
  315. package/dist/types/icons/IconCheck1.d.ts.map +1 -0
  316. package/dist/types/icons/IconChengYuanGuanLi.d.ts +17 -0
  317. package/dist/types/icons/IconChengYuanGuanLi.d.ts.map +1 -0
  318. package/dist/types/icons/IconChongXinFaSong.d.ts +17 -0
  319. package/dist/types/icons/IconChongXinFaSong.d.ts.map +1 -0
  320. package/dist/types/icons/IconCloseCircle.d.ts +17 -0
  321. package/dist/types/icons/IconCloseCircle.d.ts.map +1 -0
  322. package/dist/types/icons/IconCuoWu.d.ts +17 -0
  323. package/dist/types/icons/IconCuoWu.d.ts.map +1 -0
  324. package/dist/types/icons/IconDingDing.d.ts +17 -0
  325. package/dist/types/icons/IconDingDing.d.ts.map +1 -0
  326. package/dist/types/icons/IconEdit03.d.ts +17 -0
  327. package/dist/types/icons/IconEdit03.d.ts.map +1 -0
  328. package/dist/types/icons/IconFanHui.d.ts +17 -0
  329. package/dist/types/icons/IconFanHui.d.ts.map +1 -0
  330. package/dist/types/icons/IconFangDa.d.ts +17 -0
  331. package/dist/types/icons/IconFangDa.d.ts.map +1 -0
  332. package/dist/types/icons/IconFrame.d.ts +17 -0
  333. package/dist/types/icons/IconFrame.d.ts.map +1 -0
  334. package/dist/types/icons/IconFrame1261156242.d.ts +17 -0
  335. package/dist/types/icons/IconFrame1261156242.d.ts.map +1 -0
  336. package/dist/types/icons/IconGuanBi.d.ts +17 -0
  337. package/dist/types/icons/IconGuanBi.d.ts.map +1 -0
  338. package/dist/types/icons/IconGuanBi1.d.ts +17 -0
  339. package/dist/types/icons/IconGuanBi1.d.ts.map +1 -0
  340. package/dist/types/icons/IconGuanBiXiao.d.ts +17 -0
  341. package/dist/types/icons/IconGuanBiXiao.d.ts.map +1 -0
  342. package/dist/types/icons/IconGuanBiXiao1.d.ts +17 -0
  343. package/dist/types/icons/IconGuanBiXiao1.d.ts.map +1 -0
  344. package/dist/types/icons/IconLianJie.d.ts +17 -0
  345. package/dist/types/icons/IconLianJie.d.ts.map +1 -0
  346. package/dist/types/icons/IconLianJie1.d.ts +17 -0
  347. package/dist/types/icons/IconLianJie1.d.ts.map +1 -0
  348. package/dist/types/icons/IconQiWeiJiQiRen.d.ts +17 -0
  349. package/dist/types/icons/IconQiWeiJiQiRen.d.ts.map +1 -0
  350. package/dist/types/icons/IconQiYeBan.d.ts +17 -0
  351. package/dist/types/icons/IconQiYeBan.d.ts.map +1 -0
  352. package/dist/types/icons/IconRss.d.ts +17 -0
  353. package/dist/types/icons/IconRss.d.ts.map +1 -0
  354. package/dist/types/icons/IconSearch.d.ts +17 -0
  355. package/dist/types/icons/IconSearch.d.ts.map +1 -0
  356. package/dist/types/icons/IconSearch1.d.ts +17 -0
  357. package/dist/types/icons/IconSearch1.d.ts.map +1 -0
  358. package/dist/types/icons/IconSheZhi.d.ts +17 -0
  359. package/dist/types/icons/IconSheZhi.d.ts.map +1 -0
  360. package/dist/types/icons/IconShengCheng.d.ts +17 -0
  361. package/dist/types/icons/IconShengCheng.d.ts.map +1 -0
  362. package/dist/types/icons/IconShiBai.d.ts +17 -0
  363. package/dist/types/icons/IconShiBai.d.ts.map +1 -0
  364. package/dist/types/icons/IconShouQi.d.ts +17 -0
  365. package/dist/types/icons/IconShouQi.d.ts.map +1 -0
  366. package/dist/types/icons/IconSouSuoZhuShou.d.ts +17 -0
  367. package/dist/types/icons/IconSouSuoZhuShou.d.ts.map +1 -0
  368. package/dist/types/icons/IconSuoXiao.d.ts +17 -0
  369. package/dist/types/icons/IconSuoXiao.d.ts.map +1 -0
  370. package/dist/types/icons/IconTianJia.d.ts +17 -0
  371. package/dist/types/icons/IconTianJia.d.ts.map +1 -0
  372. package/dist/types/icons/IconTongZhi.d.ts +17 -0
  373. package/dist/types/icons/IconTongZhi.d.ts.map +1 -0
  374. package/dist/types/icons/IconTongZhi1.d.ts +17 -0
  375. package/dist/types/icons/IconTongZhi1.d.ts.map +1 -0
  376. package/dist/types/icons/IconTuiChu.d.ts +17 -0
  377. package/dist/types/icons/IconTuiChu.d.ts.map +1 -0
  378. package/dist/types/icons/IconWangLuoJianSuo.d.ts +17 -0
  379. package/dist/types/icons/IconWangLuoJianSuo.d.ts.map +1 -0
  380. package/dist/types/icons/IconWangYeXiaZai.d.ts +17 -0
  381. package/dist/types/icons/IconWangYeXiaZai.d.ts.map +1 -0
  382. package/dist/types/icons/IconWeiBiaoTi1HuaBan11.d.ts +17 -0
  383. package/dist/types/icons/IconWeiBiaoTi1HuaBan11.d.ts.map +1 -0
  384. package/dist/types/icons/IconWenDaZhuShou.d.ts +17 -0
  385. package/dist/types/icons/IconWenDaZhuShou.d.ts.map +1 -0
  386. package/dist/types/icons/IconWenDang.d.ts +17 -0
  387. package/dist/types/icons/IconWenDang.d.ts.map +1 -0
  388. package/dist/types/icons/IconWenDang1.d.ts +17 -0
  389. package/dist/types/icons/IconWenDang1.d.ts.map +1 -0
  390. package/dist/types/icons/IconWenJian.d.ts +17 -0
  391. package/dist/types/icons/IconWenJian.d.ts.map +1 -0
  392. package/dist/types/icons/IconXiTongPeiZhi.d.ts +17 -0
  393. package/dist/types/icons/IconXiTongPeiZhi.d.ts.map +1 -0
  394. package/dist/types/icons/IconXiaZai.d.ts +17 -0
  395. package/dist/types/icons/IconXiaZai.d.ts.map +1 -0
  396. package/dist/types/icons/IconXiaZaiZhuShou.d.ts +17 -0
  397. package/dist/types/icons/IconXiaZaiZhuShou.d.ts.map +1 -0
  398. package/dist/types/icons/IconXiaoXi.d.ts +17 -0
  399. package/dist/types/icons/IconXiaoXi.d.ts.map +1 -0
  400. package/dist/types/icons/IconXinXiGuanLi.d.ts +17 -0
  401. package/dist/types/icons/IconXinXiGuanLi.d.ts.map +1 -0
  402. package/dist/types/icons/IconXinZeng.d.ts +17 -0
  403. package/dist/types/icons/IconXinZeng.d.ts.map +1 -0
  404. package/dist/types/icons/IconYanZhengMa.d.ts +17 -0
  405. package/dist/types/icons/IconYanZhengMa.d.ts.map +1 -0
  406. package/dist/types/icons/IconYunYingGuanLi.d.ts +17 -0
  407. package/dist/types/icons/IconYunYingGuanLi.d.ts.map +1 -0
  408. package/dist/types/icons/IconZengJia.d.ts +17 -0
  409. package/dist/types/icons/IconZengJia.d.ts.map +1 -0
  410. package/dist/types/icons/IconZhanKai.d.ts +17 -0
  411. package/dist/types/icons/IconZhanKai.d.ts.map +1 -0
  412. package/dist/types/icons/IconZhanKai1.d.ts +17 -0
  413. package/dist/types/icons/IconZhanKai1.d.ts.map +1 -0
  414. package/dist/types/icons/IconZhengQue.d.ts +17 -0
  415. package/dist/types/icons/IconZhengQue.d.ts.map +1 -0
  416. package/dist/types/icons/IconZhiShiKu.d.ts +17 -0
  417. package/dist/types/icons/IconZhiShiKu.d.ts.map +1 -0
  418. package/dist/types/icons/IconZhiShiKu1.d.ts +17 -0
  419. package/dist/types/icons/IconZhiShiKu1.d.ts.map +1 -0
  420. package/dist/types/index.d.ts +56 -0
  421. package/dist/types/index.d.ts.map +1 -0
  422. package/dist/types/manifest-generator.d.ts +113 -0
  423. package/dist/types/manifest-generator.d.ts.map +1 -0
  424. package/dist/types/multi-format-output.d.ts +151 -0
  425. package/dist/types/multi-format-output.d.ts.map +1 -0
  426. package/dist/types/svg-exporter.d.ts +103 -0
  427. package/dist/types/svg-exporter.d.ts.map +1 -0
  428. package/dist/types/svg-transformer.d.ts +103 -0
  429. package/dist/types/svg-transformer.d.ts.map +1 -0
  430. package/dist/types/types.d.ts +346 -0
  431. package/dist/types/types.d.ts.map +1 -0
  432. package/dist/types/version-manager.d.ts +82 -0
  433. package/dist/types/version-manager.d.ts.map +1 -0
  434. package/icons.json +227 -0
  435. package/package.json +66 -0
  436. package/svg/back.svg +1 -0
  437. package/svg/back1.svg +1 -0
  438. package/svg/check.svg +1 -0
  439. package/svg/check1.svg +1 -0
  440. package/svg/search.svg +1 -0
  441. package/svg/search1.svg +1 -0
  442. package/svg//345/205/263/351/227/255-/345/260/217.svg +1 -0
  443. package/svg//345/205/263/351/227/255-/345/260/2171.svg +1 -0
  444. package/svg//345/205/263/351/227/255.svg +1 -0
  445. package/svg//345/205/263/351/227/2551.svg +1 -0
  446. package/svg//345/261/225/345/274/200.svg +1 -0
  447. package/svg//345/261/225/345/274/2001.svg +1 -0
  448. package/svg//346/226/207/346/241/243.svg +1 -0
  449. package/svg//346/226/207/346/241/2431.svg +1 -0
  450. package/svg//347/237/245/350/257/206/345/272/223.svg +1 -0
  451. package/svg//347/237/245/350/257/206/345/272/2231.svg +1 -0
  452. package/svg//351/200/232/347/237/245.svg +1 -0
  453. package/svg//351/200/232/347/237/2451.svg +1 -0
  454. package/svg//351/223/276/346/216/245.svg +1 -0
  455. 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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}