@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
@@ -1,5 +1,4 @@
1
- import { Color } from '@iconify/utils/lib/colors/types';
2
-
1
+ import { Color } from "@iconify/utils/lib/colors/types";
3
2
  /**
4
3
  * Color attributes
5
4
  */
@@ -23,5 +22,4 @@ declare const defaultColorValues: Record<ColorAttributes, Color>;
23
22
  * Parent elements are not checked for these tags!
24
23
  */
25
24
  declare const allowDefaultColorValue: Partial<Record<ColorAttributes, string | true>>;
26
-
27
- export { type ColorAttributes, type CommonColorAttributes, type ShapeColorAttributes, type SpecialColorAttributes, allowDefaultColorValue, commonColorAttributes, defaultBlackColor, defaultColorValues, shapeColorAttributes, specialColorAttributes };
25
+ export { ColorAttributes, CommonColorAttributes, ShapeColorAttributes, SpecialColorAttributes, allowDefaultColorValue, commonColorAttributes, defaultBlackColor, defaultColorValues, shapeColorAttributes, specialColorAttributes };
@@ -0,0 +1,33 @@
1
+ const commonColorAttributes = ["color"];
2
+ const shapeColorAttributes = ["fill", "stroke"];
3
+ const specialColorAttributes = ["stop-color", "flood-color"];
4
+ /**
5
+ * Default values
6
+ */
7
+ const defaultBlackColor = {
8
+ type: "rgb",
9
+ r: 0,
10
+ g: 0,
11
+ b: 0,
12
+ alpha: 1
13
+ };
14
+ const defaultColorValues = {
15
+ "color": { type: "current" },
16
+ "fill": defaultBlackColor,
17
+ "stroke": { type: "none" },
18
+ "stop-color": defaultBlackColor,
19
+ "flood-color": defaultBlackColor
20
+ };
21
+ /**
22
+ * Ignore default color for some tags:
23
+ * - If value is true, allow default color
24
+ * - If value is attribute name, allow default color if attribute is set
25
+ *
26
+ * Parent elements are not checked for these tags!
27
+ */
28
+ const allowDefaultColorValue = {
29
+ "stop-color": true,
30
+ "flood-color": "flood-opacity"
31
+ };
32
+
33
+ export { allowDefaultColorValue, commonColorAttributes, defaultBlackColor, defaultColorValues, shapeColorAttributes, specialColorAttributes };
@@ -1,16 +1,8 @@
1
- import { IconSet } from '../icon-set/index.js';
2
- import '@iconify/types';
3
- import '@iconify/utils/lib/customisations/defaults';
4
- import '../icon-set/types.js';
5
- import '../svg/index.js';
6
- import 'cheerio';
7
- import '@iconify/utils/lib/icon-set/tree';
8
-
1
+ import { IconSet } from "../icon-set/index.js";
9
2
  /**
10
3
  * Detect palette
11
4
  *
12
5
  * Returns null if icon set has mixed colors
13
6
  */
14
7
  declare function detectIconSetPalette(iconSet: IconSet): boolean | null;
