@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,68 @@
1
+ import { IconSet } from "./index.js";
2
+ import { findMatchingIcon } from "./match.js";
3
+ import { hasIconDataBeenModified } from "./modified.js";
4
+
5
+ function assertNever(v) {}
6
+ /**
7
+ * Merge icon sets
8
+ */
9
+ function mergeIconSets(oldIcons, newIcons) {
10
+ const mergedIcons = new IconSet(newIcons.export());
11
+ const oldEntries = oldIcons.entries;
12
+ const entries = mergedIcons.entries;
13
+ function add(name) {
14
+ if (entries[name]) return true;
15
+ const item = oldEntries[name];
16
+ switch (item.type) {
17
+ case "icon": {
18
+ const fullIcon = oldIcons.resolve(name, true);
19
+ const parent = fullIcon ? findMatchingIcon(mergedIcons, fullIcon) : null;
20
+ if (parent !== null) {
21
+ mergedIcons.setAlias(name, parent);
22
+ return true;
23
+ }
24
+ const props = item.props;
25
+ mergedIcons.setItem(name, {
26
+ ...item,
27
+ props: {
28
+ ...props,
29
+ hidden: true
30
+ },
31
+ categories: /* @__PURE__ */ new Set()
32
+ });
33
+ return true;
34
+ }
35
+ case "variation":
36
+ case "alias": {
37
+ let parent = item.parent;
38
+ if (!add(parent)) return false;
39
+ const parentItem = entries[parent];
40
+ if (parentItem.type === "alias") parent = parentItem.parent;
41
+ if (item.type === "variation") {
42
+ const props = item.props;
43
+ mergedIcons.setItem(name, {
44
+ ...item,
45
+ parent,
46
+ props: {
47
+ ...props,
48
+ hidden: true
49
+ }
50
+ });
51
+ } else mergedIcons.setItem(name, {
52
+ ...item,
53
+ parent
54
+ });
55
+ return true;
56
+ }
57
+ default:
58
+ assertNever(item);
59
+ return false;
60
+ }
61
+ }
62
+ for (const name in oldEntries) add(name);
63
+ if (oldIcons.lastModified && !hasIconDataBeenModified(oldIcons, mergedIcons)) mergedIcons.updateLastModified(oldIcons.lastModified);
64
+ else if (newIcons.lastModified && !hasIconDataBeenModified(newIcons, mergedIcons)) mergedIcons.updateLastModified(newIcons.lastModified);
65
+ return mergedIcons;
66
+ }
67
+
68
+ export { mergeIconSets };
@@ -1,16 +1,8 @@
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
  * Check if icons in an icon set were updated.
11
4
  *
12
5
  * This function checks only icons, not metadata. It also ignores icon visibility.
13
6
  */
14
7
  declare function hasIconDataBeenModified(set1: IconSet, set2: IconSet): boolean;
15
-
16
- export { hasIconDataBeenModified };
8
+ export { hasIconDataBeenModified };
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Check if icons in an icon set were updated.
3
+ *
4
+ * This function checks only icons, not metadata. It also ignores icon visibility.
5
+ */
6
+ function hasIconDataBeenModified(set1, set2) {
7
+ const entries1 = set1.entries;
8
+ const entries2 = set2.entries;
9
+ const keys1 = Object.keys(entries1);
10
+ const keys2 = Object.keys(entries2);
11
+ if (keys1.length !== keys2.length) return true;
12
+ for (let i = 0; i < keys1.length; i++) if (!entries2[keys1[i]]) return true;
13
+ for (let i = 0; i < keys1.length; i++) {
14
+ const name = keys1[i];
15
+ if (set1.toString(name) !== set2.toString(name)) return true;
16
+ }
17
+ return false;
18
+ }
19
+
20
+ export { hasIconDataBeenModified };
@@ -1,6 +1,4 @@
1
- import { CommonIconProps } from './types.js';
2
- import '@iconify/types';
3
-
1
+ import { CommonIconProps } from "./types.js";
4
2
  /**
5
3
  * Common properties for icon and alias
6
4
  */
