@iconify/tools 4.2.0 → 5.0.0-beta.2

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 (534) hide show
  1. package/lib/colors/attribs.d.ts +2 -4
  2. package/lib/colors/attribs.js +33 -0
  3. package/lib/colors/detect.d.ts +2 -10
  4. package/lib/colors/detect.js +36 -0
  5. package/lib/colors/parse.d.ts +12 -19
  6. package/lib/colors/parse.js +241 -0
  7. package/lib/colors/validate.d.ts +3 -13
  8. package/lib/colors/validate.js +31 -0
  9. package/lib/css/parse.d.ts +1 -2
  10. package/lib/css/parse.js +18 -0
  11. package/lib/css/parser/error.d.ts +6 -7
  12. package/lib/css/parser/error.js +24 -0
  13. package/lib/css/parser/export.d.ts +2 -4
  14. package/lib/css/parser/export.js +34 -0
  15. package/lib/css/parser/strings.d.ts +2 -4
  16. package/lib/css/parser/strings.js +66 -0
  17. package/lib/css/parser/text.d.ts +2 -4
  18. package/lib/css/parser/text.js +103 -0
  19. package/lib/css/parser/tokens.d.ts +3 -5
  20. package/lib/css/parser/tokens.js +169 -0
  21. package/lib/css/parser/tree.d.ts +2 -4
  22. package/lib/css/parser/tree.js +35 -0
  23. package/lib/css/parser/types.d.ts +21 -22
  24. package/lib/css/parser/types.js +1 -0
  25. package/lib/download/api/cache.d.ts +2 -4
  26. package/lib/download/api/cache.js +84 -0
  27. package/lib/download/api/config.d.ts +6 -8
  28. package/lib/download/api/config.js +10 -0
  29. package/lib/download/api/download.d.ts +2 -4
  30. package/lib/download/api/download.js +26 -0
  31. package/lib/download/api/fetch.d.ts +1 -2
  32. package/lib/download/api/fetch.js +15 -0
  33. package/lib/download/api/index.d.ts +2 -4
  34. package/lib/download/api/index.js +50 -0
  35. package/lib/download/api/queue.d.ts +9 -10
  36. package/lib/download/api/queue.js +94 -0
  37. package/lib/download/api/types.d.ts +6 -7
  38. package/lib/download/api/types.js +1 -0
  39. package/lib/download/git/branch.d.ts +2 -4
  40. package/lib/download/git/branch.js +15 -0
  41. package/lib/download/git/hash.d.ts +2 -4
  42. package/lib/download/git/hash.js +10 -0
  43. package/lib/download/git/index.d.ts +10 -12
  44. package/lib/download/git/index.js +39 -0
  45. package/lib/download/git/reset.d.ts +1 -2
  46. package/lib/download/git/reset.js +12 -0
  47. package/lib/download/github/hash.d.ts +2 -4
  48. package/lib/download/github/hash.js +20 -0
  49. package/lib/download/github/index.d.ts +12 -14
  50. package/lib/download/github/index.js +66 -0
  51. package/lib/download/github/types.d.ts +5 -6
  52. package/lib/download/github/types.js +1 -0
  53. package/lib/download/gitlab/hash.d.ts +2 -4
  54. package/lib/download/gitlab/hash.js +19 -0
  55. package/lib/download/gitlab/index.d.ts +12 -14
  56. package/lib/download/gitlab/index.js +64 -0
  57. package/lib/download/gitlab/types.d.ts +5 -6
  58. package/lib/download/gitlab/types.js +6 -0
  59. package/lib/download/helpers/untar.d.ts +1 -2
  60. package/lib/download/helpers/untar.js +13 -0
  61. package/lib/download/helpers/unzip.d.ts +1 -2
  62. package/lib/download/helpers/unzip.js +39 -0
  63. package/lib/download/index.d.ts +15 -20
  64. package/lib/download/index.js +19 -0
  65. package/lib/download/npm/index.d.ts +11 -13
  66. package/lib/download/npm/index.js +51 -0
  67. package/lib/download/npm/types.d.ts +3 -4
  68. package/lib/download/npm/types.js +1 -0
  69. package/lib/download/npm/version.d.ts +4 -6
  70. package/lib/download/npm/version.js +23 -0
  71. package/lib/download/types/modified.d.ts +1 -2
  72. package/lib/download/types/modified.js +1 -0
  73. package/lib/download/types/sources.d.ts +2 -3
  74. package/lib/download/types/sources.js +1 -0
  75. package/lib/export/directory.d.ts +7 -15
  76. package/lib/export/directory.js +37 -0
  77. package/lib/export/helpers/custom-files.d.ts +2 -3
  78. package/lib/export/helpers/custom-files.js +23 -0
  79. package/lib/export/helpers/prepare.d.ts +3 -4
  80. package/lib/export/helpers/prepare.js +31 -0
  81. package/lib/export/helpers/types-version.d.ts +1 -2
  82. package/lib/export/helpers/types-version.js +19 -0
  83. package/lib/export/icon-package.d.ts +8 -15
  84. package/lib/export/icon-package.js +55 -0
  85. package/lib/export/json-package.d.ts +7 -14
  86. package/lib/export/json-package.js +129 -0
  87. package/lib/icon-set/index.d.ts +144 -147
  88. package/lib/icon-set/index.js +595 -0
  89. package/lib/icon-set/match.d.ts +3 -11
  90. package/lib/icon-set/match.js +45 -0
  91. package/lib/icon-set/merge.d.ts +2 -10
  92. package/lib/icon-set/merge.js +68 -0
  93. package/lib/icon-set/modified.d.ts +2 -10
  94. package/lib/icon-set/modified.js +20 -0
  95. package/lib/icon-set/props.d.ts +2 -5
  96. package/lib/icon-set/props.js +19 -0
  97. package/lib/icon-set/tags.d.ts +7 -15
  98. package/lib/icon-set/tags.js +53 -0
  99. package/lib/icon-set/types.d.ts +16 -21
  100. package/lib/icon-set/types.js +1 -0
  101. package/lib/import/directory.d.ts +11 -20
  102. package/lib/import/directory.js +101 -0
  103. package/lib/import/figma/index.d.ts +4 -15
  104. package/lib/import/figma/index.js +61 -0
  105. package/lib/import/figma/nodes.d.ts +4 -14
  106. package/lib/import/figma/nodes.js +80 -0
  107. package/lib/import/figma/query.d.ts +9 -19
  108. package/lib/import/figma/query.js +183 -0
  109. package/lib/import/figma/types/api.d.ts +26 -27
  110. package/lib/import/figma/types/api.js +1 -0
  111. package/lib/import/figma/types/nodes.d.ts +12 -21
  112. package/lib/import/figma/types/nodes.js +1 -0
  113. package/lib/import/figma/types/options.d.ts +23 -32
  114. package/lib/import/figma/types/options.js +1 -0
  115. package/lib/import/figma/types/result.d.ts +16 -24
  116. package/lib/import/figma/types/result.js +1 -0
  117. package/lib/index.d.ts +55 -80
  118. package/lib/index.js +56 -0
  119. package/lib/misc/bump-version.d.ts +1 -2
  120. package/lib/misc/bump-version.js +13 -0
  121. package/lib/misc/compare-dirs.d.ts +4 -5
  122. package/lib/misc/compare-dirs.js +65 -0
  123. package/lib/misc/exec.d.ts +4 -6
  124. package/lib/misc/exec.js +23 -0
  125. package/lib/misc/keyword.d.ts +1 -2
  126. package/lib/misc/keyword.js +12 -0
  127. package/lib/misc/scan.d.ts +2 -4
  128. package/lib/misc/scan.js +87 -0
  129. package/lib/misc/write-json.d.ts +1 -2
  130. package/lib/misc/write-json.js +10 -0
  131. package/lib/optimise/figma.d.ts +2 -7
  132. package/lib/optimise/figma.js +189 -0
  133. package/lib/optimise/flags.d.ts +2 -7
  134. package/lib/optimise/flags.js +231 -0
  135. package/lib/optimise/global-style.d.ts +2 -7
  136. package/lib/optimise/global-style.js +114 -0
  137. package/lib/optimise/mask.d.ts +9 -14
  138. package/lib/optimise/mask.js +83 -0
  139. package/lib/optimise/origin.d.ts +2 -7
  140. package/lib/optimise/origin.js +22 -0
  141. package/lib/optimise/scale.d.ts +2 -7
  142. package/lib/optimise/scale.js +24 -0
  143. package/lib/optimise/svgo.d.ts +10 -15
  144. package/lib/optimise/svgo.js +90 -0
  145. package/lib/optimise/unwrap.d.ts +2 -7
  146. package/lib/optimise/unwrap.js +25 -0
  147. package/lib/svg/analyse/error.d.ts +2 -7
  148. package/lib/svg/analyse/error.js +12 -0
  149. package/lib/svg/analyse/types.d.ts +31 -35
  150. package/lib/svg/analyse/types.js +1 -0
  151. package/lib/svg/analyse.d.ts +3 -10
  152. package/lib/svg/analyse.js +256 -0
  153. package/lib/svg/cleanup/attribs.d.ts +2 -7
  154. package/lib/svg/cleanup/attribs.js +37 -0
  155. package/lib/svg/cleanup/bad-tags.d.ts +3 -8
  156. package/lib/svg/cleanup/bad-tags.js +57 -0
  157. package/lib/svg/cleanup/inline-style.d.ts +2 -7
  158. package/lib/svg/cleanup/inline-style.js +80 -0
  159. package/lib/svg/cleanup/root-style.d.ts +4 -9
  160. package/lib/svg/cleanup/root-style.js +27 -0
  161. package/lib/svg/cleanup/root-svg.d.ts +2 -7
  162. package/lib/svg/cleanup/root-svg.js +73 -0
  163. package/lib/svg/cleanup/svgo-style.d.ts +2 -7
  164. package/lib/svg/cleanup/svgo-style.js +24 -0
  165. package/lib/svg/cleanup.d.ts +3 -8
  166. package/lib/svg/cleanup.js +20 -0
  167. package/lib/svg/data/attributes.d.ts +1 -2
  168. package/lib/svg/data/attributes.js +451 -0
  169. package/lib/svg/data/tags.d.ts +1 -2
  170. package/lib/svg/data/tags.js +182 -0
  171. package/lib/svg/index.d.ts +38 -47
  172. package/lib/svg/index.js +117 -0
  173. package/lib/svg/parse-style.d.ts +21 -28
  174. package/lib/svg/parse-style.js +199 -0
  175. package/lib/svg/parse.d.ts +8 -16
  176. package/lib/svg/parse.js +32 -0
  177. package/package.json +116 -222
  178. package/lib/colors/attribs.cjs +0 -33
  179. package/lib/colors/attribs.d.cts +0 -27
  180. package/lib/colors/attribs.d.mts +0 -27
  181. package/lib/colors/attribs.mjs +0 -26
  182. package/lib/colors/detect.cjs +0 -66
  183. package/lib/colors/detect.d.cts +0 -16
  184. package/lib/colors/detect.d.mts +0 -16
  185. package/lib/colors/detect.mjs +0 -64
  186. package/lib/colors/parse.cjs +0 -300
  187. package/lib/colors/parse.d.cts +0 -61
  188. package/lib/colors/parse.d.mts +0 -61
  189. package/lib/colors/parse.mjs +0 -297
  190. package/lib/colors/validate.cjs +0 -56
  191. package/lib/colors/validate.d.cts +0 -21
  192. package/lib/colors/validate.d.mts +0 -21
  193. package/lib/colors/validate.mjs +0 -54
  194. package/lib/css/parse.cjs +0 -24
  195. package/lib/css/parse.d.cts +0 -6
  196. package/lib/css/parse.d.mts +0 -6
  197. package/lib/css/parse.mjs +0 -22
  198. package/lib/css/parser/error.cjs +0 -23
  199. package/lib/css/parser/error.d.cts +0 -13
  200. package/lib/css/parser/error.d.mts +0 -13
  201. package/lib/css/parser/error.mjs +0 -21
  202. package/lib/css/parser/export.cjs +0 -37
  203. package/lib/css/parser/export.d.cts +0 -8
  204. package/lib/css/parser/export.d.mts +0 -8
  205. package/lib/css/parser/export.mjs +0 -35
  206. package/lib/css/parser/strings.cjs +0 -83
  207. package/lib/css/parser/strings.d.cts +0 -16
  208. package/lib/css/parser/strings.d.mts +0 -16
  209. package/lib/css/parser/strings.mjs +0 -80
  210. package/lib/css/parser/text.cjs +0 -114
  211. package/lib/css/parser/text.d.cts +0 -20
  212. package/lib/css/parser/text.d.mts +0 -20
  213. package/lib/css/parser/text.mjs +0 -109
  214. package/lib/css/parser/tokens.cjs +0 -206
  215. package/lib/css/parser/tokens.d.cts +0 -9
  216. package/lib/css/parser/tokens.d.mts +0 -9
  217. package/lib/css/parser/tokens.mjs +0 -204
  218. package/lib/css/parser/tree.cjs +0 -40
  219. package/lib/css/parser/tree.d.cts +0 -8
  220. package/lib/css/parser/tree.d.mts +0 -8
  221. package/lib/css/parser/tree.mjs +0 -38
  222. package/lib/css/parser/types.cjs +0 -2
  223. package/lib/css/parser/types.d.cts +0 -52
  224. package/lib/css/parser/types.d.mts +0 -52
  225. package/lib/css/parser/types.mjs +0 -1
  226. package/lib/download/api/cache.cjs +0 -91
  227. package/lib/download/api/cache.d.cts +0 -20
  228. package/lib/download/api/cache.d.mts +0 -20
  229. package/lib/download/api/cache.mjs +0 -86
  230. package/lib/download/api/config.cjs +0 -11
  231. package/lib/download/api/config.d.cts +0 -18
  232. package/lib/download/api/config.d.mts +0 -18
  233. package/lib/download/api/config.mjs +0 -8
  234. package/lib/download/api/download.cjs +0 -26
  235. package/lib/download/api/download.d.cts +0 -8
  236. package/lib/download/api/download.d.mts +0 -8
  237. package/lib/download/api/download.mjs +0 -24
  238. package/lib/download/api/fetch.cjs +0 -12
  239. package/lib/download/api/fetch.d.cts +0 -10
  240. package/lib/download/api/fetch.d.mts +0 -10
  241. package/lib/download/api/fetch.mjs +0 -9
  242. package/lib/download/api/index.cjs +0 -57
  243. package/lib/download/api/index.d.cts +0 -8
  244. package/lib/download/api/index.d.mts +0 -8
  245. package/lib/download/api/index.mjs +0 -55
  246. package/lib/download/api/queue.cjs +0 -104
  247. package/lib/download/api/queue.d.cts +0 -32
  248. package/lib/download/api/queue.d.mts +0 -32
  249. package/lib/download/api/queue.mjs +0 -101
  250. package/lib/download/api/types.cjs +0 -2
  251. package/lib/download/api/types.d.cts +0 -17
  252. package/lib/download/api/types.d.mts +0 -17
  253. package/lib/download/api/types.mjs +0 -1
  254. package/lib/download/git/branch.cjs +0 -19
  255. package/lib/download/git/branch.d.cts +0 -8
  256. package/lib/download/git/branch.d.mts +0 -8
  257. package/lib/download/git/branch.mjs +0 -17
  258. package/lib/download/git/hash.cjs +0 -14
  259. package/lib/download/git/hash.d.cts +0 -8
  260. package/lib/download/git/hash.d.mts +0 -8
  261. package/lib/download/git/hash.mjs +0 -12
  262. package/lib/download/git/index.cjs +0 -76
  263. package/lib/download/git/index.d.cts +0 -29
  264. package/lib/download/git/index.d.mts +0 -29
  265. package/lib/download/git/index.mjs +0 -74
  266. package/lib/download/git/reset.cjs +0 -36
  267. package/lib/download/git/reset.d.cts +0 -6
  268. package/lib/download/git/reset.d.mts +0 -6
  269. package/lib/download/git/reset.mjs +0 -34
  270. package/lib/download/github/hash.cjs +0 -31
  271. package/lib/download/github/hash.d.cts +0 -8
  272. package/lib/download/github/hash.d.mts +0 -8
  273. package/lib/download/github/hash.mjs +0 -29
  274. package/lib/download/github/index.cjs +0 -105
  275. package/lib/download/github/index.d.cts +0 -31
  276. package/lib/download/github/index.d.mts +0 -31
  277. package/lib/download/github/index.mjs +0 -103
  278. package/lib/download/github/types.cjs +0 -2
  279. package/lib/download/github/types.d.cts +0 -11
  280. package/lib/download/github/types.d.mts +0 -11
  281. package/lib/download/github/types.mjs +0 -1
  282. package/lib/download/gitlab/hash.cjs +0 -33
  283. package/lib/download/gitlab/hash.d.cts +0 -8
  284. package/lib/download/gitlab/hash.d.mts +0 -8
  285. package/lib/download/gitlab/hash.mjs +0 -31
  286. package/lib/download/gitlab/index.cjs +0 -105
  287. package/lib/download/gitlab/index.d.cts +0 -31
  288. package/lib/download/gitlab/index.d.mts +0 -31
  289. package/lib/download/gitlab/index.mjs +0 -103
  290. package/lib/download/gitlab/types.cjs +0 -5
  291. package/lib/download/gitlab/types.d.cts +0 -15
  292. package/lib/download/gitlab/types.d.mts +0 -15
  293. package/lib/download/gitlab/types.mjs +0 -3
  294. package/lib/download/helpers/untar.cjs +0 -12
  295. package/lib/download/helpers/untar.d.cts +0 -6
  296. package/lib/download/helpers/untar.d.mts +0 -6
  297. package/lib/download/helpers/untar.mjs +0 -10
  298. package/lib/download/helpers/unzip.cjs +0 -17
  299. package/lib/download/helpers/unzip.d.cts +0 -6
  300. package/lib/download/helpers/unzip.d.mts +0 -6
  301. package/lib/download/helpers/unzip.mjs +0 -11
  302. package/lib/download/index.cjs +0 -64
  303. package/lib/download/index.d.cts +0 -48
  304. package/lib/download/index.d.mts +0 -48
  305. package/lib/download/index.mjs +0 -62
  306. package/lib/download/npm/index.cjs +0 -85
  307. package/lib/download/npm/index.d.cts +0 -30
  308. package/lib/download/npm/index.d.mts +0 -30
  309. package/lib/download/npm/index.mjs +0 -83
  310. package/lib/download/npm/types.cjs +0 -2
  311. package/lib/download/npm/types.d.cts +0 -9
  312. package/lib/download/npm/types.d.mts +0 -9
  313. package/lib/download/npm/types.mjs +0 -1
  314. package/lib/download/npm/version.cjs +0 -29
  315. package/lib/download/npm/version.d.cts +0 -16
  316. package/lib/download/npm/version.d.mts +0 -16
  317. package/lib/download/npm/version.mjs +0 -26
  318. package/lib/download/types/modified.cjs +0 -2
  319. package/lib/download/types/modified.d.cts +0 -6
  320. package/lib/download/types/modified.d.mts +0 -6
  321. package/lib/download/types/modified.mjs +0 -1
  322. package/lib/download/types/sources.cjs +0 -2
  323. package/lib/download/types/sources.d.cts +0 -12
  324. package/lib/download/types/sources.d.mts +0 -12
  325. package/lib/download/types/sources.mjs +0 -1
  326. package/lib/export/directory.cjs +0 -43
  327. package/lib/export/directory.d.cts +0 -26
  328. package/lib/export/directory.d.mts +0 -26
  329. package/lib/export/directory.mjs +0 -41
  330. package/lib/export/helpers/custom-files.cjs +0 -26
  331. package/lib/export/helpers/custom-files.d.cts +0 -12
  332. package/lib/export/helpers/custom-files.d.mts +0 -12
  333. package/lib/export/helpers/custom-files.mjs +0 -24
  334. package/lib/export/helpers/prepare.cjs +0 -34
  335. package/lib/export/helpers/prepare.d.cts +0 -19
  336. package/lib/export/helpers/prepare.d.mts +0 -19
  337. package/lib/export/helpers/prepare.mjs +0 -31
  338. package/lib/export/helpers/types-version.cjs +0 -12
  339. package/lib/export/helpers/types-version.d.cts +0 -6
  340. package/lib/export/helpers/types-version.d.mts +0 -6
  341. package/lib/export/helpers/types-version.mjs +0 -10
  342. package/lib/export/icon-package.cjs +0 -56
  343. package/lib/export/icon-package.d.cts +0 -26
  344. package/lib/export/icon-package.d.mts +0 -26
  345. package/lib/export/icon-package.mjs +0 -54
  346. package/lib/export/json-package.cjs +0 -144
  347. package/lib/export/json-package.d.cts +0 -25
  348. package/lib/export/json-package.d.mts +0 -25
  349. package/lib/export/json-package.mjs +0 -142
  350. package/lib/icon-set/index.cjs +0 -720
  351. package/lib/icon-set/index.d.cts +0 -162
  352. package/lib/icon-set/index.d.mts +0 -162
  353. package/lib/icon-set/index.mjs +0 -716
  354. package/lib/icon-set/match.cjs +0 -56
  355. package/lib/icon-set/match.d.cts +0 -15
  356. package/lib/icon-set/match.d.mts +0 -15
  357. package/lib/icon-set/match.mjs +0 -54
  358. package/lib/icon-set/merge.cjs +0 -87
  359. package/lib/icon-set/merge.d.cts +0 -14
  360. package/lib/icon-set/merge.d.mts +0 -14
  361. package/lib/icon-set/merge.mjs +0 -85
  362. package/lib/icon-set/modified.cjs +0 -25
  363. package/lib/icon-set/modified.d.cts +0 -16
  364. package/lib/icon-set/modified.d.mts +0 -16
  365. package/lib/icon-set/modified.mjs +0 -23
  366. package/lib/icon-set/props.cjs +0 -16
  367. package/lib/icon-set/props.d.cts +0 -13
  368. package/lib/icon-set/props.d.mts +0 -13
  369. package/lib/icon-set/props.mjs +0 -13
  370. package/lib/icon-set/tags.cjs +0 -95
  371. package/lib/icon-set/tags.d.cts +0 -25
  372. package/lib/icon-set/tags.d.mts +0 -25
  373. package/lib/icon-set/tags.mjs +0 -91
  374. package/lib/icon-set/types.cjs +0 -2
  375. package/lib/icon-set/types.d.cts +0 -75
  376. package/lib/icon-set/types.d.mts +0 -75
  377. package/lib/icon-set/types.mjs +0 -1
  378. package/lib/import/directory.cjs +0 -169
  379. package/lib/import/directory.d.cts +0 -52
  380. package/lib/import/directory.d.mts +0 -52
  381. package/lib/import/directory.mjs +0 -166
  382. package/lib/import/figma/index.cjs +0 -115
  383. package/lib/import/figma/index.d.cts +0 -20
  384. package/lib/import/figma/index.d.mts +0 -20
  385. package/lib/import/figma/index.mjs +0 -113
  386. package/lib/import/figma/nodes.cjs +0 -90
  387. package/lib/import/figma/nodes.d.cts +0 -18
  388. package/lib/import/figma/nodes.d.mts +0 -18
  389. package/lib/import/figma/nodes.mjs +0 -88
  390. package/lib/import/figma/query.cjs +0 -260
  391. package/lib/import/figma/query.d.cts +0 -42
  392. package/lib/import/figma/query.d.mts +0 -42
  393. package/lib/import/figma/query.mjs +0 -256
  394. package/lib/import/figma/types/api.cjs +0 -2
  395. package/lib/import/figma/types/api.d.cts +0 -53
  396. package/lib/import/figma/types/api.d.mts +0 -53
  397. package/lib/import/figma/types/api.mjs +0 -1
  398. package/lib/import/figma/types/nodes.cjs +0 -2
  399. package/lib/import/figma/types/nodes.d.cts +0 -44
  400. package/lib/import/figma/types/nodes.d.mts +0 -44
  401. package/lib/import/figma/types/nodes.mjs +0 -1
  402. package/lib/import/figma/types/options.cjs +0 -2
  403. package/lib/import/figma/types/options.d.cts +0 -59
  404. package/lib/import/figma/types/options.d.mts +0 -59
  405. package/lib/import/figma/types/options.mjs +0 -1
  406. package/lib/import/figma/types/result.cjs +0 -2
  407. package/lib/import/figma/types/result.d.cts +0 -44
  408. package/lib/import/figma/types/result.d.mts +0 -44
  409. package/lib/import/figma/types/result.mjs +0 -1
  410. package/lib/index.cjs +0 -157
  411. package/lib/index.d.cts +0 -80
  412. package/lib/index.d.mts +0 -80
  413. package/lib/index.mjs +0 -91
  414. package/lib/misc/bump-version.cjs +0 -15
  415. package/lib/misc/bump-version.d.cts +0 -6
  416. package/lib/misc/bump-version.d.mts +0 -6
  417. package/lib/misc/bump-version.mjs +0 -13
  418. package/lib/misc/cheerio.cjs +0 -2
  419. package/lib/misc/cheerio.d.cts +0 -10
  420. package/lib/misc/cheerio.d.mts +0 -10
  421. package/lib/misc/cheerio.d.ts +0 -10
  422. package/lib/misc/cheerio.mjs +0 -1
  423. package/lib/misc/compare-dirs.cjs +0 -75
  424. package/lib/misc/compare-dirs.d.cts +0 -11
  425. package/lib/misc/compare-dirs.d.mts +0 -11
  426. package/lib/misc/compare-dirs.mjs +0 -73
  427. package/lib/misc/exec.cjs +0 -27
  428. package/lib/misc/exec.d.cts +0 -12
  429. package/lib/misc/exec.d.mts +0 -12
  430. package/lib/misc/exec.mjs +0 -25
  431. package/lib/misc/keyword.cjs +0 -20
  432. package/lib/misc/keyword.d.cts +0 -6
  433. package/lib/misc/keyword.d.mts +0 -6
  434. package/lib/misc/keyword.mjs +0 -18
  435. package/lib/misc/scan.cjs +0 -114
  436. package/lib/misc/scan.d.cts +0 -33
  437. package/lib/misc/scan.d.mts +0 -33
  438. package/lib/misc/scan.mjs +0 -111
  439. package/lib/misc/write-json.cjs +0 -9
  440. package/lib/misc/write-json.d.cts +0 -6
  441. package/lib/misc/write-json.d.mts +0 -6
  442. package/lib/misc/write-json.mjs +0 -7
  443. package/lib/optimise/figma.cjs +0 -232
  444. package/lib/optimise/figma.d.cts +0 -14
  445. package/lib/optimise/figma.d.mts +0 -14
  446. package/lib/optimise/figma.mjs +0 -230
  447. package/lib/optimise/flags.cjs +0 -256
  448. package/lib/optimise/flags.d.cts +0 -11
  449. package/lib/optimise/flags.d.mts +0 -11
  450. package/lib/optimise/flags.mjs +0 -254
  451. package/lib/optimise/global-style.cjs +0 -158
  452. package/lib/optimise/global-style.d.cts +0 -11
  453. package/lib/optimise/global-style.d.mts +0 -11
  454. package/lib/optimise/global-style.mjs +0 -156
  455. package/lib/optimise/mask.cjs +0 -110
  456. package/lib/optimise/mask.d.cts +0 -24
  457. package/lib/optimise/mask.d.mts +0 -24
  458. package/lib/optimise/mask.mjs +0 -108
  459. package/lib/optimise/origin.cjs +0 -23
  460. package/lib/optimise/origin.d.cts +0 -11
  461. package/lib/optimise/origin.d.mts +0 -11
  462. package/lib/optimise/origin.mjs +0 -21
  463. package/lib/optimise/scale.cjs +0 -27
  464. package/lib/optimise/scale.d.cts +0 -11
  465. package/lib/optimise/scale.d.mts +0 -11
  466. package/lib/optimise/scale.mjs +0 -25
  467. package/lib/optimise/svgo.cjs +0 -107
  468. package/lib/optimise/svgo.d.cts +0 -37
  469. package/lib/optimise/svgo.d.mts +0 -37
  470. package/lib/optimise/svgo.mjs +0 -104
  471. package/lib/optimise/unwrap.cjs +0 -31
  472. package/lib/optimise/unwrap.d.cts +0 -11
  473. package/lib/optimise/unwrap.d.mts +0 -11
  474. package/lib/optimise/unwrap.mjs +0 -29
  475. package/lib/svg/analyse/error.cjs +0 -16
  476. package/lib/svg/analyse/error.d.cts +0 -11
  477. package/lib/svg/analyse/error.d.mts +0 -11
  478. package/lib/svg/analyse/error.mjs +0 -14
  479. package/lib/svg/analyse/types.cjs +0 -2
  480. package/lib/svg/analyse/types.d.cts +0 -93
  481. package/lib/svg/analyse/types.d.mts +0 -93
  482. package/lib/svg/analyse/types.mjs +0 -1
  483. package/lib/svg/analyse.cjs +0 -303
  484. package/lib/svg/analyse.d.cts +0 -16
  485. package/lib/svg/analyse.d.mts +0 -16
  486. package/lib/svg/analyse.mjs +0 -301
  487. package/lib/svg/cleanup/attribs.cjs +0 -39
  488. package/lib/svg/cleanup/attribs.d.cts +0 -11
  489. package/lib/svg/cleanup/attribs.d.mts +0 -11
  490. package/lib/svg/cleanup/attribs.mjs +0 -37
  491. package/lib/svg/cleanup/bad-tags.cjs +0 -69
  492. package/lib/svg/cleanup/bad-tags.d.cts +0 -17
  493. package/lib/svg/cleanup/bad-tags.d.mts +0 -17
  494. package/lib/svg/cleanup/bad-tags.mjs +0 -67
  495. package/lib/svg/cleanup/inline-style.cjs +0 -97
  496. package/lib/svg/cleanup/inline-style.d.cts +0 -11
  497. package/lib/svg/cleanup/inline-style.d.mts +0 -11
  498. package/lib/svg/cleanup/inline-style.mjs +0 -95
  499. package/lib/svg/cleanup/root-style.cjs +0 -34
  500. package/lib/svg/cleanup/root-style.d.cts +0 -17
  501. package/lib/svg/cleanup/root-style.d.mts +0 -17
  502. package/lib/svg/cleanup/root-style.mjs +0 -32
  503. package/lib/svg/cleanup/root-svg.cjs +0 -84
  504. package/lib/svg/cleanup/root-svg.d.cts +0 -11
  505. package/lib/svg/cleanup/root-svg.d.mts +0 -11
  506. package/lib/svg/cleanup/root-svg.mjs +0 -82
  507. package/lib/svg/cleanup/svgo-style.cjs +0 -43
  508. package/lib/svg/cleanup/svgo-style.d.cts +0 -11
  509. package/lib/svg/cleanup/svgo-style.d.mts +0 -11
  510. package/lib/svg/cleanup/svgo-style.mjs +0 -41
  511. package/lib/svg/cleanup.cjs +0 -33
  512. package/lib/svg/cleanup.d.cts +0 -16
  513. package/lib/svg/cleanup.d.mts +0 -16
  514. package/lib/svg/cleanup.mjs +0 -31
  515. package/lib/svg/data/attributes.cjs +0 -373
  516. package/lib/svg/data/attributes.d.cts +0 -77
  517. package/lib/svg/data/attributes.d.mts +0 -77
  518. package/lib/svg/data/attributes.mjs +0 -346
  519. package/lib/svg/data/tags.cjs +0 -141
  520. package/lib/svg/data/tags.d.cts +0 -95
  521. package/lib/svg/data/tags.d.mts +0 -95
  522. package/lib/svg/data/tags.mjs +0 -117
  523. package/lib/svg/index.cjs +0 -178
  524. package/lib/svg/index.d.cts +0 -52
  525. package/lib/svg/index.d.mts +0 -52
  526. package/lib/svg/index.mjs +0 -162
  527. package/lib/svg/parse-style.cjs +0 -243
  528. package/lib/svg/parse-style.d.cts +0 -59
  529. package/lib/svg/parse-style.d.mts +0 -59
  530. package/lib/svg/parse-style.mjs +0 -241
  531. package/lib/svg/parse.cjs +0 -46
  532. package/lib/svg/parse.d.cts +0 -31
  533. package/lib/svg/parse.d.mts +0 -31
  534. package/lib/svg/parse.mjs +0 -44