15
-
16
- export { detectIconSetPalette };
8
+ export { detectIconSetPalette };
@@ -0,0 +1,36 @@
1
+ import { isEmptyColor, parseColors } from "./parse.js";
2
+
3
+ /**
4
+ * Detect palette
5
+ *
6
+ * Returns null if icon set has mixed colors
7
+ */
8
+ function detectIconSetPalette(iconSet) {
9
+ let palette;
10
+ iconSet.forEachSync((name) => {
11
+ if (palette === null) return;
12
+ const svg = iconSet.toSVG(name);
13
+ if (!svg) return;
14
+ let iconPalette;
15
+ parseColors(svg, { callback: (attr, colorStr, color) => {
16
+ if (!color) {
17
+ iconPalette = null;
18
+ return colorStr;
19
+ }
20
+ if (iconPalette === null || isEmptyColor(color)) return color;
21
+ const isColor = color.type !== "current";
22
+ if (iconPalette === void 0) {
23
+ iconPalette = isColor;
24
+ return color;
25
+ }
26
+ if (iconPalette !== isColor) iconPalette = null;
27
+ return color;
28
+ } });
29
+ if (iconPalette === void 0) iconPalette = null;
30
+ if (palette === void 0) palette = iconPalette;
31
+ else if (palette !== iconPalette) palette = null;
32
+ }, ["icon"]);
33
+ return palette ?? null;
34
+ }
35
+
36
+ export { detectIconSetPalette };
@@ -1,20 +1,14 @@
1
- import { Color } from '@iconify/utils/lib/colors/types';
2
- import { SVG } from '../svg/index.js';
3
- import { ColorAttributes } from './attribs.js';
4
- import { ElementsTreeItem, AnalyseSVGStructureResult, AnalyseSVGStructureOptions, ExtendedTagElement } from '../svg/analyse/types.js';
5
- import 'cheerio';
6
- import '@iconify/types';
7
- import '@iconify/utils/lib/customisations/defaults';
8
- import '../misc/cheerio.js';
9
- import 'domhandler';
10
-
1
+ import { ColorAttributes } from "./attribs.js";
2
+ import { SVG } from "../svg/index.js";
3
+ import { AnalyseSVGStructureOptions, AnalyseSVGStructureResult, ElementsTreeItem, ExtendedTagElement } from "../svg/analyse/types.js";
4
+ import { Color } from "@iconify/utils/lib/colors/types";
11
5
  /**
12
6
  * Result
13
7
  */
14
8
  interface FindColorsResult {
15
- colors: (Color | string)[];
16
- hasUnsetColor: boolean;
17
- hasGlobalStyle: boolean;
9
+ colors: (Color | string)[];
10
+ hasUnsetColor: boolean;
11
+ hasGlobalStyle: boolean;
18
12
  }
19
13
  /**
20
14
  * Callback to call for each found color
@@ -35,16 +29,16 @@ type ParseColorOptionsDefaultColorCallback = (prop: string, item: ExtendedTagEle
35
29
  * Options
36
30
  */
37
31
  interface ParseColorsOptions extends AnalyseSVGStructureOptions {
38
- callback?: ParseColorsCallback;
39
- defaultColor?: Color | string | ParseColorOptionsDefaultColorCallback;
32
+ callback?: ParseColorsCallback;
33
+ defaultColor?: Color | string | ParseColorOptionsDefaultColorCallback;
40
34
  }
41
35
  /**
42
36
  * Extend properties for element
43
37
  */
44
38
  type ItemColors = Partial<Record<ColorAttributes, Color | string>>;
45
39
  interface ExtendedTagElementWithColors extends ExtendedTagElement {
46
- _colors?: ItemColors;
47
- _removed?: boolean;
40
+ _colors?: ItemColors;
41
+ _removed?: boolean;
48
42
  }
49
43
  /**
50
44
  * Find colors in icon
@@ -57,5 +51,4 @@ declare function parseColors(svg: SVG, options?: ParseColorsOptions): FindColors
57
51
  * Check if color is empty, such as 'none' or 'transparent'
58
52
  */
59
53
  declare function isEmptyColor(color: Color): boolean;