@@ -9,5 +7,4 @@ declare const defaultCommonProps: Required<CommonIconProps>;
9
7
  * Filter icon props: copies properties, removing undefined and default entries
10
8
  */
11
9
  declare function filterProps(data: CommonIconProps, reference: CommonIconProps, compareDefaultValues: boolean): CommonIconProps;
12
-
13
- export { defaultCommonProps, filterProps };
10
+ export { defaultCommonProps, filterProps };
@@ -0,0 +1,19 @@
1
+ import { defaultIconProps } from "@iconify/utils";
2
+ import { commonObjectProps, unmergeObjects } from "@iconify/utils/lib/misc/objects";
3
+
4
+ /**
5
+ * Common properties for icon and alias
6
+ */
7
+ const defaultCommonProps = Object.freeze({
8
+ ...defaultIconProps,
9
+ hidden: false
10
+ });
11
+ /**
12
+ * Filter icon props: copies properties, removing undefined and default entries
13
+ */
14
+ function filterProps(data, reference, compareDefaultValues) {
15
+ const result = commonObjectProps(data, reference);
16
+ return compareDefaultValues ? unmergeObjects(result, reference) : result;
17
+ }
18
+
19
+ export { defaultCommonProps, filterProps };
@@ -1,19 +1,12 @@
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
  declare const paletteTags: {
10
- monotone: string;
11
- palette: string;
3
+ monotone: string;
4
+ palette: string;
12
5
  };
13
6
  declare const sizeTags: {
14
- square: string;
15
- gridPrefix: string;
16
- heightPrefix: string;
7
+ square: string;
8
+ gridPrefix: string;
9
+ heightPrefix: string;
17
10
  };
18
11
  /**
19
12
  * Add tags to icon set
@@ -21,5 +14,4 @@ declare const sizeTags: {
21
14
  * @deprecated
22
15
  */
23
16
  declare function addTagsToIconSet(iconSet: IconSet, customTags?: string[]): string[];
24
-
25
- export { addTagsToIconSet, paletteTags, sizeTags };
17
+ export { addTagsToIconSet, paletteTags, sizeTags };
@@ -0,0 +1,53 @@
1
+ import { detectIconSetPalette } from "../colors/detect.js";
2
+ import { defaultIconDimensions } from "@iconify/utils/lib/icon/defaults";
3
+
4
+ const paletteTags = {
5
+ monotone: "Monotone",
6
+ palette: "Has Colors"
7
+ };
8
+ const sizeTags = {
9
+ square: "Square",
10
+ gridPrefix: "Grid: ",
11
+ heightPrefix: "Height: "
12
+ };
13
+ /**
14
+ * Add tags to icon set
15
+ *
16
+ * @deprecated
17
+ */
18
+ function addTagsToIconSet(iconSet, customTags) {
19
+ const info = iconSet.info;
20
+ const tags = [];
21
+ const iconNames = Object.keys(iconSet.entries).filter((key) => {
22
+ const item = iconSet.entries[key];
23
+ if (item.type !== "icon") return false;
24
+ if (item.props.hidden) return false;
25
+ return true;
26
+ });
27
+ if (iconNames.length) {
28
+ let hasPalette = info?.palette;
29
+ if (hasPalette === void 0) hasPalette = detectIconSetPalette(iconSet);
30
+ if (hasPalette === true) tags.push(paletteTags.palette);
31
+ if (hasPalette === false) tags.push(paletteTags.monotone);
32
+ let isSquare = true;
33
+ let height;
34
+ for (let i = 0; i < iconNames.length; i++) {
35
+ const icon = iconSet.entries[iconNames[i]];
36
+ if (icon.type !== "icon") continue;
37
+ const iconProps = icon.props;
38
+ const iconWidth = iconProps.width || defaultIconDimensions.width;
39
+ const iconHeight = iconProps.height || defaultIconDimensions.height;
40
+ if (isSquare && iconWidth !== iconHeight) isSquare = false;
41
+ if (height === void 0) height = iconHeight;
42
+ else if (height && iconHeight !== height) height = null;
43
+ if (!height && !isSquare) break;
44
+ }
45
+ if (height && Math.round(height) === height) tags.push((isSquare ? sizeTags.gridPrefix : sizeTags.heightPrefix) + height.toString());
46
+ if (isSquare) tags.push(sizeTags.square);
47
+ }
48
+ const result = tags.concat(customTags || []);
49
+ if (info) info.tags = result;
50
+ return result;
51
+ }
52
+
53
+ export { addTagsToIconSet, paletteTags, sizeTags };
@@ -1,18 +1,15 @@
1
- import { ExtendedIconifyIcon, ExtendedIconifyAlias, IconifyOptional, IconifyIcon } from '@iconify/types';
2
-
1
+ import { ExtendedIconifyAlias, ExtendedIconifyIcon, IconifyIcon, IconifyOptional } from "@iconify/types";
3
2
  /**
4
3
  * Category item
5
4
  */