package/lib/misc/scan.mjs DELETED
@@ -1,111 +0,0 @@
1
- import { promises, readdirSync, statSync } from 'fs';
2
-
3
- function cleanPath(path) {
4
- if (path.length && path.slice(-1) !== "/") {
5
- return path + "/";
6
- }
7
- return path;
8
- }
9
- function isHidden(filename) {
10
- return filename.slice(0, 1) === ".";
11
- }
12
- function split(filename) {
13
- const parts = filename.split(".");
14
- const ext = parts.length > 1 ? "." + parts.pop() : "";
15
- const file = parts.join(".");
16
- return { ext, file };
17
- }
18
- function isIgnoredResult(result) {
19
- return result === void 0 || result === false || result === null;
20
- }
21
- async function scanDirectory(path, callback, subdirs = true) {
22
- const results = [];
23
- path = cleanPath(path);
24
- async function scan(subdir) {
25
- const files = await promises.readdir(path + subdir);
26
- for (let i = 0; i < files.length; i++) {
27
- const filename = files[i];
28
- if (isHidden(filename)) {
29
- continue;
30
- }
31
- let stat;
32
- try {
33
- stat = await promises.stat(path + subdir + filename);
34
- } catch {
35
- continue;
36
- }
37
- if (stat.isDirectory()) {
38
- if (subdirs) {
39
- await scan(subdir + filename + "/");
40
- }
41
- continue;
42
- }
43
- if (!stat.isFile()) {
44
- continue;
45
- }
46
- const { ext, file } = split(filename);
47
- let callbackResult;
48
- if (callback) {
49
- callbackResult = callback(ext, file, subdir, path, stat);
50
- if (callbackResult instanceof Promise) {
51
- callbackResult = await callbackResult;
52
- }
53
- if (isIgnoredResult(callbackResult)) {
54
- continue;
55
- }
56
- } else {
57
- callbackResult = true;
58
- }
59
- results.push(
60
- callbackResult === true ? subdir + filename : callbackResult
61
- );
62
- }
63
- }
64
- await scan("");
65
- return results;
66
- }
67
- function scanDirectorySync(path, callback, subdirs = true) {
68
- const results = [];
69
- path = cleanPath(path);
70
- function scan(subdir) {
71
- const files = readdirSync(path + subdir);
72
- for (let i = 0; i < files.length; i++) {
73
- const filename = files[i];
74
- if (isHidden(filename)) {
75
- continue;
76
- }
77
- let stat;
78
- try {
79
- stat = statSync(path + subdir + filename);
80
- } catch {
81
- continue;
82
- }
83
- if (stat.isDirectory()) {
84
- if (subdirs) {
85
- scan(subdir + filename + "/");
86
- }
87
- continue;
88
- }
89
- if (!stat.isFile()) {
90
- continue;
91
- }
92
- const { ext, file } = split(filename);
93
- let callbackResult;
94
- if (callback) {
95
- callbackResult = callback(ext, file, subdir, path, stat);
96
- if (isIgnoredResult(callbackResult)) {
97
- continue;
98
- }
99
- } else {
100
- callbackResult = true;
101
- }
102
- results.push(
103
- callbackResult === true ? subdir + filename : callbackResult
104
- );
105
- }
106
- }
107
- scan("");
108
- return results;
109
- }
110
-
111
- export { scanDirectory, scanDirectorySync };
@@ -1,9 +0,0 @@
1
- 'use strict';
2
-
3
- const fs = require('fs');
4
-
5
- async function writeJSONFile(filename, data) {
6
- return fs.promises.writeFile(filename, JSON.stringify(data, null, " ") + "\n");
7
- }
8
-
9
- exports.writeJSONFile = writeJSONFile;
@@ -1,6 +0,0 @@
1
- /**
2
- * Write JSON file
3
- */
4
- declare function writeJSONFile(filename: string, data: unknown): Promise<void>;
5
-
6
- export { writeJSONFile };
@@ -1,6 +0,0 @@
1
- /**
2
- * Write JSON file
3
- */
4
- declare function writeJSONFile(filename: string, data: unknown): Promise<void>;
5
-
6
- export { writeJSONFile };
@@ -1,7 +0,0 @@
1
- import { promises } from 'fs';
2
-
3
- async function writeJSONFile(filename, data) {
4
- return promises.writeFile(filename, JSON.stringify(data, null, " ") + "\n");
5
- }
6
-
7
- export { writeJSONFile };
@@ -1,232 +0,0 @@
1
- 'use strict';
2
-
3
- const utils = require('@iconify/utils');
4
- const svg_cleanup_inlineStyle = require('../svg/cleanup/inline-style.cjs');
5
- const svg_data_tags = require('../svg/data/tags.cjs');
6
- const svg_parse = require('../svg/parse.cjs');
7
- const optimise_unwrap = require('./unwrap.cjs');
8
- require('../css/parse.cjs');
9
- require('../css/parser/tokens.cjs');
10
- require('../css/parser/error.cjs');
11
- require('../css/parser/strings.cjs');
12
- require('../css/parser/text.cjs');
13
- require('../svg/data/attributes.cjs');
14
-
15
- function isTinyNumber(value, limit) {
16
- const num = parseInt(value);
17
- return !isNaN(num) && Math.abs(num) < limit;
18
- }
19
- function checkClipPathNode(clipNode, expectedWidth, expectedHeight) {
20
- for (const attr in clipNode.attribs) {
21
- if (attr !== "id") {
22
- return false;
23
- }
24
- }
25
- const children = clipNode.children.filter((node) => node.type !== "text");
26
- if (children.length !== 1) {
27
- return false;
28
- }
29
- const childNode = children[0];
30
- if (childNode.type !== "tag" || childNode.children.length) {
31
- return false;
32
- }
33
- const attribs = {
34
- ...childNode.attribs
35
- };
36
- delete attribs["fill"];
37
- const fill = childNode.attribs["fill"];
38
- const colorValue = fill ? utils.stringToColor(fill) : null;
39
- const colorString = colorValue ? utils.colorToString(colorValue) : null;
40
- if (fill && colorString !== "#fff") {
41
- console.warn(
42
- "Unxepected fill on clip path:",
43
- childNode.attribs["fill"]
44
- );
45
- return false;
46
- }
47
- switch (childNode.tagName) {
48
- case "rect": {
49
- const width = parseInt(childNode.attribs["width"]);
50
- const height = parseInt(childNode.attribs["height"]);
51
- if (width !== expectedWidth || height !== expectedHeight) {
52
- console.warn("Invalid size of clip path");
53
- return false;
54
- }
55
- delete attribs["width"];
56
- delete attribs["height"];
57
- break;
58
- }
59
- default:
60
- console.warn(
61
- "Unexpected tag in Figma clip path:",
62
- childNode.tagName
63
- );
64
- return false;
65
- }
66
- Object.keys(attribs).forEach((attr) => {
67
- const value = attribs[attr];
68
- switch (attr) {
69
- case "transform": {
70
- const translateStart = "translate(";
71
- const translateEnd = ")";
72
- if (value.startsWith(translateStart) && value.endsWith(translateEnd)) {
73
- const translateParts = value.slice(translateStart.length, 0 - translateEnd.length).split(/\s+/);
74
- const limit = Math.min(expectedWidth, expectedHeight) / 1e3;
75
- if (translateParts.length === 2 && isTinyNumber(translateParts[0], limit) && isTinyNumber(translateParts[1], limit)) {
76
- delete attribs[attr];
77
- }
78
- }
79
- }
80
- }
81
- });
82
- return {
83
- node: clipNode,
84
- attribs
85
- };
86
- }
87
- const urlStart = "url(#";
88
- const urlEnd = ")";
89
- function remove(svg) {
90
- optimise_unwrap.unwrapEmptyGroup(svg);
91
- let content = svg.toString();
92
- const backup = content;
93
- const isPenpot = content.includes("frame-clip-def");
94
- if (isPenpot) {
95
- svg_cleanup_inlineStyle.cleanupInlineStyle(svg);
96
- svg_parse.parseSVG(svg, (item) => {
97
- const tagName = item.tagName;
98
- for (const attr in item.element.attribs) {
99
- const value = item.element.attribs[attr];
100
- switch (attr) {
101
- case "id":
102
- if (!svg_data_tags.maskTags.has(tagName) && !svg_data_tags.symbolTag.has(tagName)) {
103
- item.$element.removeAttr(attr);
104
- }
105
- break;
106
- case "class":
107
- case "xmlns:xlink":
108
- case "version":
109
- item.$element.removeAttr(attr);
110
- break;
111
- case "transform": {
112
- const trimmed = value.replace(/\s+/g, "").replace(/\.0+/g, "");
113
- if (!trimmed || trimmed === "matrix(1,0,0,1,0,0)") {
114
- item.$element.removeAttr(attr);
115
- }
116
- break;
117
- }
118
- case "rx":
119
- case "ry":
120
- case "x":
121
- case "y":
122
- if (value === "0") {
123
- item.$element.removeAttr(attr);
124
- }
125
- break;
126
- case "fill-opacity":
127
- case "stroke-opacity":
128
- case "opacity":
129
- if (value === "1") {
130
- item.$element.removeAttr(attr);
131
- }
132
- break;
133
- case "fill":
134
- case "stroke": {
135
- const colorValue = utils.stringToColor(value);
136
- if (colorValue?.type === "rgb") {
137
- item.$element.attr(attr, utils.colorToString(colorValue));
138
- }
139
- }
140
- }
141
- }
142
- });
143
- content = svg.toString();
144
- }
145
- const clipPathBlocks = content.match(
146
- /<clipPath[^>]*>[\s\S]+?<\/clipPath>/g
147
- );
148
- if (clipPathBlocks?.length === 2 && clipPathBlocks[0] === clipPathBlocks[1]) {
149
- const split = clipPathBlocks[0];
150
- const lines = content.split(split);
151
- content = lines.shift() + split + lines.join("");
152
- }
153
- if (content.includes("<defs>")) {
154
- content = content.replace(/<\/?defs>/g, "");
155
- }
156
- if (content !== backup) {
157
- svg.load(content);
158
- }
159
- const cheerio = svg.$svg;
160
- const $root = svg.$svg(":root");
161
- const children = $root.children();
162
- const shapesToClip = [];
163
- let clipID;
164
- for (let i = 0; i < children.length; i++) {
165
- const node = children[i];
166
- if (node.type === "tag") {
167
- const tagName = node.tagName;
168
- if (!svg_data_tags.defsTag.has(tagName) && !svg_data_tags.maskTags.has(tagName) && !svg_data_tags.symbolTag.has(tagName)) {
169
- const clipPath2 = node.attribs["clip-path"];
170
- if (!clipPath2 || !clipPath2.startsWith(urlStart) || !clipPath2.endsWith(urlEnd)) {
171
- return false;
172
- }
173
- const id = clipPath2.slice(urlStart.length, 0 - urlEnd.length);
174
- if (typeof clipID === "string" && clipID !== id) {
175
- return false;
176
- }
177
- clipID = id;
178
- shapesToClip.push(node);
179
- }
180
- }
181
- }
182
- if (typeof clipID !== "string") {
183
- return false;
184
- }
185
- const findClipPath = () => {
186
- for (let i = 0; i < children.length; i++) {
187
- const node = children[i];
188
- if (node.type === "tag" && node.tagName === "clipPath") {
189
- const id = node.attribs["id"];
190
- if (id === clipID) {
191
- const result = checkClipPathNode(
192
- node,
193
- svg.viewBox.width,
194
- svg.viewBox.height
195
- );
196
- cheerio(node).remove();
197
- return result;
198
- }
199
- return;
200
- }
201
- }
202
- };
203
- const clipPath = findClipPath();
204
- if (!clipPath) {
205
- return false;
206
- }
207
- const attribs = clipPath.attribs;
208
- for (let i = 0; i < shapesToClip.length; i++) {
209
- const node = shapesToClip[i];
210
- cheerio(node).removeAttr("clip-path");
211
- for (const attr in attribs) {
212
- if (node.attribs[attr] !== void 0) {
213
- return false;
214
- }
215
- cheerio(node).attr(attr, attribs[attr]);
216
- }
217
- }
218
- return true;
219
- }
220
- function removeFigmaClipPathFromSVG(svg) {
221
- const backup = svg.toString();
222
- try {
223
- if (remove(svg)) {
224
- return true;
225
- }
226
- } catch {
227
- }
228
- svg.load(backup);
229
- return false;
230
- }
231
-
232
- exports.removeFigmaClipPathFromSVG = removeFigmaClipPathFromSVG;
@@ -1,14 +0,0 @@
1
- import { SVG } from '../svg/index.cjs';
2
- import 'cheerio';
3
- import '@iconify/types';
4
- import '@iconify/utils/lib/customisations/defaults';
5
-
6
- /**
7
- * Removes clip path from SVG, which Figma and Penpot add to icons that might have overflowing elements.
8
- * Also removes mess generated by Penpot
9
- *
10
- * Function was originally designed for Figma only, but later added support for Penpot
11
- */
12
- declare function removeFigmaClipPathFromSVG(svg: SVG): boolean;
13
-
14
- export { removeFigmaClipPathFromSVG };
@@ -1,14 +0,0 @@
1
- import { SVG } from '../svg/index.mjs';
2
- import 'cheerio';
3
- import '@iconify/types';
4
- import '@iconify/utils/lib/customisations/defaults';
5
-
6
- /**
7
- * Removes clip path from SVG, which Figma and Penpot add to icons that might have overflowing elements.
8
- * Also removes mess generated by Penpot
9
- *
10
- * Function was originally designed for Figma only, but later added support for Penpot
11
- */
12
- declare function removeFigmaClipPathFromSVG(svg: SVG): boolean;
13
-
14
- export { removeFigmaClipPathFromSVG };
@@ -1,230 +0,0 @@
1
- import { stringToColor, colorToString } from '@iconify/utils';
2
- import { cleanupInlineStyle } from '../svg/cleanup/inline-style.mjs';
3
- import { maskTags, symbolTag, defsTag } from '../svg/data/tags.mjs';
4
- import { parseSVG } from '../svg/parse.mjs';
5
- import { unwrapEmptyGroup } from './unwrap.mjs';
6
- import '../css/parse.mjs';
7
- import '../css/parser/tokens.mjs';
8
- import '../css/parser/error.mjs';
9
- import '../css/parser/strings.mjs';
10
- import '../css/parser/text.mjs';
11
- import '../svg/data/attributes.mjs';
12
-
13
- function isTinyNumber(value, limit) {
14
- const num = parseInt(value);
15
- return !isNaN(num) && Math.abs(num) < limit;
16
- }
17
- function checkClipPathNode(clipNode, expectedWidth, expectedHeight) {
18
- for (const attr in clipNode.attribs) {
19
- if (attr !== "id") {
20
- return false;
21
- }
22
- }
23
- const children = clipNode.children.filter((node) => node.type !== "text");
24
- if (children.length !== 1) {
25
- return false;
26
- }
27
- const childNode = children[0];
28
- if (childNode.type !== "tag" || childNode.children.length) {
29
- return false;
30
- }
31
- const attribs = {
32
- ...childNode.attribs
33
- };
34
- delete attribs["fill"];
35
- const fill = childNode.attribs["fill"];
36
- const colorValue = fill ? stringToColor(fill) : null;
37
- const colorString = colorValue ? colorToString(colorValue) : null;
38
- if (fill && colorString !== "#fff") {
39
- console.warn(
40
- "Unxepected fill on clip path:",
41
- childNode.attribs["fill"]
42
- );
43
- return false;
44
- }
45
- switch (childNode.tagName) {
46
- case "rect": {
47
- const width = parseInt(childNode.attribs["width"]);
48
- const height = parseInt(childNode.attribs["height"]);
49
- if (width !== expectedWidth || height !== expectedHeight) {
50
- console.warn("Invalid size of clip path");
51
- return false;
52
- }
53
- delete attribs["width"];
54
- delete attribs["height"];
55
- break;
56
- }
57
- default:
58
- console.warn(
59
- "Unexpected tag in Figma clip path:",
60
- childNode.tagName
61
- );
62
- return false;
63
- }
64
- Object.keys(attribs).forEach((attr) => {
65
- const value = attribs[attr];
66
- switch (attr) {
67
- case "transform": {
68
- const translateStart = "translate(";
69
- const translateEnd = ")";
70
- if (value.startsWith(translateStart) && value.endsWith(translateEnd)) {
71
- const translateParts = value.slice(translateStart.length, 0 - translateEnd.length).split(/\s+/);
72
- const limit = Math.min(expectedWidth, expectedHeight) / 1e3;
73
- if (translateParts.length === 2 && isTinyNumber(translateParts[0], limit) && isTinyNumber(translateParts[1], limit)) {
74
- delete attribs[attr];
75
- }
76
- }
77
- }
78
- }
79
- });
80
- return {
81
- node: clipNode,
82
- attribs
83
- };
84
- }
85
- const urlStart = "url(#";
86
- const urlEnd = ")";
87
- function remove(svg) {
88
- unwrapEmptyGroup(svg);
89
- let content = svg.toString();
90
- const backup = content;
91
- const isPenpot = content.includes("frame-clip-def");
92
- if (isPenpot) {
93
- cleanupInlineStyle(svg);
94
- parseSVG(svg, (item) => {
95
- const tagName = item.tagName;
96
- for (const attr in item.element.attribs) {
97
- const value = item.element.attribs[attr];
98
- switch (attr) {
99
- case "id":
100
- if (!maskTags.has(tagName) && !symbolTag.has(tagName)) {
101
- item.$element.removeAttr(attr);
102
- }
103
- break;
104
- case "class":
105
- case "xmlns:xlink":
106
- case "version":
107
- item.$element.removeAttr(attr);
108
- break;
109
- case "transform": {
110
- const trimmed = value.replace(/\s+/g, "").replace(/\.0+/g, "");
111
- if (!trimmed || trimmed === "matrix(1,0,0,1,0,0)") {
112
- item.$element.removeAttr(attr);
113
- }
114
- break;
115
- }
116
- case "rx":
117
- case "ry":
118
- case "x":
119
- case "y":
120
- if (value === "0") {
121
- item.$element.removeAttr(attr);
122
- }
123
- break;
124
- case "fill-opacity":
125
- case "stroke-opacity":
126
- case "opacity":
127
- if (value === "1") {
128
- item.$element.removeAttr(attr);
129
- }
130
- break;
131
- case "fill":
132
- case "stroke": {
133
- const colorValue = stringToColor(value);
134
- if (colorValue?.type === "rgb") {
135
- item.$element.attr(attr, colorToString(colorValue));
136
- }
137
- }
138
- }
139
- }
140
- });
141
- content = svg.toString();
142
- }
143
- const clipPathBlocks = content.match(
144
- /<clipPath[^>]*>[\s\S]+?<\/clipPath>/g
145
- );
146
- if (clipPathBlocks?.length === 2 && clipPathBlocks[0] === clipPathBlocks[1]) {
147
- const split = clipPathBlocks[0];
148
- const lines = content.split(split);
149
- content = lines.shift() + split + lines.join("");
150
- }
151
- if (content.includes("<defs>")) {
152
- content = content.replace(/<\/?defs>/g, "");
153
- }
154
- if (content !== backup) {
155
- svg.load(content);
156
- }
157
- const cheerio = svg.$svg;
158
- const $root = svg.$svg(":root");
159
- const children = $root.children();
160
- const shapesToClip = [];
161
- let clipID;
162
- for (let i = 0; i < children.length; i++) {
163
- const node = children[i];
164
- if (node.type === "tag") {
165
- const tagName = node.tagName;
166
- if (!defsTag.has(tagName) && !maskTags.has(tagName) && !symbolTag.has(tagName)) {
167
- const clipPath2 = node.attribs["clip-path"];
168
- if (!clipPath2 || !clipPath2.startsWith(urlStart) || !clipPath2.endsWith(urlEnd)) {
169
- return false;
170
- }
171
- const id = clipPath2.slice(urlStart.length, 0 - urlEnd.length);
172
- if (typeof clipID === "string" && clipID !== id) {
173
- return false;
174
- }
175
- clipID = id;
176
- shapesToClip.push(node);
177
- }
178
- }
179
- }
180
- if (typeof clipID !== "string") {
181
- return false;
182
- }
183
- const findClipPath = () => {
184
- for (let i = 0; i < children.length; i++) {
185
- const node = children[i];
186
- if (node.type === "tag" && node.tagName === "clipPath") {
187
- const id = node.attribs["id"];
188
- if (id === clipID) {
189
- const result = checkClipPathNode(
190
- node,
191
- svg.viewBox.width,
192
- svg.viewBox.height
193
- );
194
- cheerio(node).remove();
195
- return result;
196
- }
197
- return;
198
- }
199
- }
200
- };
201
- const clipPath = findClipPath();
202
- if (!clipPath) {
203
- return false;
204
- }
205
- const attribs = clipPath.attribs;
206
- for (let i = 0; i < shapesToClip.length; i++) {
207
- const node = shapesToClip[i];
208
- cheerio(node).removeAttr("clip-path");
209
- for (const attr in attribs) {
210
- if (node.attribs[attr] !== void 0) {
211
- return false;
212
- }
213
- cheerio(node).attr(attr, attribs[attr]);
214
- }
215
- }
216
- return true;
217
- }
218
- function removeFigmaClipPathFromSVG(svg) {
219
- const backup = svg.toString();
220
- try {
221
- if (remove(svg)) {
222
- return true;
223
- }
224
- } catch {
225
- }
226
- svg.load(backup);
227
- return false;
228
- }
229
-
230
- export { removeFigmaClipPathFromSVG };