60
-
61
- export { type ExtendedTagElementWithColors, type FindColorsResult, type ParseColorOptionsDefaultColorCallback, type ParseColorsOptions, isEmptyColor, parseColors };
54
+ export { ExtendedTagElementWithColors, FindColorsResult, ParseColorOptionsDefaultColorCallback, ParseColorsOptions, isEmptyColor, parseColors };
@@ -0,0 +1,241 @@
1
+ import { parseSVGStyle } from "../svg/parse-style.js";
2
+ import { animateTags, shapeTags } from "../svg/data/tags.js";
3
+ import { tagSpecificPresentationalAttributes } from "../svg/data/attributes.js";
4
+ import { analyseSVGStructure } from "../svg/analyse.js";
5
+ import { allowDefaultColorValue, defaultBlackColor, defaultColorValues, shapeColorAttributes, specialColorAttributes } from "./attribs.js";
6
+ import { colorToString, compareColors, stringToColor } from "@iconify/utils/lib/colors";
7
+
8
+ /**
9
+ * Properties to check
10
+ */
11
+ const propsToCheck = Object.keys(defaultColorValues);
12
+ const animatePropsToCheck = [
13
+ "from",
14
+ "to",
15
+ "values"
16
+ ];
17
+ /**
18
+ * Find colors in icon
19
+ *
20
+ * Clean up icon before running this function to convert style to attributes using
21
+ * cleanupInlineStyle() or cleanupSVG(), otherwise results might be inaccurate
22
+ */
23
+ function parseColors(svg, options = {}) {
24
+ const result = {
25
+ colors: [],
26
+ hasUnsetColor: false,
27
+ hasGlobalStyle: false
28
+ };
29
+ const defaultColor = typeof options.defaultColor === "string" ? stringToColor(options.defaultColor) : options.defaultColor;
30
+ /**
31
+ * Find matching color in results
32
+ */
33
+ function findColor(color, add = false) {
34
+ const isString = typeof color === "string";
35
+ for (let i = 0; i < result.colors.length; i++) {
36
+ const item = result.colors[i];
37
+ if (item === color) return item;
38
+ if (!isString && typeof item !== "string" && compareColors(item, color)) return item;
39
+ }
40
+ if (add) {
41
+ result.colors.push(color);
42
+ return color;
43
+ }
44
+ return null;
45
+ }
46
+ /**
47
+ * Add color to item and to results
48
+ */
49
+ function addColorToItem(prop, color, item, add = true) {
50
+ const addedColor = findColor(color, add !== false);
51
+ if (item) {
52
+ const itemColors = item._colors || (item._colors = {});
53
+ itemColors[prop] = addedColor === null ? color : addedColor;
54
+ }
55
+ }
56
+ /**
57
+ * Get element color
58
+ */
59
+ function getElementColor(prop, item, elements$1) {
60
+ function find(prop$1) {
61
+ let currentItem = item;
62
+ const allowDefaultColor = allowDefaultColorValue[prop$1];
63
+ while (currentItem) {
64
+ const element = elements$1.get(currentItem.index);
65
+ const color = element._colors?.[prop$1];
66
+ if (color !== void 0) return color;
67
+ if (allowDefaultColor) {
68
+ if (allowDefaultColor === true || element.attribs[allowDefaultColor]) return null;
69
+ }
70
+ currentItem = currentItem.parent;
71
+ if (currentItem?.usedAsMask) return defaultColorValues[prop$1];
72
+ }
73
+ return defaultColorValues[prop$1];
74
+ }
75
+ let propColor = find(prop);
76
+ if (propColor !== null && typeof propColor === "object" && propColor.type === "current" && prop !== "color") propColor = find("color");
77
+ return propColor;
78
+ }
79
+ /**
80
+ * Change color
81
+ */
82
+ function checkColor(prop, value, item) {
83
+ switch (value.trim().toLowerCase()) {
84
+ case "":
85
+ case "inherit": return;
86
+ }
87
+ const parsedColor = stringToColor(value);
88
+ const defaultValue = parsedColor || value;
89
+ if (parsedColor?.type === "function" && parsedColor.func === "url") {
90
+ addColorToItem(prop, defaultValue, item, false);
91
+ return value;
92
+ }
93
+ if (!options.callback) {
94
+ addColorToItem(prop, defaultValue, item);
95
+ return value;
96
+ }
97
+ const callbackResult = options.callback(prop, value, parsedColor, item?.tag, item);
98
+ if (callbackResult instanceof Promise) throw new Error("parseColors does not support async callbacks");
99
+ switch (callbackResult) {
100
+ case "remove": return item ? callbackResult : void 0;
101
+ case "unset": return;
102
+ }
103
+ if (callbackResult === value || parsedColor && callbackResult === parsedColor) {
104
+ addColorToItem(prop, defaultValue, item);
105
+ return value;
106
+ }
107
+ if (typeof callbackResult === "string") {
108
+ addColorToItem(prop, stringToColor(callbackResult) || callbackResult, item);
109
+ return callbackResult;
110
+ }
111
+ const newValue = colorToString(callbackResult);
112
+ addColorToItem(prop, callbackResult, item);
113
+ return newValue;
114
+ }
115
+ parseSVGStyle(svg, (item) => {
116
+ const prop = item.prop;
117
+ const value = item.value;
118
+ if (!propsToCheck.includes(prop)) return value;
119
+ const newValue = checkColor(prop, value);
120
+ if (newValue === void 0) return newValue;
121
+ if (item.type === "global") result.hasGlobalStyle = true;
122
+ return newValue;
123
+ });
124
+ const iconData = analyseSVGStructure(svg, options);
125
+ const { elements, tree } = iconData;
126
+ const removedElements = /* @__PURE__ */ new Set();
127
+ const parsedElements = /* @__PURE__ */ new Set();
128
+ function removeElement(index, element) {
129
+ function removeChildren(element$1) {
130
+ element$1.children.forEach((item) => {
131
+ if (item.type !== "tag") return;
132
+ const element$2 = item;
133
+ const index$1 = element$2._index;
134
+ if (index$1 && !removedElements.has(index$1)) {
135
+ element$2._removed = true;
136
+ removedElements.add(index$1);
137
+ removeChildren(element$2);
138
+ }
139
+ });
140
+ }
141
+ element._removed = true;
142
+ removedElements.add(index);
143
+ removeChildren(element);
144
+ }
145
+ function parseTreeItem(item) {
146
+ const index = item.index;
147
+ if (removedElements.has(index) || parsedElements.has(index)) return;
148
+ parsedElements.add(index);
149
+ const element = elements.get(index);
150
+ if (element._removed) return;
151
+ const { tag, attribs } = element;
152
+ if (item.parent) {
153
+ const parentIndex = item.parent.index;
154
+ const parentElement = elements.get(parentIndex);
155
+ if (parentElement._colors) element._colors = { ...parentElement._colors };
156
+ }
157
+ for (let i = 0; i < propsToCheck.length; i++) {
158
+ const prop = propsToCheck[i];
159
+ if (prop === "fill" && animateTags.has(tag)) continue;
160
+ const value = attribs[prop];
161
+ if (typeof value === "string") {
162
+ const newValue = checkColor(prop, value, element);
163
+ if (newValue !== value) if (newValue === void 0) {
164
+ delete attribs[prop];
165
+ if (element._colors) delete element._colors[prop];
166
+ } else if (newValue === "remove") {
167
+ removeElement(index, element);
168
+ return;
169
+ } else attribs[prop] = newValue;
170
+ }
171
+ }
172
+ if (animateTags.has(tag)) {
173
+ const attr = attribs.attributeName;
174
+ if (propsToCheck.includes(attr)) for (let i = 0; i < animatePropsToCheck.length; i++) {
175
+ const elementProp = animatePropsToCheck[i];
176
+ const fullValue = attribs[elementProp];
177
+ if (typeof fullValue !== "string") continue;
178
+ const splitValues = fullValue.split(";");
179
+ let updatedValues = false;
180
+ for (let j = 0; j < splitValues.length; j++) {
181
+ const value = splitValues[j];
182
+ if (value !== void 0) {
183
+ const newValue = checkColor(elementProp, value);
184
+ if (newValue !== value) {
185
+ updatedValues = true;
186
+ splitValues[j] = typeof newValue === "string" ? newValue : "";
187
+ }
188
+ }
189
+ }
190
+ if (updatedValues) attribs[elementProp] = splitValues.join(";");
191
+ }
192
+ }
193
+ if (!result.hasGlobalStyle) {
194
+ let requiredProps;
195
+ if (shapeTags.has(tag)) requiredProps = shapeColorAttributes;
196
+ specialColorAttributes.forEach((attr) => {
197
+ if (tagSpecificPresentationalAttributes[tag]?.has(attr)) requiredProps = [attr];
198
+ });
199
+ if (requiredProps) {
200
+ const itemColors = element._colors || (element._colors = {});
201
+ for (let i = 0; i < requiredProps.length; i++) {
202
+ const prop = requiredProps[i];
203
+ if (getElementColor(prop, item, elements) === defaultBlackColor) if (defaultColor) {
204
+ const defaultColorValue = typeof defaultColor === "function" ? defaultColor(prop, element, item, iconData) : defaultColor;
205
+ findColor(defaultColorValue, true);
206
+ attribs[prop] = colorToString(defaultColorValue);
207
+ itemColors[prop] = defaultColorValue;
208
+ } else result.hasUnsetColor = true;
209
+ }
210
+ }
211
+ }
212
+ for (let i = 0; i < item.children.length; i++) {
213
+ const childItem = item.children[i];
214
+ if (!childItem.usedAsMask) parseTreeItem(childItem);
215
+ }
216
+ }
217
+ parseTreeItem(tree);
218
+ function removeElements(node, parent) {
219
+ if (parent) {
220
+ const index = node.index;
221
+ if (removedElements.has(index) || elements.get(index)._removed) {
222
+ parent.children = parent.children.filter((item) => item.index !== index);
223
+ return;
224
+ }
225
+ }
226
+ node.children.forEach((child) => {
227
+ removeElements(child, node);
228
+ });
229
+ }
230
+ removeElements(tree);
231
+ return result;
232
+ }
233
+ /**
234
+ * Check if color is empty, such as 'none' or 'transparent'
235
+ */
236
+ function isEmptyColor(color) {
237
+ const type = color.type;
238
+ return type === "none" || type === "transparent";
239
+ }
240
+
241
+ export { isEmptyColor, parseColors };
@@ -1,14 +1,5 @@
1
- import { SVG } from '../svg/index.js';
2
- import { ParseColorsOptions, FindColorsResult } from './parse.js';
3
- import 'cheerio';
4
- import '@iconify/types';
5
- import '@iconify/utils/lib/customisations/defaults';
6
- import '@iconify/utils/lib/colors/types';
7
- import './attribs.js';
8
- import '../svg/analyse/types.js';
9
- import '../misc/cheerio.js';
10
- import 'domhandler';
11
-
1
+ import { SVG } from "../svg/index.js";
2
+ import { FindColorsResult, ParseColorsOptions } from "./parse.js";
12
3
  /**
13
4
  * Validate colors in icon
14
5
  *
@@ -17,5 +8,4 @@ import 'domhandler';
17
8
  * Throws exception on error
18
9
  */