6
5
  interface IconCategory {
7
- title: string;
8
- count: number;
6
+ title: string;
7
+ count: number;
9
8
  }
10
9
  /**
11
10
  * Get common properties: IconifyOptional + APIIconAttributes
12
11
  */
13
- type CommonProps<A, B> = {
14
- [K in keyof A & keyof B]?: A[K] extends B[K] ? A[K] : never;
15
- };
12
+ type CommonProps<A, B> = { [K in keyof A & keyof B]?: A[K] extends B[K] ? A[K] : never };
16
13
  type CommonIconProps = CommonProps<ExtendedIconifyIcon, ExtendedIconifyAlias>;
17
14
  /**
18
15
  * Exclude IconifyOptional from CommonIconProps
@@ -22,29 +19,29 @@ type ExtraIconProps = Omit<CommonIconProps, keyof IconifyOptional>;
22
19
  * Partials
23
20
  */
24
21
  interface IconWithChars {
25
- chars: Set<string>;
22
+ chars: Set<string>;
26
23
  }
27
24
  interface IconWithPropsData extends IconWithChars {
28
- props: CommonIconProps;
25
+ props: CommonIconProps;
29
26
  }
30
27
  interface IconWithCategories {
31
- categories: Set<IconCategory>;
28
+ categories: Set<IconCategory>;
32
29
  }
33
30
  interface IconParentData {
34
- parent: string;
31
+ parent: string;
35
32
  }
36
33
  /**
37
34
  * Icon types
38
35
  */
39
36
  interface IconSetIcon extends IconWithPropsData, IconWithCategories {
40
- type: 'icon';
41
- body: string;
37
+ type: 'icon';
38
+ body: string;
42
39
  }
43
40
  interface IconSetIconAlias extends IconWithChars, IconParentData {
44
- type: 'alias';
41
+ type: 'alias';
45
42
  }
46
43
  interface IconSetIconVariation extends IconWithPropsData, IconParentData {
47
- type: 'variation';
44
+ type: 'variation';
48
45
  }
49
46
  /**
50
47
  * All icon types
@@ -54,14 +51,13 @@ type IconSetIconType = IconSetIconEntry['type'];
54
51
  /**
55
52
  * Full icon with extra stuff
56
53
  */
57
- interface ResolvedIconifyIcon extends IconifyIcon, ExtraIconProps {
58
- }
54
+ interface ResolvedIconifyIcon extends IconifyIcon, ExtraIconProps {}
59
55
  /**
60
56
  * Result for checking theme: list of names for each theme
61
57
  */
62
58
  interface CheckThemeResult {
63
- valid: Record<string, string[]>;
64
- invalid: string[];
59
+ valid: Record<string, string[]>;
60
+ invalid: string[];
65
61
  }
