@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
@@ -0,0 +1,595 @@
1
+ import { SVG } from "../svg/index.js";
2
+ import { defaultCommonProps, filterProps } from "./props.js";
3
+ import { mergeIconData, trimSVG } from "@iconify/utils";
4
+ import { defaultIconDimensions, defaultIconProps as defaultIconProps$1 } from "@iconify/utils/lib/icon/defaults";
5
+ import { iconToSVG as iconToSVG$1 } from "@iconify/utils/lib/svg/build";
6
+ import { minifyIconSet } from "@iconify/utils/lib/icon-set/minify";
7
+ import { convertIconSetInfo } from "@iconify/utils/lib/icon-set/convert-info";
8
+
9
+ function assertNever(v) {}
10
+ const themeKeys = ["prefixes", "suffixes"];
11
+ /**
12
+ * Sort theme keys: long keys first
13
+ *
14
+ * Applies changes to parameter, but also returns it
15
+ */
16
+ function sortThemeKeys(keys) {
17
+ return keys.sort((a, b) => a.length === b.length ? a.localeCompare(b) : b.length - a.length);
18
+ }
19
+ /**
20
+ * Export icon set
21
+ */
22
+ var IconSet = class {
23
+ /**
24
+ * Properties. You can write directly to almost any property, but avoid writing to
25
+ * 'entries' and 'categories' properties, there are functions for that.
26
+ */
27
+ prefix;
28
+ lastModified;
29
+ entries;
30
+ info;
31
+ categories;
32
+ prefixes;
33
+ suffixes;
34
+ /**
35
+ * Load icon set
36
+ */
37
+ constructor(data) {
38
+ this.load(data);
39
+ }
40
+ /**
41
+ * Load icon set
42
+ */
43
+ load(data) {
44
+ this.prefix = data.prefix;
45
+ const defaultProps = filterProps(data, defaultIconDimensions, true);
46
+ this.entries = Object.create(null);
47
+ const entries = this.entries;
48
+ for (const name in data.icons) {
49
+ const item = data.icons[name];
50
+ entries[name] = {
51
+ type: "icon",
52
+ body: item.body,
53
+ props: filterProps({
54
+ ...defaultProps,
55
+ ...item
56
+ }, defaultCommonProps, true),
57
+ chars: /* @__PURE__ */ new Set(),
58
+ categories: /* @__PURE__ */ new Set()
59
+ };
60
+ }
61
+ if (data.aliases) for (const name in data.aliases) {
62
+ if (entries[name]) continue;
63
+ const item = data.aliases[name];
64
+ const parent = item.parent;
65
+ const props = filterProps(item, defaultCommonProps, false);
66
+ const chars = /* @__PURE__ */ new Set();
67
+ if (Object.keys(props).length) entries[name] = {
68
+ type: "variation",
69
+ parent,
70
+ props,
71
+ chars
72
+ };
73
+ else entries[name] = {
74
+ type: "alias",
75
+ parent,
76
+ chars
77
+ };
78
+ }
79
+ this.info = data.info && convertIconSetInfo(data.info) || void 0;
80
+ if (data.chars) for (const char in data.chars) {
81
+ const icon = entries[data.chars[char]];
82
+ if (icon) icon.chars.add(char);
83
+ }
84
+ this.categories = /* @__PURE__ */ new Set();
85
+ if (data.categories) for (const category in data.categories) {
86
+ const item = {
87
+ title: category,
88
+ count: 0
89
+ };
90
+ data.categories[category].forEach((iconName) => {
91
+ const icon = entries[iconName];
92
+ switch (icon?.type) {
93
+ case "icon": icon.categories.add(item);
94
+ }
95
+ });
96
+ this.categories.add(item);
97
+ this.listCategory(item);
98
+ }
99
+ const prefixes = this.prefixes = Object.create(null);
100
+ const suffixes = this.suffixes = Object.create(null);
101
+ if (data.themes) for (const key in data.themes) {
102
+ const item = data.themes[key];
103
+ if (typeof item.prefix === "string") {
104
+ const prefix = item.prefix;
105
+ if (prefix.slice(-1) === "-") prefixes[prefix.slice(0, -1)] = item.title;
106
+ }
107
+ if (typeof item.suffix === "string") {
108
+ const suffix = item.suffix;
109
+ if (suffix.slice(0, 1) === "-") suffixes[suffix.slice(1)] = item.title;
110
+ }
111
+ }
112
+ themeKeys.forEach((prop) => {
113
+ const items = data[prop];
114
+ if (items) {
115
+ this[prop] = Object.create(null);
116
+ for (const key in items) this[prop][key] = items[key];
117
+ }
118
+ });
119
+ this.lastModified = data.lastModified || 0;
120
+ }
121
+ /**
122
+ * Update last modification time
123
+ */
124
+ updateLastModified(value) {
125
+ this.lastModified = value || Math.floor(Date.now() / 1e3);
126
+ }
127
+ /**
128
+ * List icons
129
+ */
130
+ list(types = ["icon", "variation"]) {
131
+ return Object.keys(this.entries).filter((name) => types.includes(this.entries[name].type));
132
+ }
133
+ /**
134
+ * forEach function to loop through all entries.
135
+ * Supports asynchronous callbacks.
136
+ *
137
+ * Callback should return false to stop loop.
138
+ */
139
+ async forEach(callback, types = [
140
+ "icon",
141
+ "variation",
142
+ "alias"
143
+ ]) {
144
+ const names = this.list(types);
145
+ for (let i = 0; i < names.length; i++) {
146
+ const name = names[i];
147
+ const item = this.entries[name];
148
+ if (item) {
149
+ let result = callback(name, item.type);
150
+ if (result instanceof Promise) result = await result;
151
+ if (result === false) return;
152
+ }
153
+ }
154
+ }
155
+ /**
156
+ * Synchronous version of forEach function to loop through all entries.
157
+ *
158
+ * Callback should return false to stop loop.
159
+ */
160
+ forEachSync(callback, types = [
161
+ "icon",
162
+ "variation",
163
+ "alias"
164
+ ]) {
165
+ const names = this.list(types);
166
+ for (let i = 0; i < names.length; i++) {
167
+ const name = names[i];
168
+ const item = this.entries[name];
169
+ if (item) {
170
+ if (callback(name, item.type) === false) return;
171
+ }
172
+ }
173
+ }
174
+ /**
175
+ * Get parent icons tree
176
+ *
177
+ * Returns parent icons list for each icon, null if failed to resolve.
178
+ * In parent icons list, first element is a direct parent, last is icon. Does not include item.
179
+ *
180
+ * Examples:
181
+ * 'alias3': ['alias2', 'alias1', 'icon']
182
+ * 'icon': []
183
+ * 'bad-icon': null
184
+ */
185
+ getTree(names) {
186
+ const entries = this.entries;
187
+ const resolved = Object.create(null);
188
+ function resolve(name) {
189
+ const item = entries[name];
190
+ if (!item) return resolved[name] = null;
191
+ if (item.type === "icon") return resolved[name] = [];
192
+ if (resolved[name] === void 0) {
193
+ resolved[name] = null;
194
+ const parent = item.parent;
195
+ const value = parent && resolve(parent);
196
+ if (value) resolved[name] = [parent].concat(value);
197
+ }
198
+ return resolved[name];
199
+ }
200
+ (names || Object.keys(entries)).forEach(resolve);
201
+ return resolved;
202
+ }
203
+ resolve(name, full = false) {
204
+ const entries = this.entries;
205
+ const item = entries[name];
206
+ const tree = item && (item.type === "icon" ? [] : this.getTree([name])[name]);
207
+ if (!tree) return null;
208
+ let result = {};
209
+ function parse(name$1) {
210
+ const item$1 = entries[name$1];
211
+ if (item$1.type === "alias") return;
212
+ result = mergeIconData(item$1.props, result);
213
+ if (item$1.type === "icon") result.body = item$1.body;
214
+ }
215
+ parse(name);
216
+ tree.forEach(parse);
217
+ return result && full ? {
218
+ ...defaultIconProps$1,
219
+ ...result
220
+ } : result;
221
+ }
222
+ /**
223
+ * Generate HTML
224
+ */
225
+ toString(name, customisations = {
226
+ width: "auto",
227
+ height: "auto"
228
+ }) {
229
+ const item = this.resolve(name);
230
+ if (!item) return null;
231
+ const result = iconToSVG$1(item, customisations);
232
+ return `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"${Object.keys(result.attributes).map((key) => ` ${key}="${result.attributes[key]}"`).join("")}>${result.body}</svg>`;
233
+ }
234
+ /**
235
+ * Get SVG instance for icon
236
+ */
237
+ toSVG(name) {
238
+ const html = this.toString(name);
239
+ return html ? new SVG(html) : null;
240
+ }
241
+ /**
242
+ * Export icon set
243
+ */
244
+ export(validate = true) {
245
+ const icons = Object.create(null);
246
+ const aliases = Object.create(null);
247
+ const tree = validate ? this.getTree() : Object.create(null);
248
+ const names = Object.keys(this.entries);
249
+ names.sort((a, b) => a.localeCompare(b));
250
+ names.forEach((name) => {
251
+ const item = this.entries[name];
252
+ switch (item.type) {
253
+ case "icon":
254
+ icons[name] = {
255
+ body: trimSVG(item.body),
256
+ ...item.props
257
+ };
258
+ break;
259
+ case "alias":
260
+ case "variation": {
261
+ if (validate && !tree[name]) break;
262
+ const props = item.type === "variation" ? item.props : {};
263
+ aliases[name] = {
264
+ parent: item.parent,
265
+ ...props
266
+ };
267
+ break;
268
+ }
269
+ default: assertNever(item);
270
+ }
271
+ });
272
+ let info;
273
+ if (this.info) {
274
+ this.info.total = this.count();
275
+ info = JSON.parse(JSON.stringify(this.info));
276
+ }
277
+ const result = { prefix: this.prefix };
278
+ if (info) result.info = info;
279
+ if (this.lastModified) result.lastModified = this.lastModified;
280
+ result.icons = icons;
281
+ if (Object.keys(aliases).length) result.aliases = aliases;
282
+ const chars = this.chars(Object.keys(icons).concat(Object.keys(aliases)));
283
+ if (Object.keys(chars).length) result.chars = chars;
284
+ const categories = Object.create(null);
285
+ Array.from(this.categories).sort((a, b) => a.title.localeCompare(b.title)).forEach((item) => {
286
+ const names$1 = this.listCategory(item);
287
+ if (names$1) {
288
+ names$1.sort((a, b) => a.localeCompare(b));
289
+ categories[item.title] = names$1;
290
+ }
291
+ });
292
+ if (Object.keys(categories).length) result.categories = categories;
293
+ themeKeys.forEach((prop) => {
294
+ const items = this[prop];
295
+ const keys = Object.keys(items);
296
+ if (keys.length) {
297
+ const sortedTheme = Object.create(null);
298
+ const tested = this.checkTheme(prop === "prefixes");
299
+ keys.forEach((key) => {
300
+ if (tested.valid[key].length) sortedTheme[key] = items[key];
301
+ });
302
+ if (Object.keys(sortedTheme).length) result[prop] = sortedTheme;
303
+ }
304
+ });
305
+ minifyIconSet(result);
306
+ return result;
307
+ }
308
+ /**
309
+ * Get characters map
310
+ */
311
+ chars(names) {
312
+ const chars = Object.create(null);
313
+ if (!names) names = Object.keys(this.entries);
314
+ for (let i = 0; i < names.length; i++) {
315
+ const name = names[i];
316
+ this.entries[name].chars.forEach((char) => {
317
+ chars[char] = name;
318
+ });
319
+ }
320
+ return chars;
321
+ }
322
+ /**
323
+ * Filter icons
324
+ */
325
+ _filter(callback) {
326
+ const names = [];
327
+ for (const key in this.entries) {
328
+ const item = this.entries[key];
329
+ switch (item.type) {
330
+ case "icon":
331
+ if (callback(key, item)) names.push(key);
332
+ break;
333
+ case "variation":
334
+ case "alias": {
335
+ const icon = this.resolve(key);
336
+ if (icon && callback(key, item, icon)) names.push(key);
337
+ break;
338
+ }
339
+ }
340
+ }
341
+ return names;
342
+ }
343
+ /**
344
+ * Count icons
345
+ */
346
+ count() {
347
+ return this._filter((_key, item, icon) => {
348
+ if (item.type === "alias" || item.props.hidden || icon?.hidden) return false;
349
+ return true;
350
+ }).length;
351
+ }
352
+ /**
353
+ * Find category by title
354
+ */
355
+ findCategory(title, add) {
356
+ const categoryItem = Array.from(this.categories).find((item) => item.title === title);
357
+ if (categoryItem) return categoryItem;
358
+ if (add) {
359
+ const newItem = {
360
+ title,
361
+ count: 0
362
+ };
363
+ this.categories.add(newItem);
364
+ return newItem;
365
+ }
366
+ return null;
367
+ }
368
+ /**
369
+ * Count icons in category, remove category if empty
370
+ *
371
+ * Hidden icons and aliases do not count
372
+ */
373
+ listCategory(category) {
374
+ const categoryItem = typeof category === "string" ? this.findCategory(category, false) : category;
375
+ if (!categoryItem) return null;
376
+ const icons = this._filter((_key, item) => {
377
+ if (item.type !== "icon" || item.props.hidden) return false;
378
+ return item.categories.has(categoryItem);
379
+ });
380
+ const count = icons.length;
381
+ categoryItem.count = count;
382
+ if (!count) {
383
+ this.categories.delete(categoryItem);
384
+ return null;
385
+ }
386
+ return icons;
387
+ }
388
+ /**
389
+ * Check if icon exists
390
+ */
391
+ exists(name) {
392
+ return !!this.entries[name];
393
+ }
394
+ /**
395
+ * Remove icons. Returns number of removed icons
396
+ *
397
+ * If removeDependencies is a string, it represents new parent for all aliases of removed icon. New parent cannot be alias or variation.
398
+ */
399
+ remove(name, removeDependencies = true) {
400
+ const entries = this.entries;
401
+ if (typeof removeDependencies === "string") {
402
+ const item = entries[removeDependencies];
403
+ if (name === removeDependencies || item?.type !== "icon") return 0;
404
+ }
405
+ if (!entries[name]) return 0;
406
+ this.updateLastModified();
407
+ if (typeof removeDependencies === "string") {
408
+ for (const key in entries) {
409
+ const item = entries[key];
410
+ if (item.type !== "icon" && item.parent === name) item.parent = removeDependencies;
411
+ }
412
+ return 0;
413
+ }
414
+ delete entries[name];
415
+ let count = 1;
416
+ function remove(parent) {
417
+ Object.keys(entries).filter((name$1) => {
418
+ const item = entries[name$1];
419
+ return item.type !== "icon" && item.parent === parent;
420
+ }).forEach((name$1) => {
421
+ if (entries[name$1]) {
422
+ delete entries[name$1];
423
+ count++;
424
+ remove(name$1);
425
+ }
426
+ });
427
+ }
428
+ if (removeDependencies === true) remove(name);
429
+ return count;
430
+ }
431
+ /**
432
+ * Rename icon
433
+ */
434
+ rename(oldName, newName) {
435
+ if (oldName === newName) return false;
436
+ const entries = this.entries;
437
+ if (entries[newName]) {
438
+ if (!this.remove(newName)) return false;
439
+ }
440
+ if (!entries[oldName]) return false;
441
+ entries[newName] = entries[oldName];
442
+ delete entries[oldName];
443
+ for (const key in entries) {
444
+ const item = entries[key];
445
+ switch (item.type) {
446
+ case "icon": break;
447
+ case "alias":
448
+ case "variation":
449
+ if (item.parent === oldName) item.parent = newName;
450
+ break;
451
+ default: assertNever(item);
452
+ }
453
+ }
454
+ this.updateLastModified();
455
+ return true;
456
+ }
457
+ /**
458
+ * Add/update item
459
+ */
460
+ setItem(name, item) {
461
+ switch (item.type) {
462
+ case "alias":
463
+ case "variation": if (!this.entries[item.parent]) return false;
464
+ }
465
+ this.entries[name] = item;
466
+ this.updateLastModified();
467
+ return true;
468
+ }
469
+ /**
470
+ * Add/update icon
471
+ */
472
+ setIcon(name, icon) {
473
+ return this.setItem(name, {
474
+ type: "icon",
475
+ body: icon.body,
476
+ props: filterProps(icon, defaultCommonProps, true),
477
+ chars: /* @__PURE__ */ new Set(),
478
+ categories: /* @__PURE__ */ new Set()
479
+ });
480
+ }
481
+ /**
482
+ * Add/update alias without props
483
+ */
484
+ setAlias(name, parent) {
485
+ return this.setItem(name, {
486
+ type: "alias",
487
+ parent,
488
+ chars: /* @__PURE__ */ new Set()
489
+ });
490
+ }
491
+ /**
492
+ * Add/update alias with props
493
+ */
494
+ setVariation(name, parent, props) {
495
+ return this.setItem(name, {
496
+ type: "variation",
497
+ parent,
498
+ props,
499
+ chars: /* @__PURE__ */ new Set()
500
+ });
501
+ }
502
+ /**
503
+ * Icon from SVG. Updates old icon if it exists
504
+ */
505
+ fromSVG(name, svg) {
506
+ const props = { ...svg.viewBox };
507
+ const body = svg.getBody();
508
+ const item = this.entries[name];
509
+ switch (item?.type) {
510
+ case "icon":
511
+ case "variation": return this.setItem(name, {
512
+ type: "icon",
513
+ body,
514
+ props,
515
+ chars: item.chars,
516
+ categories: item.type === "icon" ? item.categories : /* @__PURE__ */ new Set()
517
+ });
518
+ }
519
+ return this.setIcon(name, {
520
+ body,
521
+ ...props
522
+ });
523
+ }
524
+ /**
525
+ * Add or remove character for icon
526
+ */
527
+ toggleCharacter(iconName, char, add) {
528
+ const item = this.entries[iconName];
529
+ if (!item) return false;
530
+ if (item.chars.has(char) !== add) {
531
+ item.chars[add ? "add" : "delete"](char);
532
+ return true;
533
+ }
534
+ return false;
535
+ }
536
+ /**
537
+ * Add or remove category for icon
538
+ */
539
+ toggleCategory(iconName, category, add) {
540
+ const item = this.entries[iconName];
541
+ const categoryItem = this.findCategory(category, add);
542
+ if (!item || !categoryItem) return false;
543
+ switch (item.type) {
544
+ case "icon": if (item.categories.has(categoryItem) !== add) {
545
+ categoryItem.count += add ? 1 : -1;
546
+ item.categories[add ? "add" : "delete"](categoryItem);
547
+ return true;
548
+ }
549
+ }
550
+ return false;
551
+ }
552
+ /**
553
+ * Find icons that belong to theme
554
+ */
555
+ checkTheme(prefix) {
556
+ const themes = prefix ? this.prefixes : this.suffixes;
557
+ const keys = sortThemeKeys(Object.keys(themes));
558
+ const results = {
559
+ valid: Object.create(null),
560
+ invalid: []
561
+ };
562
+ keys.forEach((key) => {
563
+ results.valid[key] = [];
564
+ });
565
+ results.invalid = this._filter((name, item, icon) => {
566
+ if (item.type === "alias" || item.props.hidden || icon?.hidden) return false;
567
+ for (let i = 0; i < keys.length; i++) {
568
+ const search = keys[i];
569
+ if (search === "") {
570
+ results.valid[search].push(name);
571
+ return false;
572
+ }
573
+ const match = prefix ? search + "-" : "-" + search;
574
+ const length = match.length;
575
+ if ((prefix ? name.slice(0, length) : name.slice(0 - length)) === match) {
576
+ results.valid[search].push(name);
577
+ return false;
578
+ }
579
+ }
580
+ return true;
581
+ });
582
+ return results;
583
+ }
584
+ };
585
+ /**
586
+ * Create blank icon set
587
+ */
588
+ function blankIconSet(prefix) {
589
+ return new IconSet({
590
+ prefix,
591
+ icons: {}
592
+ });
593
+ }
594
+
595
+ export { IconSet, blankIconSet, sortThemeKeys };
@@ -1,15 +1,7 @@
1
- import { FullIconifyIcon } from '@iconify/utils/lib/icon/defaults';
2
- import { IconSet } from './index.js';
3
- import '@iconify/types';
4
- import '@iconify/utils/lib/customisations/defaults';
5
- import './types.js';
6
- import '../svg/index.js';
7
- import 'cheerio';
8
- import '@iconify/utils/lib/icon-set/tree';
9
-
1
+ import { IconSet } from "./index.js";
2
+ import { FullIconifyIcon } from "@iconify/utils/lib/icon/defaults";
10
3
  /**
11
4
  * Find matching icon in icon set
12
5
  */