19
10
  declare function validateColors(svg: SVG, expectMonotone: boolean, options?: ParseColorsOptions): FindColorsResult;
20
-
21
- export { validateColors };
11
+ export { validateColors };
@@ -0,0 +1,31 @@
1
+ import { parseColors } from "./parse.js";
2
+ import { colorToString } from "@iconify/utils/lib/colors";
3
+
4
+ /**
5
+ * Validate colors in icon
6
+ *
7
+ * If icon is monotone,
8
+ *
9
+ * Throws exception on error
10
+ */
11
+ function validateColors(svg, expectMonotone, options) {
12
+ const palette = parseColors(svg, options);
13
+ palette.colors.forEach((color) => {
14
+ if (typeof color === "string") throw new Error("Unexpected color: " + color);
15
+ switch (color.type) {
16
+ case "none":
17
+ case "transparent": return;
18
+ case "current":
19
+ if (!expectMonotone) throw new Error("Unexpected color: " + colorToString(color));
20
+ return;
21
+ case "rgb":
22
+ case "hsl":
23
+ if (expectMonotone) throw new Error("Unexpected color: " + colorToString(color));
24
+ return;
25
+ default: if (color.type !== "function" || color.func !== "url") throw new Error("Unexpected color: " + colorToString(color));
26
+ }
27
+ });
28
+ return palette;
29
+ }
30
+
31
+ export { validateColors };
@@ -2,5 +2,4 @@
2
2
  * Parse inline style