66
62
  /**
67
63
  * Callback for forEach functions
@@ -71,5 +67,4 @@ interface CheckThemeResult {
71
67
  type IconSetForEachCallbackResult = void | false;
72
68
  type IconSetAsyncForEachCallback = (name: string, type: IconSetIconEntry['type']) => Promise<IconSetForEachCallbackResult> | IconSetForEachCallbackResult;
73
69
  type IconSetSyncForEachCallback = (name: string, type: IconSetIconEntry['type']) => IconSetForEachCallbackResult;
74
-
75
- export type { CheckThemeResult, CommonIconProps, ExtraIconProps, IconCategory, IconParentData, IconSetAsyncForEachCallback, IconSetIcon, IconSetIconAlias, IconSetIconEntry, IconSetIconType, IconSetIconVariation, IconSetSyncForEachCallback, IconWithCategories, IconWithChars, IconWithPropsData, ResolvedIconifyIcon };
70
+ export { CheckThemeResult, CommonIconProps, ExtraIconProps, IconCategory, IconParentData, IconSetAsyncForEachCallback, IconSetIcon, IconSetIconAlias, IconSetIconEntry, IconSetIconType, IconSetIconVariation, IconSetSyncForEachCallback, IconWithCategories, IconWithChars, IconWithPropsData, ResolvedIconifyIcon };
@@ -0,0 +1 @@
1
+ export { };
@@ -1,21 +1,13 @@
1
- import { IconSet } from '../icon-set/index.js';
2
- import { CleanupSVGOptions } from '../svg/cleanup.js';
3
- import '@iconify/types';
4
- import '@iconify/utils/lib/customisations/defaults';
5
- import '../icon-set/types.js';
6
- import '../svg/index.js';
7
- import 'cheerio';
8
- import '@iconify/utils/lib/icon-set/tree';
9
- import '../svg/cleanup/bad-tags.js';
10
-
1
+ import { IconSet } from "../icon-set/index.js";
2
+ import { CleanupSVGOptions } from "../svg/cleanup.js";
11
3
  /**
12
4
  * Entry for file
13
5
  */
14
6
  interface ImportDirectoryFileEntry {
15
- path: string;
16
- subdir: string;
17
- file: string;
18
- ext: string;
7
+ path: string;
8
+ subdir: string;
9
+ file: string;
10
+ ext: string;
19
11
  }
20
12
  /**
21
13
  * Callback to get keyword for icon based on file name
@@ -35,10 +27,10 @@ type ImportDirectoryKeywordSyncCallback = Callback<ImportDirectoryKeywordCallbac
35
27
  * Options
36
28
  */
37
29
  interface ImportDirectoryOptions<K> extends CleanupSVGOptions {
38
- prefix?: string;
39
- includeSubDirs?: boolean;
40
- keyword?: K;
41
- ignoreImportErrors?: boolean | 'warn';
30
+ prefix?: string;
31
+ includeSubDirs?: boolean;
32
+ keyword?: K;
33
+ ignoreImportErrors?: boolean | 'warn';
42
34
  }
43
35
  /**
44
36
  * Import all icons from directory
@@ -48,5 +40,4 @@ declare function importDirectory(path: string, options?: ImportDirectoryOptions<
48
40
  * Import all icons from directory synchronously
49
41
  */
50
42
  declare function importDirectorySync(path: string, options?: ImportDirectoryOptions<ImportDirectoryKeywordSyncCallback>): IconSet;