13
6
  declare function findMatchingIcon(iconSet: IconSet, icon: FullIconifyIcon): string | null;
14
-
15
- export { findMatchingIcon };
7
+ export { findMatchingIcon };
@@ -0,0 +1,45 @@
1
+ import { defaultIconProps } from "@iconify/utils/lib/icon/defaults";
2
+
3
+ const maxIteration = 5;
4
+ /**
5
+ * Find matching icon in icon set
6
+ */
7
+ function findMatchingIcon(iconSet, icon) {
8
+ const body = icon.body;
9
+ let hiddenMatch = null;
10
+ function isMatching(data) {
11
+ for (const key in defaultIconProps) {
12
+ const attr = key;
13
+ if (data[attr] !== icon[attr]) return false;
14
+ }
15
+ return true;
16
+ }
17
+ /**
18
+ * Check if icon matches
19
+ */
20
+ function test(name, iteration) {
21
+ const data = iconSet.resolve(name, true);
22
+ if (!data) return null;
23
+ if (isMatching(data)) if (data.hidden) hiddenMatch = name;
24
+ else return name;
25
+ if (iteration > maxIteration) return null;
26
+ for (const key in iconSet.entries) {
27
+ const item = iconSet.entries[key];
28
+ if (item.type === "variation" && item.parent === name) {
29
+ const result = test(key, iteration + 1);
30
+ if (typeof result === "string") return result;
31
+ }
32
+ }
33
+ return null;
34
+ }
35
+ for (const key in iconSet.entries) {
36
+ const item = iconSet.entries[key];
37
+ if (item.type === "icon" && item.body === body) {
38
+ const result = test(key, 0);
39
+ if (typeof result === "string") return result;
40
+ }
41
+ }
42
+ return hiddenMatch;
43
+ }
44
+
45
+ export { findMatchingIcon };
@@ -1,14 +1,6 @@
1
- import { IconSet } from './index.js';
2
- import '@iconify/types';
3
- import '@iconify/utils/lib/customisations/defaults';
4
- import './types.js';
5
- import '../svg/index.js';
6
- import 'cheerio';
7
- import '@iconify/utils/lib/icon-set/tree';
8
-
1
+ import { IconSet } from "./index.js";
9
2
  /**
10
3
  * Merge icon sets
11
4
  */
12
5
  declare function mergeIconSets(oldIcons: IconSet, newIcons: IconSet): IconSet;
13
-
14
- export { mergeIconSets };
6
+ export { mergeIconSets };