@iconify/tools 4.2.0 → 5.0.0-beta.1

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 (530) 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 +23 -35
  110. package/lib/import/figma/types/nodes.d.ts +12 -21
  111. package/lib/import/figma/types/options.d.ts +23 -32
  112. package/lib/import/figma/types/result.d.ts +16 -24
  113. package/lib/index.d.ts +55 -80
  114. package/lib/index.js +56 -0
  115. package/lib/misc/bump-version.d.ts +1 -2
  116. package/lib/misc/bump-version.js +13 -0
  117. package/lib/misc/compare-dirs.d.ts +4 -5
  118. package/lib/misc/compare-dirs.js +65 -0
  119. package/lib/misc/exec.d.ts +4 -6
  120. package/lib/misc/exec.js +23 -0
  121. package/lib/misc/keyword.d.ts +1 -2
  122. package/lib/misc/keyword.js +12 -0
  123. package/lib/misc/scan.d.ts +2 -4
  124. package/lib/misc/scan.js +87 -0
  125. package/lib/misc/write-json.d.ts +1 -2
  126. package/lib/misc/write-json.js +10 -0
  127. package/lib/optimise/figma.d.ts +2 -7
  128. package/lib/optimise/figma.js +189 -0
  129. package/lib/optimise/flags.d.ts +2 -7
  130. package/lib/optimise/flags.js +231 -0
  131. package/lib/optimise/global-style.d.ts +2 -7
  132. package/lib/optimise/global-style.js +114 -0
  133. package/lib/optimise/mask.d.ts +9 -14
  134. package/lib/optimise/mask.js +83 -0
  135. package/lib/optimise/origin.d.ts +2 -7
  136. package/lib/optimise/origin.js +22 -0
  137. package/lib/optimise/scale.d.ts +2 -7
  138. package/lib/optimise/scale.js +24 -0
  139. package/lib/optimise/svgo.d.ts +10 -15
  140. package/lib/optimise/svgo.js +90 -0
  141. package/lib/optimise/unwrap.d.ts +2 -7
  142. package/lib/optimise/unwrap.js +25 -0
  143. package/lib/svg/analyse/error.d.ts +2 -7
  144. package/lib/svg/analyse/error.js +12 -0
  145. package/lib/svg/analyse/types.d.ts +31 -35
  146. package/lib/svg/analyse/types.js +1 -0
  147. package/lib/svg/analyse.d.ts +3 -10
  148. package/lib/svg/analyse.js +256 -0
  149. package/lib/svg/cleanup/attribs.d.ts +2 -7
  150. package/lib/svg/cleanup/attribs.js +37 -0
  151. package/lib/svg/cleanup/bad-tags.d.ts +3 -8
  152. package/lib/svg/cleanup/bad-tags.js +57 -0
  153. package/lib/svg/cleanup/inline-style.d.ts +2 -7
  154. package/lib/svg/cleanup/inline-style.js +80 -0
  155. package/lib/svg/cleanup/root-style.d.ts +4 -9
  156. package/lib/svg/cleanup/root-style.js +27 -0
  157. package/lib/svg/cleanup/root-svg.d.ts +2 -7
  158. package/lib/svg/cleanup/root-svg.js +73 -0
  159. package/lib/svg/cleanup/svgo-style.d.ts +2 -7
  160. package/lib/svg/cleanup/svgo-style.js +24 -0
  161. package/lib/svg/cleanup.d.ts +3 -8
  162. package/lib/svg/cleanup.js +20 -0
  163. package/lib/svg/data/attributes.d.ts +1 -2
  164. package/lib/svg/data/attributes.js +451 -0
  165. package/lib/svg/data/tags.d.ts +1 -2
  166. package/lib/svg/data/tags.js +182 -0
  167. package/lib/svg/index.d.ts +38 -47
  168. package/lib/svg/index.js +117 -0
  169. package/lib/svg/parse-style.d.ts +21 -28
  170. package/lib/svg/parse-style.js +199 -0
  171. package/lib/svg/parse.d.ts +8 -16
  172. package/lib/svg/parse.js +32 -0
  173. package/package.json +116 -222
  174. package/lib/colors/attribs.cjs +0 -33
  175. package/lib/colors/attribs.d.cts +0 -27
  176. package/lib/colors/attribs.d.mts +0 -27
  177. package/lib/colors/attribs.mjs +0 -26
  178. package/lib/colors/detect.cjs +0 -66
  179. package/lib/colors/detect.d.cts +0 -16
  180. package/lib/colors/detect.d.mts +0 -16
  181. package/lib/colors/detect.mjs +0 -64
  182. package/lib/colors/parse.cjs +0 -300
  183. package/lib/colors/parse.d.cts +0 -61
  184. package/lib/colors/parse.d.mts +0 -61
  185. package/lib/colors/parse.mjs +0 -297
  186. package/lib/colors/validate.cjs +0 -56
  187. package/lib/colors/validate.d.cts +0 -21
  188. package/lib/colors/validate.d.mts +0 -21
  189. package/lib/colors/validate.mjs +0 -54
  190. package/lib/css/parse.cjs +0 -24
  191. package/lib/css/parse.d.cts +0 -6
  192. package/lib/css/parse.d.mts +0 -6
  193. package/lib/css/parse.mjs +0 -22
  194. package/lib/css/parser/error.cjs +0 -23
  195. package/lib/css/parser/error.d.cts +0 -13
  196. package/lib/css/parser/error.d.mts +0 -13
  197. package/lib/css/parser/error.mjs +0 -21
  198. package/lib/css/parser/export.cjs +0 -37
  199. package/lib/css/parser/export.d.cts +0 -8
  200. package/lib/css/parser/export.d.mts +0 -8
  201. package/lib/css/parser/export.mjs +0 -35
  202. package/lib/css/parser/strings.cjs +0 -83
  203. package/lib/css/parser/strings.d.cts +0 -16
  204. package/lib/css/parser/strings.d.mts +0 -16
  205. package/lib/css/parser/strings.mjs +0 -80
  206. package/lib/css/parser/text.cjs +0 -114
  207. package/lib/css/parser/text.d.cts +0 -20
  208. package/lib/css/parser/text.d.mts +0 -20
  209. package/lib/css/parser/text.mjs +0 -109
  210. package/lib/css/parser/tokens.cjs +0 -206
  211. package/lib/css/parser/tokens.d.cts +0 -9
  212. package/lib/css/parser/tokens.d.mts +0 -9
  213. package/lib/css/parser/tokens.mjs +0 -204
  214. package/lib/css/parser/tree.cjs +0 -40
  215. package/lib/css/parser/tree.d.cts +0 -8
  216. package/lib/css/parser/tree.d.mts +0 -8
  217. package/lib/css/parser/tree.mjs +0 -38
  218. package/lib/css/parser/types.cjs +0 -2
  219. package/lib/css/parser/types.d.cts +0 -52
  220. package/lib/css/parser/types.d.mts +0 -52
  221. package/lib/css/parser/types.mjs +0 -1
  222. package/lib/download/api/cache.cjs +0 -91
  223. package/lib/download/api/cache.d.cts +0 -20
  224. package/lib/download/api/cache.d.mts +0 -20
  225. package/lib/download/api/cache.mjs +0 -86
  226. package/lib/download/api/config.cjs +0 -11
  227. package/lib/download/api/config.d.cts +0 -18
  228. package/lib/download/api/config.d.mts +0 -18
  229. package/lib/download/api/config.mjs +0 -8
  230. package/lib/download/api/download.cjs +0 -26
  231. package/lib/download/api/download.d.cts +0 -8
  232. package/lib/download/api/download.d.mts +0 -8
  233. package/lib/download/api/download.mjs +0 -24
  234. package/lib/download/api/fetch.cjs +0 -12
  235. package/lib/download/api/fetch.d.cts +0 -10
  236. package/lib/download/api/fetch.d.mts +0 -10
  237. package/lib/download/api/fetch.mjs +0 -9
  238. package/lib/download/api/index.cjs +0 -57
  239. package/lib/download/api/index.d.cts +0 -8
  240. package/lib/download/api/index.d.mts +0 -8
  241. package/lib/download/api/index.mjs +0 -55
  242. package/lib/download/api/queue.cjs +0 -104
  243. package/lib/download/api/queue.d.cts +0 -32
  244. package/lib/download/api/queue.d.mts +0 -32
  245. package/lib/download/api/queue.mjs +0 -101
  246. package/lib/download/api/types.cjs +0 -2
  247. package/lib/download/api/types.d.cts +0 -17
  248. package/lib/download/api/types.d.mts +0 -17
  249. package/lib/download/api/types.mjs +0 -1
  250. package/lib/download/git/branch.cjs +0 -19
  251. package/lib/download/git/branch.d.cts +0 -8
  252. package/lib/download/git/branch.d.mts +0 -8
  253. package/lib/download/git/branch.mjs +0 -17
  254. package/lib/download/git/hash.cjs +0 -14
  255. package/lib/download/git/hash.d.cts +0 -8
  256. package/lib/download/git/hash.d.mts +0 -8
  257. package/lib/download/git/hash.mjs +0 -12
  258. package/lib/download/git/index.cjs +0 -76
  259. package/lib/download/git/index.d.cts +0 -29
  260. package/lib/download/git/index.d.mts +0 -29
  261. package/lib/download/git/index.mjs +0 -74
  262. package/lib/download/git/reset.cjs +0 -36
  263. package/lib/download/git/reset.d.cts +0 -6
  264. package/lib/download/git/reset.d.mts +0 -6
  265. package/lib/download/git/reset.mjs +0 -34
  266. package/lib/download/github/hash.cjs +0 -31
  267. package/lib/download/github/hash.d.cts +0 -8
  268. package/lib/download/github/hash.d.mts +0 -8
  269. package/lib/download/github/hash.mjs +0 -29
  270. package/lib/download/github/index.cjs +0 -105
  271. package/lib/download/github/index.d.cts +0 -31
  272. package/lib/download/github/index.d.mts +0 -31
  273. package/lib/download/github/index.mjs +0 -103
  274. package/lib/download/github/types.cjs +0 -2
  275. package/lib/download/github/types.d.cts +0 -11
  276. package/lib/download/github/types.d.mts +0 -11
  277. package/lib/download/github/types.mjs +0 -1
  278. package/lib/download/gitlab/hash.cjs +0 -33
  279. package/lib/download/gitlab/hash.d.cts +0 -8
  280. package/lib/download/gitlab/hash.d.mts +0 -8
  281. package/lib/download/gitlab/hash.mjs +0 -31
  282. package/lib/download/gitlab/index.cjs +0 -105
  283. package/lib/download/gitlab/index.d.cts +0 -31
  284. package/lib/download/gitlab/index.d.mts +0 -31
  285. package/lib/download/gitlab/index.mjs +0 -103
  286. package/lib/download/gitlab/types.cjs +0 -5
  287. package/lib/download/gitlab/types.d.cts +0 -15
  288. package/lib/download/gitlab/types.d.mts +0 -15
  289. package/lib/download/gitlab/types.mjs +0 -3
  290. package/lib/download/helpers/untar.cjs +0 -12
  291. package/lib/download/helpers/untar.d.cts +0 -6
  292. package/lib/download/helpers/untar.d.mts +0 -6
  293. package/lib/download/helpers/untar.mjs +0 -10
  294. package/lib/download/helpers/unzip.cjs +0 -17
  295. package/lib/download/helpers/unzip.d.cts +0 -6
  296. package/lib/download/helpers/unzip.d.mts +0 -6
  297. package/lib/download/helpers/unzip.mjs +0 -11
  298. package/lib/download/index.cjs +0 -64
  299. package/lib/download/index.d.cts +0 -48
  300. package/lib/download/index.d.mts +0 -48
  301. package/lib/download/index.mjs +0 -62
  302. package/lib/download/npm/index.cjs +0 -85
  303. package/lib/download/npm/index.d.cts +0 -30
  304. package/lib/download/npm/index.d.mts +0 -30
  305. package/lib/download/npm/index.mjs +0 -83
  306. package/lib/download/npm/types.cjs +0 -2
  307. package/lib/download/npm/types.d.cts +0 -9
  308. package/lib/download/npm/types.d.mts +0 -9
  309. package/lib/download/npm/types.mjs +0 -1
  310. package/lib/download/npm/version.cjs +0 -29
  311. package/lib/download/npm/version.d.cts +0 -16
  312. package/lib/download/npm/version.d.mts +0 -16
  313. package/lib/download/npm/version.mjs +0 -26
  314. package/lib/download/types/modified.cjs +0 -2
  315. package/lib/download/types/modified.d.cts +0 -6
  316. package/lib/download/types/modified.d.mts +0 -6
  317. package/lib/download/types/modified.mjs +0 -1
  318. package/lib/download/types/sources.cjs +0 -2
  319. package/lib/download/types/sources.d.cts +0 -12
  320. package/lib/download/types/sources.d.mts +0 -12
  321. package/lib/download/types/sources.mjs +0 -1
  322. package/lib/export/directory.cjs +0 -43
  323. package/lib/export/directory.d.cts +0 -26
  324. package/lib/export/directory.d.mts +0 -26
  325. package/lib/export/directory.mjs +0 -41
  326. package/lib/export/helpers/custom-files.cjs +0 -26
  327. package/lib/export/helpers/custom-files.d.cts +0 -12
  328. package/lib/export/helpers/custom-files.d.mts +0 -12
  329. package/lib/export/helpers/custom-files.mjs +0 -24
  330. package/lib/export/helpers/prepare.cjs +0 -34
  331. package/lib/export/helpers/prepare.d.cts +0 -19
  332. package/lib/export/helpers/prepare.d.mts +0 -19
  333. package/lib/export/helpers/prepare.mjs +0 -31
  334. package/lib/export/helpers/types-version.cjs +0 -12
  335. package/lib/export/helpers/types-version.d.cts +0 -6
  336. package/lib/export/helpers/types-version.d.mts +0 -6
  337. package/lib/export/helpers/types-version.mjs +0 -10
  338. package/lib/export/icon-package.cjs +0 -56
  339. package/lib/export/icon-package.d.cts +0 -26
  340. package/lib/export/icon-package.d.mts +0 -26
  341. package/lib/export/icon-package.mjs +0 -54
  342. package/lib/export/json-package.cjs +0 -144
  343. package/lib/export/json-package.d.cts +0 -25
  344. package/lib/export/json-package.d.mts +0 -25
  345. package/lib/export/json-package.mjs +0 -142
  346. package/lib/icon-set/index.cjs +0 -720
  347. package/lib/icon-set/index.d.cts +0 -162
  348. package/lib/icon-set/index.d.mts +0 -162
  349. package/lib/icon-set/index.mjs +0 -716
  350. package/lib/icon-set/match.cjs +0 -56
  351. package/lib/icon-set/match.d.cts +0 -15
  352. package/lib/icon-set/match.d.mts +0 -15
  353. package/lib/icon-set/match.mjs +0 -54
  354. package/lib/icon-set/merge.cjs +0 -87
  355. package/lib/icon-set/merge.d.cts +0 -14
  356. package/lib/icon-set/merge.d.mts +0 -14
  357. package/lib/icon-set/merge.mjs +0 -85
  358. package/lib/icon-set/modified.cjs +0 -25
  359. package/lib/icon-set/modified.d.cts +0 -16
  360. package/lib/icon-set/modified.d.mts +0 -16
  361. package/lib/icon-set/modified.mjs +0 -23
  362. package/lib/icon-set/props.cjs +0 -16
  363. package/lib/icon-set/props.d.cts +0 -13
  364. package/lib/icon-set/props.d.mts +0 -13
  365. package/lib/icon-set/props.mjs +0 -13
  366. package/lib/icon-set/tags.cjs +0 -95
  367. package/lib/icon-set/tags.d.cts +0 -25
  368. package/lib/icon-set/tags.d.mts +0 -25
  369. package/lib/icon-set/tags.mjs +0 -91
  370. package/lib/icon-set/types.cjs +0 -2
  371. package/lib/icon-set/types.d.cts +0 -75
  372. package/lib/icon-set/types.d.mts +0 -75
  373. package/lib/icon-set/types.mjs +0 -1
  374. package/lib/import/directory.cjs +0 -169
  375. package/lib/import/directory.d.cts +0 -52
  376. package/lib/import/directory.d.mts +0 -52
  377. package/lib/import/directory.mjs +0 -166
  378. package/lib/import/figma/index.cjs +0 -115
  379. package/lib/import/figma/index.d.cts +0 -20
  380. package/lib/import/figma/index.d.mts +0 -20
  381. package/lib/import/figma/index.mjs +0 -113
  382. package/lib/import/figma/nodes.cjs +0 -90
  383. package/lib/import/figma/nodes.d.cts +0 -18
  384. package/lib/import/figma/nodes.d.mts +0 -18
  385. package/lib/import/figma/nodes.mjs +0 -88
  386. package/lib/import/figma/query.cjs +0 -260
  387. package/lib/import/figma/query.d.cts +0 -42
  388. package/lib/import/figma/query.d.mts +0 -42
  389. package/lib/import/figma/query.mjs +0 -256
  390. package/lib/import/figma/types/api.cjs +0 -2
  391. package/lib/import/figma/types/api.d.cts +0 -53
  392. package/lib/import/figma/types/api.d.mts +0 -53
  393. package/lib/import/figma/types/api.mjs +0 -1
  394. package/lib/import/figma/types/nodes.cjs +0 -2
  395. package/lib/import/figma/types/nodes.d.cts +0 -44
  396. package/lib/import/figma/types/nodes.d.mts +0 -44
  397. package/lib/import/figma/types/nodes.mjs +0 -1
  398. package/lib/import/figma/types/options.cjs +0 -2
  399. package/lib/import/figma/types/options.d.cts +0 -59
  400. package/lib/import/figma/types/options.d.mts +0 -59
  401. package/lib/import/figma/types/options.mjs +0 -1
  402. package/lib/import/figma/types/result.cjs +0 -2
  403. package/lib/import/figma/types/result.d.cts +0 -44
  404. package/lib/import/figma/types/result.d.mts +0 -44
  405. package/lib/import/figma/types/result.mjs +0 -1
  406. package/lib/index.cjs +0 -157
  407. package/lib/index.d.cts +0 -80
  408. package/lib/index.d.mts +0 -80
  409. package/lib/index.mjs +0 -91
  410. package/lib/misc/bump-version.cjs +0 -15
  411. package/lib/misc/bump-version.d.cts +0 -6
  412. package/lib/misc/bump-version.d.mts +0 -6
  413. package/lib/misc/bump-version.mjs +0 -13
  414. package/lib/misc/cheerio.cjs +0 -2
  415. package/lib/misc/cheerio.d.cts +0 -10
  416. package/lib/misc/cheerio.d.mts +0 -10
  417. package/lib/misc/cheerio.d.ts +0 -10
  418. package/lib/misc/cheerio.mjs +0 -1
  419. package/lib/misc/compare-dirs.cjs +0 -75
  420. package/lib/misc/compare-dirs.d.cts +0 -11
  421. package/lib/misc/compare-dirs.d.mts +0 -11
  422. package/lib/misc/compare-dirs.mjs +0 -73
  423. package/lib/misc/exec.cjs +0 -27
  424. package/lib/misc/exec.d.cts +0 -12
  425. package/lib/misc/exec.d.mts +0 -12
  426. package/lib/misc/exec.mjs +0 -25
  427. package/lib/misc/keyword.cjs +0 -20
  428. package/lib/misc/keyword.d.cts +0 -6
  429. package/lib/misc/keyword.d.mts +0 -6
  430. package/lib/misc/keyword.mjs +0 -18
  431. package/lib/misc/scan.cjs +0 -114
  432. package/lib/misc/scan.d.cts +0 -33
  433. package/lib/misc/scan.d.mts +0 -33
  434. package/lib/misc/scan.mjs +0 -111
  435. package/lib/misc/write-json.cjs +0 -9
  436. package/lib/misc/write-json.d.cts +0 -6
  437. package/lib/misc/write-json.d.mts +0 -6
  438. package/lib/misc/write-json.mjs +0 -7
  439. package/lib/optimise/figma.cjs +0 -232
  440. package/lib/optimise/figma.d.cts +0 -14
  441. package/lib/optimise/figma.d.mts +0 -14
  442. package/lib/optimise/figma.mjs +0 -230
  443. package/lib/optimise/flags.cjs +0 -256
  444. package/lib/optimise/flags.d.cts +0 -11
  445. package/lib/optimise/flags.d.mts +0 -11
  446. package/lib/optimise/flags.mjs +0 -254
  447. package/lib/optimise/global-style.cjs +0 -158
  448. package/lib/optimise/global-style.d.cts +0 -11
  449. package/lib/optimise/global-style.d.mts +0 -11
  450. package/lib/optimise/global-style.mjs +0 -156
  451. package/lib/optimise/mask.cjs +0 -110
  452. package/lib/optimise/mask.d.cts +0 -24
  453. package/lib/optimise/mask.d.mts +0 -24
  454. package/lib/optimise/mask.mjs +0 -108
  455. package/lib/optimise/origin.cjs +0 -23
  456. package/lib/optimise/origin.d.cts +0 -11
  457. package/lib/optimise/origin.d.mts +0 -11
  458. package/lib/optimise/origin.mjs +0 -21
  459. package/lib/optimise/scale.cjs +0 -27
  460. package/lib/optimise/scale.d.cts +0 -11
  461. package/lib/optimise/scale.d.mts +0 -11
  462. package/lib/optimise/scale.mjs +0 -25
  463. package/lib/optimise/svgo.cjs +0 -107
  464. package/lib/optimise/svgo.d.cts +0 -37
  465. package/lib/optimise/svgo.d.mts +0 -37
  466. package/lib/optimise/svgo.mjs +0 -104
  467. package/lib/optimise/unwrap.cjs +0 -31
  468. package/lib/optimise/unwrap.d.cts +0 -11
  469. package/lib/optimise/unwrap.d.mts +0 -11
  470. package/lib/optimise/unwrap.mjs +0 -29
  471. package/lib/svg/analyse/error.cjs +0 -16
  472. package/lib/svg/analyse/error.d.cts +0 -11
  473. package/lib/svg/analyse/error.d.mts +0 -11
  474. package/lib/svg/analyse/error.mjs +0 -14
  475. package/lib/svg/analyse/types.cjs +0 -2
  476. package/lib/svg/analyse/types.d.cts +0 -93
  477. package/lib/svg/analyse/types.d.mts +0 -93
  478. package/lib/svg/analyse/types.mjs +0 -1
  479. package/lib/svg/analyse.cjs +0 -303
  480. package/lib/svg/analyse.d.cts +0 -16
  481. package/lib/svg/analyse.d.mts +0 -16
  482. package/lib/svg/analyse.mjs +0 -301
  483. package/lib/svg/cleanup/attribs.cjs +0 -39
  484. package/lib/svg/cleanup/attribs.d.cts +0 -11
  485. package/lib/svg/cleanup/attribs.d.mts +0 -11
  486. package/lib/svg/cleanup/attribs.mjs +0 -37
  487. package/lib/svg/cleanup/bad-tags.cjs +0 -69
  488. package/lib/svg/cleanup/bad-tags.d.cts +0 -17
  489. package/lib/svg/cleanup/bad-tags.d.mts +0 -17
  490. package/lib/svg/cleanup/bad-tags.mjs +0 -67
  491. package/lib/svg/cleanup/inline-style.cjs +0 -97
  492. package/lib/svg/cleanup/inline-style.d.cts +0 -11
  493. package/lib/svg/cleanup/inline-style.d.mts +0 -11
  494. package/lib/svg/cleanup/inline-style.mjs +0 -95
  495. package/lib/svg/cleanup/root-style.cjs +0 -34
  496. package/lib/svg/cleanup/root-style.d.cts +0 -17
  497. package/lib/svg/cleanup/root-style.d.mts +0 -17
  498. package/lib/svg/cleanup/root-style.mjs +0 -32
  499. package/lib/svg/cleanup/root-svg.cjs +0 -84
  500. package/lib/svg/cleanup/root-svg.d.cts +0 -11
  501. package/lib/svg/cleanup/root-svg.d.mts +0 -11
  502. package/lib/svg/cleanup/root-svg.mjs +0 -82
  503. package/lib/svg/cleanup/svgo-style.cjs +0 -43
  504. package/lib/svg/cleanup/svgo-style.d.cts +0 -11
  505. package/lib/svg/cleanup/svgo-style.d.mts +0 -11
  506. package/lib/svg/cleanup/svgo-style.mjs +0 -41
  507. package/lib/svg/cleanup.cjs +0 -33
  508. package/lib/svg/cleanup.d.cts +0 -16
  509. package/lib/svg/cleanup.d.mts +0 -16
  510. package/lib/svg/cleanup.mjs +0 -31
  511. package/lib/svg/data/attributes.cjs +0 -373
  512. package/lib/svg/data/attributes.d.cts +0 -77
  513. package/lib/svg/data/attributes.d.mts +0 -77
  514. package/lib/svg/data/attributes.mjs +0 -346
  515. package/lib/svg/data/tags.cjs +0 -141
  516. package/lib/svg/data/tags.d.cts +0 -95
  517. package/lib/svg/data/tags.d.mts +0 -95
  518. package/lib/svg/data/tags.mjs +0 -117
  519. package/lib/svg/index.cjs +0 -178
  520. package/lib/svg/index.d.cts +0 -52
  521. package/lib/svg/index.d.mts +0 -52
  522. package/lib/svg/index.mjs +0 -162
  523. package/lib/svg/parse-style.cjs +0 -243
  524. package/lib/svg/parse-style.d.cts +0 -59
  525. package/lib/svg/parse-style.d.mts +0 -59
  526. package/lib/svg/parse-style.mjs +0 -241
  527. package/lib/svg/parse.cjs +0 -46
  528. package/lib/svg/parse.d.cts +0 -31
  529. package/lib/svg/parse.d.mts +0 -31
  530. 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 };