51
-
52
- export { type ImportDirectoryFileEntry, type ImportDirectoryKeywordCallback, type ImportDirectoryKeywordSyncCallback, importDirectory, importDirectorySync };
43
+ export { ImportDirectoryFileEntry, ImportDirectoryKeywordCallback, ImportDirectoryKeywordSyncCallback, importDirectory, importDirectorySync };
@@ -0,0 +1,101 @@
1
+ import { SVG } from "../svg/index.js";
2
+ import { cleanupSVG } from "../svg/cleanup.js";
3
+ import { blankIconSet } from "../icon-set/index.js";
4
+ import { scanDirectory, scanDirectorySync } from "../misc/scan.js";
5
+ import { cleanupIconKeyword } from "../misc/keyword.js";
6
+ import { promises, readFileSync } from "fs";
7
+
8
+ function importDir(iconSet, options, getKeyword, files, readFile, done) {
9
+ let i = 0;
10
+ const next = () => {
11
+ if (i >= files.length) return done(iconSet);
12
+ const file = files[i];
13
+ i++;
14
+ getKeyword([
15
+ file,
16
+ cleanupIconKeyword(file.file),
17
+ iconSet
18
+ ], (keyword) => {
19
+ if (typeof keyword !== "string" || !keyword.length) return next();
20
+ readFile(file.path + file.subdir + file.file + file.ext, (content) => {
21
+ try {
22
+ const svg = new SVG(content);
23
+ cleanupSVG(svg, options);
24
+ iconSet.fromSVG(keyword, svg);
25
+ } catch (err) {
26
+ const ignore = options.ignoreImportErrors ?? false;
27
+ if (ignore === false || ignore === "warn") {
28
+ let msg = `Failed to import "${keyword}"`;
29
+ if (err instanceof Error) msg += `: ${err.message}`;
30
+ if (ignore === false) throw new Error(msg);
31
+ else console.warn(msg);
32
+ }
33
+ }
34
+ next();
35
+ });
36
+ });
37
+ };
38
+ next();
39
+ }
40
+ function isValidFile(item) {
41
+ return item.ext.toLowerCase() === ".svg";
42
+ }
43
+ /**
44
+ * Import all icons from directory
45
+ */
46
+ function importDirectory(path, options = {}) {
47
+ return new Promise((fulfill, reject) => {
48
+ scanDirectory(path, (ext, file, subdir, path$1) => {
49
+ const result = {
50
+ file,
51
+ ext,
52
+ subdir,
53
+ path: path$1
54
+ };
55
+ return isValidFile(result) ? result : false;
56
+ }, options.includeSubDirs !== false).then((files) => {
57
+ const iconSet = blankIconSet(options.prefix || "");
58
+ try {
59
+ importDir(iconSet, options, (params, done) => {
60
+ if (options.keyword) {
61
+ const result = options.keyword(...params);
62
+ if (result instanceof Promise) result.then(done).catch(reject);
63
+ else done(result);
64
+ } else done(params[1]);
65
+ }, files, (filename, done) => {
66
+ promises.readFile(filename, "utf8").then(done).catch(reject);
67
+ }, fulfill);
68
+ } catch (err) {
69
+ reject(err);
70
+ }
71
+ }).catch(reject);
72
+ });
73
+ }
74
+ /**
75
+ * Import all icons from directory synchronously
76
+ */
77
+ function importDirectorySync(path, options = {}) {
78
+ const files = scanDirectorySync(path, (ext, file, subdir, path$1) => {
79
+ const result = {
80
+ file,
81
+ ext,
82
+ subdir,
83
+ path: path$1
84
+ };
85
+ return isValidFile(result) ? result : false;
86
+ }, options.includeSubDirs !== false);
87
+ const iconSet = blankIconSet(options.prefix || "");
88
+ let isSync = true;
89
+ importDir(iconSet, options, (params, done) => {
90
+ if (options.keyword) done(options.keyword(...params));
91
+ else done(params[1]);
92
+ }, files, (filename, done) => {
93
+ done(readFileSync(filename, "utf8"));
94
+ }, () => {
95
+ if (!isSync) throw new Error("importDirectorySync supposed to be synchronous");
96
+ });
97
+ isSync = false;
98
+ return iconSet;
99
+ }
100
+
101
+ export { importDirectory, importDirectorySync };
@@ -1,20 +1,9 @@
1
- import { DocumentNotModified } from '../../download/types/modified.js';
2
- import { FigmaIfModifiedSinceOption, FigmaImportOptions } from './types/options.js';
3
- import { FigmaImportResult } from './types/result.js';
4
- import '../../icon-set/index.js';
5
- import '@iconify/types';
6
- import '@iconify/utils/lib/customisations/defaults';
7
- import '../../icon-set/types.js';
8
- import '../../svg/index.js';
9
- import 'cheerio';
10
- import '@iconify/utils/lib/icon-set/tree';
11
- import './types/nodes.js';
12
- import './types/api.js';
13
-
1
+ import { DocumentNotModified } from "../../download/types/modified.js";
2
+ import { FigmaImportResult } from "./types/result.js";
3
+ import { FigmaIfModifiedSinceOption, FigmaImportOptions } from "./types/options.js";
14
4
  /**
15
5
  * Import icon set from Figma
16
6
  */