3
3
  */
4
4
  declare function parseInlineStyle(style: string): Record<string, string> | null;
5
-
6
- export { parseInlineStyle };
5
+ export { parseInlineStyle };
@@ -0,0 +1,18 @@
1
+ import { getTokens } from "./parser/tokens.js";
2
+
3
+ /**
4
+ * Parse inline style
5
+ */
6
+ function parseInlineStyle(style) {
7
+ const tokens = getTokens(style);
8
+ if (!(tokens instanceof Array)) return null;
9
+ const results = Object.create(null);
10
+ for (let i = 0; i < tokens.length; i++) {
11
+ const token = tokens[i];
12
+ if (token.type !== "rule") return null;
13
+ results[token.prop] = token.value;
14
+ }
15
+ return results;
16
+ }
17
+
18
+ export { parseInlineStyle };
@@ -1,13 +1,12 @@
1
1
  interface StyleParseError {
2
- type: 'style-parse-error';
3
- message: string;
4
- code: string;
5
- index?: number;
6
- fullMessage: string;
2
+ type: 'style-parse-error';
3
+ message: string;
4
+ code: string;
5
+ index?: number;
6
+ fullMessage: string;
7
7
  }
8
8
  /**
9
9
  * Create error message
10
10
  */
11
11
  declare function styleParseError(message: string, code: string, index?: number): StyleParseError;
