@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,327 @@
1
+ "use strict";
2
+ /**
3
+ * SVG Transformer Module
4
+ *
5
+ * Handles SVG optimization using SVGO and conversion to JSX format.
6
+ * Requirements: 3.1, 3.2, 3.3, 3.4, 3.5, 3.6
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.defaultTransformOptions = exports.defaultSvgoConfig = void 0;
10
+ exports.optimizeSvg = optimizeSvg;
11
+ exports.kebabToCamelCase = kebabToCamelCase;
12
+ exports.convertToJsx = convertToJsx;
13
+ exports.transformSvg = transformSvg;
14
+ exports.extractSvgInnerContent = extractSvgInnerContent;
15
+ exports.extractViewBox = extractViewBox;
16
+ exports.extractSvgRootFill = extractSvgRootFill;
17
+ exports.hasFixedDimensions = hasFixedDimensions;
18
+ exports.usesCurrentColor = usesCurrentColor;
19
+ exports.hasJsxAttributes = hasJsxAttributes;
20
+ const svgo_1 = require("svgo");
21
+ /**
22
+ * 自定义 SVGO 插件:清理 Figma 导出的 SVG 问题元素
23
+ * - 移除超大背景路径(设计稿背景泄漏)
24
+ * - 移除 clipPath 内的填充路径
25
+ * - 移除不需要的白色/透明填充背景
26
+ */
27
+ const cleanFigmaExport = {
28
+ name: 'cleanFigmaExport',
29
+ fn: () => {
30
+ return {
31
+ element: {
32
+ enter: (node, parentNode) => {
33
+ // 移除超大尺寸的背景路径(如 d="M0 0h1440v1024H0z")
34
+ if (node.name === 'path' && node.attributes.d) {
35
+ const d = node.attributes.d;
36
+ // 检测矩形路径,尺寸超过 500 的视为设计稿背景
37
+ const rectMatch = d.match(/M[0\s-]*[0\s-]*[hH](\d+)[vV](\d+)/);
38
+ if (rectMatch) {
39
+ const width = parseInt(rectMatch[1], 10);
40
+ const height = parseInt(rectMatch[2], 10);
41
+ if (width > 500 || height > 500) {
42
+ // 从父节点移除此元素
43
+ if (parentNode.type === 'element' && parentNode.children) {
44
+ const index = parentNode.children.indexOf(node);
45
+ if (index > -1) {
46
+ parentNode.children.splice(index, 1);
47
+ }
48
+ }
49
+ return;
50
+ }
51
+ }
52
+ }
53
+ // 移除 clipPath 定义中的纯白色填充路径
54
+ if (node.name === 'clipPath') {
55
+ if (node.children) {
56
+ node.children = node.children.filter((child) => {
57
+ if (child.type === 'element' && child.name === 'path') {
58
+ const fill = child.attributes?.fill;
59
+ // 保留非白色填充的元素
60
+ return fill !== 'white' && fill !== '#fff' && fill !== '#ffffff';
61
+ }
62
+ return true;
63
+ });
64
+ }
65
+ }
66
+ // 移除带有 transform="translate(负值)" 的大背景
67
+ if (node.name === 'path' && node.attributes.transform) {
68
+ const transform = node.attributes.transform;
69
+ if (transform.includes('translate(-') && node.attributes.d) {
70
+ const d = node.attributes.d;
71
+ // 如果是大矩形路径,移除
72
+ if (d.match(/[hH]\d{3,}[vV]\d{3,}/)) {
73
+ if (parentNode.type === 'element' && parentNode.children) {
74
+ const index = parentNode.children.indexOf(node);
75
+ if (index > -1) {
76
+ parentNode.children.splice(index, 1);
77
+ }
78
+ }
79
+ }
80
+ }
81
+ }
82
+ },
83
+ },
84
+ };
85
+ },
86
+ };
87
+ /**
88
+ * Default SVGO configuration for icon optimization
89
+ * - Removes dimensions (width/height)
90
+ * - Preserves original colors (不替换为 currentColor)
91
+ * - Removes unnecessary metadata
92
+ * - Cleans up Figma export artifacts
93
+ */
94
+ exports.defaultSvgoConfig = {
95
+ plugins: [
96
+ {
97
+ name: 'preset-default',
98
+ params: {
99
+ overrides: {
100
+ // 禁用颜色转换,保留原始颜色
101
+ convertColors: false,
102
+ // 禁用移除 viewBox
103
+ removeViewBox: false,
104
+ // 禁用移除未使用的 defs(保留渐变定义)
105
+ removeUselessDefs: false,
106
+ // 禁用移除未知属性(保留 stop-color 等属性)
107
+ removeUnknownsAndDefaults: false,
108
+ // 禁用合并路径(可能影响渐变引用)
109
+ mergePaths: false,
110
+ // 禁用路径转换(保留原始路径数据)
111
+ convertPathData: {
112
+ floatPrecision: 3,
113
+ },
114
+ },
115
+ },
116
+ },
117
+ 'removeDimensions',
118
+ 'removeXMLNS',
119
+ // 添加自定义清理插件
120
+ cleanFigmaExport,
121
+ ],
122
+ };
123
+ /**
124
+ * Default transformation options
125
+ */
126
+ exports.defaultTransformOptions = {
127
+ replaceColors: true,
128
+ removeSize: true,
129
+ removeFill: true,
130
+ addViewBox: true,
131
+ };
132
+ /**
133
+ * Optimizes SVG content using SVGO
134
+ *
135
+ * @param svgContent - Raw SVG string
136
+ * @param config - Optional SVGO configuration override
137
+ * @returns Optimized SVG string
138
+ *
139
+ * Requirements: 3.1, 3.2, 3.3, 3.4
140
+ */
141
+ function optimizeSvg(svgContent, config = exports.defaultSvgoConfig) {
142
+ const result = (0, svgo_1.optimize)(svgContent, config);
143
+ return result.data;
144
+ }
145
+ /**
146
+ * Map of SVG attribute names to their JSX equivalents
147
+ */
148
+ const svgToJsxAttributeMap = {
149
+ class: 'className',
150
+ 'stroke-width': 'strokeWidth',
151
+ 'stroke-linecap': 'strokeLinecap',
152
+ 'stroke-linejoin': 'strokeLinejoin',
153
+ 'stroke-dasharray': 'strokeDasharray',
154
+ 'stroke-dashoffset': 'strokeDashoffset',
155
+ 'stroke-miterlimit': 'strokeMiterlimit',
156
+ 'stroke-opacity': 'strokeOpacity',
157
+ 'fill-rule': 'fillRule',
158
+ 'fill-opacity': 'fillOpacity',
159
+ 'clip-rule': 'clipRule',
160
+ 'clip-path': 'clipPath',
161
+ 'font-family': 'fontFamily',
162
+ 'font-size': 'fontSize',
163
+ 'font-style': 'fontStyle',
164
+ 'font-weight': 'fontWeight',
165
+ 'text-anchor': 'textAnchor',
166
+ 'text-decoration': 'textDecoration',
167
+ 'dominant-baseline': 'dominantBaseline',
168
+ 'alignment-baseline': 'alignmentBaseline',
169
+ 'baseline-shift': 'baselineShift',
170
+ 'stop-color': 'stopColor',
171
+ 'stop-opacity': 'stopOpacity',
172
+ 'color-interpolation': 'colorInterpolation',
173
+ 'color-interpolation-filters': 'colorInterpolationFilters',
174
+ 'flood-color': 'floodColor',
175
+ 'flood-opacity': 'floodOpacity',
176
+ 'lighting-color': 'lightingColor',
177
+ 'marker-start': 'markerStart',
178
+ 'marker-mid': 'markerMid',
179
+ 'marker-end': 'markerEnd',
180
+ 'paint-order': 'paintOrder',
181
+ 'shape-rendering': 'shapeRendering',
182
+ 'vector-effect': 'vectorEffect',
183
+ 'pointer-events': 'pointerEvents',
184
+ 'xlink:href': 'xlinkHref',
185
+ 'xml:space': 'xmlSpace',
186
+ 'xmlns:xlink': 'xmlnsXlink',
187
+ };
188
+ /**
189
+ * Converts a kebab-case attribute name to camelCase
190
+ *
191
+ * @param attr - Attribute name in kebab-case
192
+ * @returns Attribute name in camelCase
193
+ */
194
+ function kebabToCamelCase(attr) {
195
+ // Check if it's a known SVG attribute that needs special handling
196
+ if (svgToJsxAttributeMap[attr]) {
197
+ return svgToJsxAttributeMap[attr];
198
+ }
199
+ // Convert kebab-case to camelCase
200
+ return attr.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());
201
+ }
202
+ /**
203
+ * Converts SVG content to JSX-compatible format
204
+ *
205
+ * Transforms attribute names from kebab-case to camelCase
206
+ * as required by React/JSX.
207
+ *
208
+ * @param svgContent - SVG string with standard attribute names
209
+ * @returns SVG string with JSX-compatible attribute names
210
+ *
211
+ * Requirements: 3.5
212
+ */
213
+ function convertToJsx(svgContent) {
214
+ // Match all attributes in the SVG
215
+ // Pattern: attribute-name="value" or attribute-name='value'
216
+ return svgContent.replace(/\s([a-z][a-z0-9]*(?:-[a-z0-9]+)+)=/gi, (_, attrName) => {
217
+ const jsxAttrName = kebabToCamelCase(attrName.toLowerCase());
218
+ return ` ${jsxAttrName}=`;
219
+ });
220
+ }
221
+ /**
222
+ * Transforms SVG content: optimizes and converts to JSX format
223
+ *
224
+ * @param svgContent - Raw SVG string
225
+ * @param options - Transformation options
226
+ * @param svgoConfig - Optional SVGO configuration override
227
+ * @returns TransformResult with original/optimized sizes and content
228
+ *
229
+ * Requirements: 3.1, 3.2, 3.3, 3.4, 3.5, 3.6
230
+ */
231
+ function transformSvg(svgContent, _options = exports.defaultTransformOptions, svgoConfig = exports.defaultSvgoConfig) {
232
+ const originalSize = svgContent.length;
233
+ // Optimize SVG with SVGO
234
+ // Note: _options is reserved for future use when custom transform options are needed
235
+ const optimizedSvg = optimizeSvg(svgContent, svgoConfig);
236
+ // Convert to JSX format
237
+ const jsxContent = convertToJsx(optimizedSvg);
238
+ return {
239
+ originalSize,
240
+ optimizedSize: optimizedSvg.length,
241
+ svgContent: optimizedSvg,
242
+ jsxContent,
243
+ };
244
+ }
245
+ /**
246
+ * Extracts the inner content of an SVG element (everything between <svg> tags)
247
+ *
248
+ * @param svgContent - Full SVG string
249
+ * @returns Inner content of the SVG
250
+ */
251
+ function extractSvgInnerContent(svgContent) {
252
+ // Match content between <svg ...> and </svg>
253
+ const match = svgContent.match(/<svg[^>]*>([\s\S]*)<\/svg>/i);
254
+ return match ? match[1].trim() : '';
255
+ }
256
+ /**
257
+ * Extracts the viewBox attribute from an SVG string
258
+ *
259
+ * @param svgContent - SVG string
260
+ * @returns viewBox value or null if not found
261
+ */
262
+ function extractViewBox(svgContent) {
263
+ const match = svgContent.match(/viewBox=["']([^"']+)["']/i);
264
+ return match ? match[1] : null;
265
+ }
266
+ /**
267
+ * Extracts the fill attribute from the root SVG element
268
+ *
269
+ * @param svgContent - SVG string
270
+ * @returns fill value or null if not found
271
+ */
272
+ function extractSvgRootFill(svgContent) {
273
+ const match = svgContent.match(/<svg[^>]*\sfill=["']([^"']+)["']/i);
274
+ return match ? match[1] : null;
275
+ }
276
+ /**
277
+ * Checks if SVG content contains width/height attributes
278
+ *
279
+ * @param svgContent - SVG string
280
+ * @returns true if width or height attributes are present
281
+ */
282
+ function hasFixedDimensions(svgContent) {
283
+ const widthMatch = svgContent.match(/<svg[^>]*\swidth=["'][^"']+["']/i);
284
+ const heightMatch = svgContent.match(/<svg[^>]*\sheight=["'][^"']+["']/i);
285
+ return !!(widthMatch || heightMatch);
286
+ }
287
+ /**
288
+ * Checks if SVG content uses currentColor for fill
289
+ *
290
+ * @param svgContent - SVG string
291
+ * @returns true if fill="currentColor" is present on the svg element
292
+ */
293
+ function usesCurrentColor(svgContent) {
294
+ // Check if the SVG element has fill="currentColor"
295
+ const svgTagMatch = svgContent.match(/<svg[^>]*>/i);
296
+ if (!svgTagMatch)
297
+ return false;
298
+ return /fill=["']currentColor["']/i.test(svgTagMatch[0]);
299
+ }
300
+ /**
301
+ * Checks if all attribute names in SVG are in JSX camelCase format
302
+ *
303
+ * @param svgContent - SVG string
304
+ * @returns true if all attributes are in camelCase
305
+ */
306
+ function hasJsxAttributes(svgContent) {
307
+ // List of common kebab-case SVG attributes that should be converted
308
+ const kebabAttributes = [
309
+ 'stroke-width',
310
+ 'stroke-linecap',
311
+ 'stroke-linejoin',
312
+ 'fill-rule',
313
+ 'clip-rule',
314
+ 'clip-path',
315
+ 'font-family',
316
+ 'font-size',
317
+ ];
318
+ for (const attr of kebabAttributes) {
319
+ // Check if the kebab-case version exists (it shouldn't after conversion)
320
+ const regex = new RegExp(`\\s${attr}=`, 'i');
321
+ if (regex.test(svgContent)) {
322
+ return false;
323
+ }
324
+ }
325
+ return true;
326
+ }
327
+ //# sourceMappingURL=svg-transformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg-transformer.js","sourceRoot":"","sources":["../../src/svg-transformer.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAkIH,kCAMC;AAoDD,4CAQC;AAaD,oCAUC;AAYD,oCAoBC;AAQD,wDAIC;AAQD,wCAGC;AAQD,gDAGC;AAQD,gDAIC;AAQD,4CAKC;AAQD,4CAsBC;AAlVD,+BAA6E;AAG7E;;;;;GAKG;AACH,MAAM,gBAAgB,GAAiB;IACrC,IAAI,EAAE,kBAAkB;IACxB,EAAE,EAAE,GAAG,EAAE;QACP,OAAO;YACL,OAAO,EAAE;gBACP,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE;oBAC1B,uCAAuC;oBACvC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;wBAC9C,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;wBAC3B,2BAA2B;wBAC3B,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAA;wBAC9D,IAAI,SAAS,EAAE,CAAC;4BACd,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;4BACxC,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;4BACzC,IAAI,KAAK,GAAG,GAAG,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;gCAChC,YAAY;gCACZ,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;oCACzD,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;oCAC/C,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;wCACf,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;oCACtC,CAAC;gCACH,CAAC;gCACD,OAAM;4BACR,CAAC;wBACH,CAAC;oBACH,CAAC;oBAED,0BAA0B;oBAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;wBAC7B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;4BAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE;gCAClD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oCACtD,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,EAAE,IAAI,CAAA;oCACnC,aAAa;oCACb,OAAO,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,SAAS,CAAA;gCAClE,CAAC;gCACD,OAAO,IAAI,CAAA;4BACb,CAAC,CAAC,CAAA;wBACJ,CAAC;oBACH,CAAC;oBAED,sCAAsC;oBACtC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;wBACtD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAA;wBAC3C,IAAI,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;4BAC3D,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;4BAC3B,cAAc;4BACd,IAAI,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,EAAE,CAAC;gCACpC,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;oCACzD,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;oCAC/C,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;wCACf,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;oCACtC,CAAC;gCACH,CAAC;4BACH,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;aACF;SACF,CAAA;IACH,CAAC;CACF,CAAA;AAED;;;;;;GAMG;AACU,QAAA,iBAAiB,GAAe;IAC3C,OAAO,EAAE;QACP;YACE,IAAI,EAAE,gBAAgB;YACtB,MAAM,EAAE;gBACN,SAAS,EAAE;oBACT,gBAAgB;oBAChB,aAAa,EAAE,KAAK;oBACpB,eAAe;oBACf,aAAa,EAAE,KAAK;oBACpB,wBAAwB;oBACxB,iBAAiB,EAAE,KAAK;oBACxB,8BAA8B;oBAC9B,yBAAyB,EAAE,KAAK;oBAChC,mBAAmB;oBACnB,UAAU,EAAE,KAAK;oBACjB,mBAAmB;oBACnB,eAAe,EAAE;wBACf,cAAc,EAAE,CAAC;qBAClB;iBACF;aACF;SACF;QACD,kBAAkB;QAClB,aAAa;QACb,YAAY;QACZ,gBAAgB;KACjB;CACF,CAAA;AAED;;GAEG;AACU,QAAA,uBAAuB,GAAqB;IACvD,aAAa,EAAE,IAAI;IACnB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;CACjB,CAAA;AAED;;;;;;;;GAQG;AACH,SAAgB,WAAW,CACzB,UAAkB,EAClB,SAAqB,yBAAiB;IAEtC,MAAM,MAAM,GAAG,IAAA,eAAQ,EAAC,UAAU,EAAE,MAAM,CAAC,CAAA;IAC3C,OAAO,MAAM,CAAC,IAAI,CAAA;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,oBAAoB,GAA2B;IACnD,KAAK,EAAE,WAAW;IAClB,cAAc,EAAE,aAAa;IAC7B,gBAAgB,EAAE,eAAe;IACjC,iBAAiB,EAAE,gBAAgB;IACnC,kBAAkB,EAAE,iBAAiB;IACrC,mBAAmB,EAAE,kBAAkB;IACvC,mBAAmB,EAAE,kBAAkB;IACvC,gBAAgB,EAAE,eAAe;IACjC,WAAW,EAAE,UAAU;IACvB,cAAc,EAAE,aAAa;IAC7B,WAAW,EAAE,UAAU;IACvB,WAAW,EAAE,UAAU;IACvB,aAAa,EAAE,YAAY;IAC3B,WAAW,EAAE,UAAU;IACvB,YAAY,EAAE,WAAW;IACzB,aAAa,EAAE,YAAY;IAC3B,aAAa,EAAE,YAAY;IAC3B,iBAAiB,EAAE,gBAAgB;IACnC,mBAAmB,EAAE,kBAAkB;IACvC,oBAAoB,EAAE,mBAAmB;IACzC,gBAAgB,EAAE,eAAe;IACjC,YAAY,EAAE,WAAW;IACzB,cAAc,EAAE,aAAa;IAC7B,qBAAqB,EAAE,oBAAoB;IAC3C,6BAA6B,EAAE,2BAA2B;IAC1D,aAAa,EAAE,YAAY;IAC3B,eAAe,EAAE,cAAc;IAC/B,gBAAgB,EAAE,eAAe;IACjC,cAAc,EAAE,aAAa;IAC7B,YAAY,EAAE,WAAW;IACzB,YAAY,EAAE,WAAW;IACzB,aAAa,EAAE,YAAY;IAC3B,iBAAiB,EAAE,gBAAgB;IACnC,eAAe,EAAE,cAAc;IAC/B,gBAAgB,EAAE,eAAe;IACjC,YAAY,EAAE,WAAW;IACzB,WAAW,EAAE,UAAU;IACvB,aAAa,EAAE,YAAY;CAC5B,CAAA;AAED;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,IAAY;IAC3C,kEAAkE;IAClE,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;IAED,kCAAkC;IAClC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAA;AACvE,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,YAAY,CAAC,UAAkB;IAC7C,kCAAkC;IAClC,4DAA4D;IAC5D,OAAO,UAAU,CAAC,OAAO,CACvB,sCAAsC,EACtC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE;QACd,MAAM,WAAW,GAAG,gBAAgB,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAA;QAC5D,OAAO,IAAI,WAAW,GAAG,CAAA;IAC3B,CAAC,CACF,CAAA;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,YAAY,CAC1B,UAAkB,EAClB,WAA6B,+BAAuB,EACpD,aAAyB,yBAAiB;IAE1C,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAA;IAEtC,yBAAyB;IACzB,qFAAqF;IACrF,MAAM,YAAY,GAAG,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;IAExD,wBAAwB;IACxB,MAAM,UAAU,GAAG,YAAY,CAAC,YAAY,CAAC,CAAA;IAE7C,OAAO;QACL,YAAY;QACZ,aAAa,EAAE,YAAY,CAAC,MAAM;QAClC,UAAU,EAAE,YAAY;QACxB,UAAU;KACX,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAgB,sBAAsB,CAAC,UAAkB;IACvD,6CAA6C;IAC7C,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAA;IAC7D,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;AACrC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,UAAkB;IAC/C,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAC3D,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAChC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,UAAkB;IACnD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAA;IACnE,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAChC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,UAAkB;IACnD,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAA;IACvE,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAA;IACzE,OAAO,CAAC,CAAC,CAAC,UAAU,IAAI,WAAW,CAAC,CAAA;AACtC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,UAAkB;IACjD,mDAAmD;IACnD,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IACnD,IAAI,CAAC,WAAW;QAAE,OAAO,KAAK,CAAA;IAC9B,OAAO,4BAA4B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;AAC1D,CAAC;AAED;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,UAAkB;IACjD,oEAAoE;IACpE,MAAM,eAAe,GAAG;QACtB,cAAc;QACd,gBAAgB;QAChB,iBAAiB;QACjB,WAAW;QACX,WAAW;QACX,WAAW;QACX,aAAa;QACb,WAAW;KACZ,CAAA;IAED,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;QACnC,yEAAyE;QACzE,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,GAAG,CAAC,CAAA;QAC5C,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,175 @@
1
+ "use strict";
2
+ /**
3
+ * Version Manager Module
4
+ *
5
+ * Provides semantic version suggestions based on icon changes.
6
+ * Follows SemVer conventions:
7
+ * - major: breaking changes (icon removals)
8
+ * - minor: new features (icon additions)
9
+ * - patch: bug fixes (icon modifications only)
10
+ *
11
+ * Requirements: 13.1, 13.2, 13.3, 13.4
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.suggestVersionBump = suggestVersionBump;
15
+ exports.incrementVersion = incrementVersion;
16
+ exports.parseVersion = parseVersion;
17
+ exports.isValidVersion = isValidVersion;
18
+ exports.compareVersions = compareVersions;
19
+ exports.suggestNewVersion = suggestNewVersion;
20
+ /**
21
+ * Suggests a semantic version bump type based on icon changes
22
+ *
23
+ * Rules (per Requirements 13.1-13.4):
24
+ * - If icons are removed → major (breaking change)
25
+ * - If icons are added (with or without modifications) → minor (new feature)
26
+ * - If only icons are modified → patch (bug fix)
27
+ * - If no changes → patch (default)
28
+ *
29
+ * @param diff - The icon diff containing added, modified, and removed icons
30
+ * @returns VersionSuggestion with bump type and reason
31
+ *
32
+ * Requirements: 13.1, 13.2, 13.3, 13.4
33
+ */
34
+ function suggestVersionBump(diff) {
35
+ const hasRemovals = diff.removed.length > 0;
36
+ const hasAdditions = diff.added.length > 0;
37
+ const hasModifications = diff.modified.length > 0;
38
+ // Rule 1: Removals are breaking changes → major
39
+ // Requirements: 13.3
40
+ if (hasRemovals) {
41
+ const removedCount = diff.removed.length;
42
+ const reason = removedCount === 1
43
+ ? `1 icon removed (breaking change)`
44
+ : `${removedCount} icons removed (breaking change)`;
45
+ return {
46
+ bumpType: 'major',
47
+ reason,
48
+ };
49
+ }
50
+ // Rule 2: Additions are new features → minor
51
+ // Requirements: 13.2
52
+ if (hasAdditions) {
53
+ const addedCount = diff.added.length;
54
+ const modifiedCount = diff.modified.length;
55
+ let reason = addedCount === 1 ? `1 icon added` : `${addedCount} icons added`;
56
+ if (modifiedCount > 0) {
57
+ reason +=
58
+ modifiedCount === 1
59
+ ? `, 1 icon modified`
60
+ : `, ${modifiedCount} icons modified`;
61
+ }
62
+ return {
63
+ bumpType: 'minor',
64
+ reason,
65
+ };
66
+ }
67
+ // Rule 3: Only modifications → patch
68
+ // Requirements: 13.4
69
+ if (hasModifications) {
70
+ const modifiedCount = diff.modified.length;
71
+ const reason = modifiedCount === 1
72
+ ? `1 icon modified`
73
+ : `${modifiedCount} icons modified`;
74
+ return {
75
+ bumpType: 'patch',
76
+ reason,
77
+ };
78
+ }
79
+ // No changes → default to patch
80
+ return {
81
+ bumpType: 'patch',
82
+ reason: 'No changes detected',
83
+ };
84
+ }
85
+ /**
86
+ * Increments a semantic version string based on bump type
87
+ *
88
+ * @param currentVersion - Current version string (e.g., "1.2.3")
89
+ * @param bumpType - Type of version bump
90
+ * @returns New version string
91
+ *
92
+ * Requirements: 13.1
93
+ */
94
+ function incrementVersion(currentVersion, bumpType) {
95
+ const parts = parseVersion(currentVersion);
96
+ switch (bumpType) {
97
+ case 'major':
98
+ return `${parts.major + 1}.0.0`;
99
+ case 'minor':
100
+ return `${parts.major}.${parts.minor + 1}.0`;
101
+ case 'patch':
102
+ return `${parts.major}.${parts.minor}.${parts.patch + 1}`;
103
+ }
104
+ }
105
+ /**
106
+ * Parses a semantic version string into components
107
+ *
108
+ * @param version - Version string (e.g., "1.2.3")
109
+ * @returns Parsed version components
110
+ * @throws Error if version format is invalid
111
+ */
112
+ function parseVersion(version) {
113
+ // Remove 'v' prefix if present
114
+ const cleanVersion = version.startsWith('v') ? version.slice(1) : version;
115
+ const match = cleanVersion.match(/^(\d+)\.(\d+)\.(\d+)/);
116
+ if (!match) {
117
+ throw new Error(`Invalid version format: ${version}`);
118
+ }
119
+ return {
120
+ major: parseInt(match[1], 10),
121
+ minor: parseInt(match[2], 10),
122
+ patch: parseInt(match[3], 10),
123
+ };
124
+ }
125
+ /**
126
+ * Validates a semantic version string
127
+ *
128
+ * @param version - Version string to validate
129
+ * @returns True if valid semantic version
130
+ */
131
+ function isValidVersion(version) {
132
+ try {
133
+ parseVersion(version);
134
+ return true;
135
+ }
136
+ catch {
137
+ return false;
138
+ }
139
+ }
140
+ /**
141
+ * Compares two semantic versions
142
+ *
143
+ * @param a - First version
144
+ * @param b - Second version
145
+ * @returns -1 if a < b, 0 if a === b, 1 if a > b
146
+ */
147
+ function compareVersions(a, b) {
148
+ const parsedA = parseVersion(a);
149
+ const parsedB = parseVersion(b);
150
+ if (parsedA.major !== parsedB.major) {
151
+ return parsedA.major < parsedB.major ? -1 : 1;
152
+ }
153
+ if (parsedA.minor !== parsedB.minor) {
154
+ return parsedA.minor < parsedB.minor ? -1 : 1;
155
+ }
156
+ if (parsedA.patch !== parsedB.patch) {
157
+ return parsedA.patch < parsedB.patch ? -1 : 1;
158
+ }
159
+ return 0;
160
+ }
161
+ /**
162
+ * Suggests a new version based on current version and icon diff
163
+ *
164
+ * Convenience function that combines suggestVersionBump and incrementVersion.
165
+ *
166
+ * @param currentVersion - Current version string
167
+ * @param diff - Icon diff
168
+ * @returns Object with suggested version and reason
169
+ */
170
+ function suggestNewVersion(currentVersion, diff) {
171
+ const suggestion = suggestVersionBump(diff);
172
+ const version = incrementVersion(currentVersion, suggestion.bumpType);
173
+ return { version, suggestion };
174
+ }
175
+ //# sourceMappingURL=version-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-manager.js","sourceRoot":"","sources":["../../src/version-manager.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;AAkBH,gDAwDC;AAWD,4CAcC;AAkBD,oCAcC;AAQD,wCAOC;AASD,0CAcC;AAWD,8CAOC;AAvLD;;;;;;;;;;;;;GAaG;AACH,SAAgB,kBAAkB,CAAC,IAAc;IAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAA;IAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;IAC1C,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA;IAEjD,gDAAgD;IAChD,qBAAqB;IACrB,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAA;QACxC,MAAM,MAAM,GACV,YAAY,KAAK,CAAC;YAChB,CAAC,CAAC,kCAAkC;YACpC,CAAC,CAAC,GAAG,YAAY,kCAAkC,CAAA;QACvD,OAAO;YACL,QAAQ,EAAE,OAAO;YACjB,MAAM;SACP,CAAA;IACH,CAAC;IAED,6CAA6C;IAC7C,qBAAqB;IACrB,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;QACpC,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAA;QAC1C,IAAI,MAAM,GAAG,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,UAAU,cAAc,CAAA;QAC5E,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM;gBACJ,aAAa,KAAK,CAAC;oBACjB,CAAC,CAAC,mBAAmB;oBACrB,CAAC,CAAC,KAAK,aAAa,iBAAiB,CAAA;QAC3C,CAAC;QACD,OAAO;YACL,QAAQ,EAAE,OAAO;YACjB,MAAM;SACP,CAAA;IACH,CAAC;IAED,qCAAqC;IACrC,qBAAqB;IACrB,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAA;QAC1C,MAAM,MAAM,GACV,aAAa,KAAK,CAAC;YACjB,CAAC,CAAC,iBAAiB;YACnB,CAAC,CAAC,GAAG,aAAa,iBAAiB,CAAA;QACvC,OAAO;YACL,QAAQ,EAAE,OAAO;YACjB,MAAM;SACP,CAAA;IACH,CAAC;IAED,gCAAgC;IAChC,OAAO;QACL,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,qBAAqB;KAC9B,CAAA;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,gBAAgB,CAC9B,cAAsB,EACtB,QAAyB;IAEzB,MAAM,KAAK,GAAG,YAAY,CAAC,cAAc,CAAC,CAAA;IAE1C,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,OAAO;YACV,OAAO,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,MAAM,CAAA;QACjC,KAAK,OAAO;YACV,OAAO,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,CAAA;QAC9C,KAAK,OAAO;YACV,OAAO,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,CAAA;IAC7D,CAAC;AACH,CAAC;AAWD;;;;;;GAMG;AACH,SAAgB,YAAY,CAAC,OAAe;IAC1C,+BAA+B;IAC/B,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;IAEzE,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACxD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAA;IACvD,CAAC;IAED,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC7B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC7B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;KAC9B,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,OAAe;IAC5C,IAAI,CAAC;QACH,YAAY,CAAC,OAAO,CAAC,CAAA;QACrB,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,eAAe,CAAC,CAAS,EAAE,CAAS;IAClD,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;IAC/B,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;IAE/B,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC;QACpC,OAAO,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/C,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC;QACpC,OAAO,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/C,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC;QACpC,OAAO,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/C,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,iBAAiB,CAC/B,cAAsB,EACtB,IAAc;IAEd,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;IAC3C,MAAM,OAAO,GAAG,gBAAgB,CAAC,cAAc,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;IACrE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAA;AAChC,CAAC"}