17
7
  declare function importFromFigma<T extends FigmaIfModifiedSinceOption & FigmaImportOptions>(options: T): Promise<FigmaImportResult | DocumentNotModified>;
18
8
  declare function importFromFigma(options: FigmaImportOptions): Promise<FigmaImportResult>;
19
-
20
- export { importFromFigma };
9
+ export { importFromFigma };
@@ -0,0 +1,61 @@
1
+ import { SVG } from "../../svg/index.js";
2
+ import { cleanupSVG } from "../../svg/cleanup.js";
3
+ import { blankIconSet } from "../../icon-set/index.js";
4
+ import { getFigmaIconNodes } from "./nodes.js";
5
+ import { figmaDownloadImages, figmaFilesQuery, figmaImagesQuery } from "./query.js";
6
+
7
+ async function importFromFigma(options) {
8
+ const cacheOptions = options.cacheDir ? {
9
+ ttl: options.cacheAPITTL || 3600 * 24,
10
+ dir: options.cacheDir
11
+ } : void 0;
12
+ const cacheSVGOptions = options.cacheDir ? {
13
+ ttl: options.cacheSVGTTL || 3600 * 24 * 30,
14
+ dir: options.cacheDir
15
+ } : void 0;
16
+ const document = await figmaFilesQuery(options, cacheOptions);
17
+ if (document === "not_modified") return document;
18
+ options.version = document.version;
19
+ const nodes = getFigmaIconNodes(document, options);
20
+ await figmaImagesQuery(options, nodes, cacheOptions);
21
+ await figmaDownloadImages(nodes, cacheSVGOptions);
22
+ const iconSet = blankIconSet(options.prefix);
23
+ const icons = nodes.icons;
24
+ const missing = [];
25
+ const iconIDs = Object.keys(icons);
26
+ for (let i = 0; i < iconIDs.length; i++) {
27
+ const item = icons[iconIDs[i]];
28
+ if (typeof item.content !== "string") {
29
+ missing.push(item);
30
+ continue;
31
+ }
32
+ if (options.beforeImportingIcon) {
33
+ const callbackResult = options.beforeImportingIcon(item, iconSet);
34
+ if (callbackResult instanceof Promise) await callbackResult;
35
+ }
36
+ try {
37
+ const svg = new SVG(item.content);
38
+ cleanupSVG(svg);
39
+ iconSet.fromSVG(item.keyword, svg);
40
+ } catch (err) {
41
+ missing.push(item);
42
+ continue;
43
+ }
44
+ if (options.afterImportingIcon) {
45
+ const callbackResult = options.afterImportingIcon(item, iconSet);
46
+ if (callbackResult instanceof Promise) await callbackResult;
47
+ }
48
+ }
49
+ return {
50
+ name: document.name,
51
+ version: document.version,
52
+ lastModified: document.lastModified,
53
+ nodesCount: nodes.nodesCount,
54
+ generatedIconsCount: nodes.generatedIconsCount,
55
+ downloadedIconsCount: nodes.downloadedIconsCount,
56
+ iconSet,
57
+ missing
58
+ };
59
+ }
60
+
61
+ export { importFromFigma };
@@ -1,18 +1,8 @@
1
- import { FigmaDocument } from './types/api.js';
2
- import { FigmaGetIconNodesOptions } from './types/options.js';
3
- import { FigmaNodesImportResult } from './types/result.js';
4
- import '../../icon-set/index.js';
5
- import '@iconify/types';
6
- import '@iconify/utils/lib/customisations/defaults';
7
- import '../../icon-set/types.js';
8
- import '../../svg/index.js';
9
- import 'cheerio';
10
- import '@iconify/utils/lib/icon-set/tree';
11
- import './types/nodes.js';
12
-
1
+ import { FigmaDocument } from "./types/api.js";
2
+ import { FigmaNodesImportResult } from "./types/result.js";
3
+ import { FigmaGetIconNodesOptions } from "./types/options.js";
13
4
  /**
14
5
  * Get node ids for icons
15
6
  */