12
-
13
- export { type StyleParseError, styleParseError };
12
+ export { StyleParseError, styleParseError };
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Create error message
3
+ */
4
+ function styleParseError(message, code, index) {
5
+ let fullMessage = message;
6
+ if (typeof index === "number" && index !== -1) {
7
+ const start = index;
8
+ const remaining = code.slice(index) + "!";
9
+ const trimmed = remaining.trim();
10
+ const end = start + remaining.length - trimmed.length;
11
+ const code2 = code.slice(0, end);
12
+ const line = code2.length - code2.replace(/\n/g, "").length + 1;
13
+ fullMessage = message + " on line " + line.toString();
14
+ }
15
+ return {
16
+ type: "style-parse-error",
17
+ message,
18
+ code,
19
+ index,
20
+ fullMessage
21
+ };
22
+ }
23
+
24
+ export { styleParseError };
@@ -1,8 +1,6 @@
1
- import { CSSTreeToken } from './types.js';
2
-
1
+ import { CSSTreeToken } from "./types.js";
3
2
  /**
4
3
  * Convert tokens tree to string
5
4
  */
6
5
  declare function tokensToString(tree: CSSTreeToken[]): string;
7
-
8
- export { tokensToString };
6
+ export { tokensToString };
@@ -0,0 +1,34 @@
1
+ const tab = " ";
2
+ const nl = "\n";
3
+ /**
4
+ * Convert tokens tree to string
5
+ */
6
+ function tokensToString(tree) {
7
+ let compact = true;
8
+ for (let i = 0; i < tree.length; i++) if (tree[i].type !== "rule") {
9
+ compact = false;
10
+ break;
11
+ }
12
+ return tree.map((token) => {
13
+ return parseToken(token, compact, 0);
14
+ }).join("");
15
+ }
16
+ /**
17
+ * Old code
18
+ */
19
+ function parseToken(token, compact, depth) {
20
+ let content;
21
+ switch (token.type) {
22
+ case "rule": return (compact ? "" : tab.repeat(depth)) + token.prop + (compact ? ":" : ": ") + token.value + ";" + (compact ? "" : nl);
23
+ case "at-rule":
24
+ content = `@${token.rule} ${token.value}`.trim();
25
+ break;
26
+ case "selector": content = token.selectors.join(compact ? "," : ", ");
27
+ }
28
+ const children = token.children.map((item) => {
29
+ return parseToken(item, compact, depth + 1);
30
+ });
31
+ return (compact ? "" : tab.repeat(depth)) + content + (compact ? "{" : " {" + nl) + children.join("") + (compact ? "}" : tab.repeat(depth) + "}\n");
32
+ }
33
+
34
+ export { tokensToString };
@@ -1,5 +1,4 @@
1
- import { StyleParseError } from './error.js';
2
-
1
+ import { StyleParseError } from "./error.js";
3
2
  /**
4
3
  * Find end of quoted string
5
4
  *
@@ -12,5 +11,4 @@ declare function findEndOfQuotedString(code: string, quote: string, start: numbe
12
11
  * Returns index of character after end of URL
13
12
  */
14
13
  declare function findEndOfURL(code: string, start: number): number | StyleParseError;
15
-
16
- export { findEndOfQuotedString, findEndOfURL };
14
+ export { findEndOfQuotedString, findEndOfURL };
@@ -0,0 +1,66 @@
1
+ import { styleParseError } from "./error.js";
2
+
3
+ /**
4
+ * Find end of quoted string
5
+ *
6
+ * Returns index of character after quote
7
+ */
8
+ function findEndOfQuotedString(code, quote, start) {
9
+ let nextEscape = code.indexOf("\\", start + 1);
10
+ let end = code.indexOf(quote, start + 1);
11
+ if (end === -1) return null;
12
+ while (nextEscape !== -1 && nextEscape < end) {
13
+ if (end === nextEscape + 1) {
14
+ end = code.indexOf(quote, end + 1);
15
+ if (end === -1) return null;
16
+ }
17
+ nextEscape = code.indexOf("\\", nextEscape + 2);
18
+ }
19
+ return end + 1;
20
+ }
21
+ /**
22
+ * Find end of url
23
+ *
24
+ * Returns index of character after end of URL
25
+ */
26
+ function findEndOfURL(code, start) {
27
+ let index = (start || 0) + 4;
28
+ const length = code.length;
29
+ while (true) {
30
+ if (index >= length) return styleParseError("Cannot find end of URL", code, start);
31
+ let next = code.charAt(index);
32
+ switch (next) {
33
+ case "\"":
34
+ case "'": {
35
+ let end = findEndOfQuotedString(code, next, index);
36
+ if (end === null) return styleParseError("Incomplete string", code, index);
37
+ end = code.indexOf(")", end);
38
+ return end === -1 ? styleParseError("Cannot find end of URL", code, start) : end + 1;
39
+ }
40
+ case " ":
41
+ case " ":
42
+ case "\r":
43
+ case "\n":
44
+ index++;
45
+ break;
46
+ default: while (true) {
47
+ switch (next) {
48
+ case ")": return index + 1;
49
+ case "\"":
50
+ case "'":
51
+ case "(":
52
+ case " ":
53
+ case " ":
54
+ case "\r":
55
+ case "\n": return styleParseError("Invalid URL", code, start);
56
+ default: if (code.charCodeAt(index) < 32) return styleParseError("Invalid URL", code, start);
57
+ }
58
+ index++;
59
+ if (index >= length) return styleParseError("Cannot find end of URL", code, start);
60
+ next = code.charAt(index);
61
+ }
62
+ }
63
+ }
64
+ }
65
+
66
+ export { findEndOfQuotedString, findEndOfURL };
@@ -1,5 +1,4 @@
1
- import { TextToken, CSSRuleToken, CSSTokenWithSelector } from './types.js';
2
-
1
+ import { CSSRuleToken, CSSTokenWithSelector, TextToken } from "./types.js";
3
2
  /**
4
3
  * Merge text tokens to string
5
4
  */
@@ -16,5 +15,4 @@ declare function textTokensToRule(tokens: TextToken[]): CSSRuleToken | null;
16
15
  * Create at-rule or selector token from text tokens
17
16
  */
18
17
  declare function textTokensToSelector(tokens: TextToken[]): CSSTokenWithSelector | null;
19
-
20
- export { getSelectors, mergeTextTokens, textTokensToRule, textTokensToSelector };
18
+ export { getSelectors, mergeTextTokens, textTokensToRule, textTokensToSelector };