16
7
  declare function getFigmaIconNodes(document: FigmaDocument, options: FigmaGetIconNodesOptions): FigmaNodesImportResult;
17
-
18
- export { getFigmaIconNodes };
8
+ export { getFigmaIconNodes };
@@ -0,0 +1,80 @@
1
+ function assertNever(v) {}
2
+ /**
3
+ * Get node ids for icons
4
+ */
5
+ function getFigmaIconNodes(document, options) {
6
+ const nodes = { icons: Object.create(null) };
7
+ let found = 0;
8
+ const check = (node, parents) => {
9
+ const iconNodeType = node.type;
10
+ switch (iconNodeType) {
11
+ case "COMPONENT":
12
+ case "INSTANCE":
13
+ case "FRAME": {
14
+ const iconNode = node;
15
+ if (iconNode.absoluteBoundingBox) {
16
+ const box = iconNode.absoluteBoundingBox;
17
+ const item = {
18
+ ...node,
19
+ type: iconNodeType,
20
+ width: box.width,
21
+ height: box.height,
22
+ parents
23
+ };
24
+ const keyword = options.iconNameForNode(item, nodes, document);
25
+ if (typeof keyword === "string") {
26
+ found++;
27
+ nodes.icons[node.id] = {
28
+ id: node.id,
29
+ name: node.name,
30
+ keyword
31
+ };
32
+ return;
33
+ }
34
+ if (keyword && typeof keyword === "object" && typeof keyword.keyword === "string") {
35
+ found++;
36
+ nodes.icons[node.id] = {
37
+ ...keyword,
38
+ id: node.id,
39
+ name: node.name
40
+ };
41
+ return;
42
+ }
43
+ }
44
+ break;
45
+ }
46
+ default: assertNever(iconNodeType);
47
+ }
48
+ if (!node.children) return;
49
+ const parentNodeType = node.type;
50
+ switch (parentNodeType) {
51
+ case "CANVAS":
52
+ case "FRAME":
53
+ case "GROUP":
54
+ case "SECTION":
55
+ case "COMPONENT_SET": {
56
+ const parentItem = {
57
+ ...node,
58
+ type: parentNodeType
59
+ };
60
+ const newParents = parents.concat([parentItem]);
61
+ if (!parents.length && options.pages) {
62
+ const allowedPages = options.pages;
63
+ if (!allowedPages.includes(node.id) && !allowedPages.includes(node.name.trim())) return;
64
+ } else if (options.filterParentNode && !options.filterParentNode(newParents, document)) return;
65
+ node.children.forEach((childNode) => {
66
+ check(childNode, newParents);
67
+ });
68
+ break;
69
+ }
70
+ default: assertNever(parentNodeType);
71
+ }
72
+ };
73
+ document.document.children.forEach((node) => {
74
+ check(node, []);
75
+ });
76
+ nodes.nodesCount = found;
77
+ return nodes;
78
+ }
79
+
80
+ export { getFigmaIconNodes };