@iconify/tools 4.0.0-dev.1 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (301) hide show
  1. package/lib/colors/attribs.d.cts +27 -0
  2. package/lib/colors/attribs.d.mts +27 -0
  3. package/lib/colors/attribs.d.ts +1 -1
  4. package/lib/colors/detect.cjs +2 -2
  5. package/lib/colors/detect.d.cts +16 -0
  6. package/lib/colors/detect.d.mts +16 -0
  7. package/lib/colors/detect.mjs +3 -3
  8. package/lib/colors/parse.cjs +132 -276
  9. package/lib/colors/parse.d.cts +60 -0
  10. package/lib/colors/parse.d.mts +60 -0
  11. package/lib/colors/parse.d.ts +7 -15
  12. package/lib/colors/parse.mjs +136 -279
  13. package/lib/colors/validate.cjs +2 -11
  14. package/lib/colors/validate.d.cts +20 -0
  15. package/lib/colors/validate.d.mts +20 -0
  16. package/lib/colors/validate.d.ts +4 -11
  17. package/lib/colors/validate.mjs +4 -12
  18. package/lib/css/parse.d.cts +6 -0
  19. package/lib/css/parse.d.mts +6 -0
  20. package/lib/css/parser/error.d.cts +13 -0
  21. package/lib/css/parser/error.d.mts +13 -0
  22. package/lib/css/parser/error.d.ts +1 -1
  23. package/lib/css/parser/export.d.cts +8 -0
  24. package/lib/css/parser/export.d.mts +8 -0
  25. package/lib/css/parser/strings.d.cts +16 -0
  26. package/lib/css/parser/strings.d.mts +16 -0
  27. package/lib/css/parser/text.d.cts +20 -0
  28. package/lib/css/parser/text.d.mts +20 -0
  29. package/lib/css/parser/tokens.d.cts +9 -0
  30. package/lib/css/parser/tokens.d.mts +9 -0
  31. package/lib/css/parser/tree.d.cts +8 -0
  32. package/lib/css/parser/tree.d.mts +8 -0
  33. package/lib/css/parser/types.d.cts +52 -0
  34. package/lib/css/parser/types.d.mts +52 -0
  35. package/lib/css/parser/types.d.ts +1 -1
  36. package/lib/download/api/cache.d.cts +20 -0
  37. package/lib/download/api/cache.d.mts +20 -0
  38. package/lib/download/api/config.cjs +11 -0
  39. package/lib/download/api/config.d.cts +18 -0
  40. package/lib/download/api/config.d.mts +18 -0
  41. package/lib/download/api/config.d.ts +18 -0
  42. package/lib/download/api/config.mjs +8 -0
  43. package/lib/download/api/download.cjs +15 -7
  44. package/lib/download/api/download.d.cts +8 -0
  45. package/lib/download/api/download.d.mts +8 -0
  46. package/lib/download/api/download.mjs +11 -7
  47. package/lib/download/api/index.cjs +23 -7
  48. package/lib/download/api/index.d.cts +8 -0
  49. package/lib/download/api/index.d.mts +8 -0
  50. package/lib/download/api/index.mjs +19 -7
  51. package/lib/download/api/queue.cjs +104 -0
  52. package/lib/download/api/queue.d.cts +32 -0
  53. package/lib/download/api/queue.d.mts +32 -0
  54. package/lib/download/api/queue.d.ts +32 -0
  55. package/lib/download/api/queue.mjs +101 -0
  56. package/lib/download/api/types.d.cts +17 -0
  57. package/lib/download/api/types.d.mts +17 -0
  58. package/lib/download/api/types.d.ts +1 -1
  59. package/lib/download/git/branch.d.cts +8 -0
  60. package/lib/download/git/branch.d.mts +8 -0
  61. package/lib/download/git/hash.d.cts +8 -0
  62. package/lib/download/git/hash.d.mts +8 -0
  63. package/lib/download/git/index.cjs +2 -4
  64. package/lib/download/git/index.d.cts +29 -0
  65. package/lib/download/git/index.d.mts +29 -0
  66. package/lib/download/git/index.d.ts +1 -1
  67. package/lib/download/git/index.mjs +2 -4
  68. package/lib/download/git/reset.cjs +2 -4
  69. package/lib/download/git/reset.d.cts +6 -0
  70. package/lib/download/git/reset.d.mts +6 -0
  71. package/lib/download/git/reset.mjs +2 -4
  72. package/lib/download/github/hash.cjs +2 -0
  73. package/lib/download/github/hash.d.cts +8 -0
  74. package/lib/download/github/hash.d.mts +8 -0
  75. package/lib/download/github/hash.mjs +2 -0
  76. package/lib/download/github/index.cjs +2 -2
  77. package/lib/download/github/index.d.cts +31 -0
  78. package/lib/download/github/index.d.mts +31 -0
  79. package/lib/download/github/index.d.ts +1 -1
  80. package/lib/download/github/index.mjs +2 -2
  81. package/lib/download/github/types.d.cts +11 -0
  82. package/lib/download/github/types.d.mts +11 -0
  83. package/lib/download/github/types.d.ts +1 -1
  84. package/lib/download/gitlab/hash.cjs +2 -0
  85. package/lib/download/gitlab/hash.d.cts +8 -0
  86. package/lib/download/gitlab/hash.d.mts +8 -0
  87. package/lib/download/gitlab/hash.mjs +2 -0
  88. package/lib/download/gitlab/index.cjs +2 -2
  89. package/lib/download/gitlab/index.d.cts +31 -0
  90. package/lib/download/gitlab/index.d.mts +31 -0
  91. package/lib/download/gitlab/index.d.ts +1 -1
  92. package/lib/download/gitlab/index.mjs +2 -2
  93. package/lib/download/gitlab/types.d.cts +15 -0
  94. package/lib/download/gitlab/types.d.mts +15 -0
  95. package/lib/download/gitlab/types.d.ts +1 -1
  96. package/lib/download/helpers/untar.d.cts +6 -0
  97. package/lib/download/helpers/untar.d.mts +6 -0
  98. package/lib/download/helpers/unzip.d.cts +6 -0
  99. package/lib/download/helpers/unzip.d.mts +6 -0
  100. package/lib/download/index.cjs +2 -2
  101. package/lib/download/index.d.cts +48 -0
  102. package/lib/download/index.d.mts +48 -0
  103. package/lib/download/index.d.ts +1 -1
  104. package/lib/download/index.mjs +2 -2
  105. package/lib/download/npm/index.cjs +2 -2
  106. package/lib/download/npm/index.d.cts +30 -0
  107. package/lib/download/npm/index.d.mts +30 -0
  108. package/lib/download/npm/index.d.ts +1 -1
  109. package/lib/download/npm/index.mjs +2 -2
  110. package/lib/download/npm/types.d.cts +9 -0
  111. package/lib/download/npm/types.d.mts +9 -0
  112. package/lib/download/npm/types.d.ts +1 -1
  113. package/lib/download/npm/version.d.cts +16 -0
  114. package/lib/download/npm/version.d.mts +16 -0
  115. package/lib/download/npm/version.d.ts +1 -1
  116. package/lib/download/types/modified.d.cts +6 -0
  117. package/lib/download/types/modified.d.mts +6 -0
  118. package/lib/download/types/modified.d.ts +1 -1
  119. package/lib/download/types/sources.d.cts +12 -0
  120. package/lib/download/types/sources.d.mts +12 -0
  121. package/lib/download/types/sources.d.ts +1 -1
  122. package/lib/export/directory.d.cts +26 -0
  123. package/lib/export/directory.d.mts +26 -0
  124. package/lib/export/directory.d.ts +1 -1
  125. package/lib/export/helpers/custom-files.d.cts +12 -0
  126. package/lib/export/helpers/custom-files.d.mts +12 -0
  127. package/lib/export/helpers/custom-files.d.ts +1 -1
  128. package/lib/export/helpers/prepare.d.cts +19 -0
  129. package/lib/export/helpers/prepare.d.mts +19 -0
  130. package/lib/export/helpers/prepare.d.ts +1 -1
  131. package/lib/export/helpers/types-version.d.cts +6 -0
  132. package/lib/export/helpers/types-version.d.mts +6 -0
  133. package/lib/export/icon-package.d.cts +26 -0
  134. package/lib/export/icon-package.d.mts +26 -0
  135. package/lib/export/icon-package.d.ts +2 -2
  136. package/lib/export/json-package.cjs +1 -0
  137. package/lib/export/json-package.d.cts +25 -0
  138. package/lib/export/json-package.d.mts +25 -0
  139. package/lib/export/json-package.d.ts +2 -1
  140. package/lib/export/json-package.mjs +1 -0
  141. package/lib/icon-set/index.cjs +25 -4
  142. package/lib/icon-set/index.d.cts +162 -0
  143. package/lib/icon-set/index.d.mts +162 -0
  144. package/lib/icon-set/index.mjs +25 -4
  145. package/lib/icon-set/match.d.cts +15 -0
  146. package/lib/icon-set/match.d.mts +15 -0
  147. package/lib/icon-set/merge.d.cts +14 -0
  148. package/lib/icon-set/merge.d.mts +14 -0
  149. package/lib/icon-set/modified.d.cts +16 -0
  150. package/lib/icon-set/modified.d.mts +16 -0
  151. package/lib/icon-set/props.d.cts +13 -0
  152. package/lib/icon-set/props.d.mts +13 -0
  153. package/lib/icon-set/tags.d.cts +23 -0
  154. package/lib/icon-set/tags.d.mts +23 -0
  155. package/lib/icon-set/types.d.cts +75 -0
  156. package/lib/icon-set/types.d.mts +75 -0
  157. package/lib/icon-set/types.d.ts +1 -1
  158. package/lib/import/directory.d.cts +52 -0
  159. package/lib/import/directory.d.mts +52 -0
  160. package/lib/import/directory.d.ts +1 -1
  161. package/lib/import/figma/index.cjs +3 -0
  162. package/lib/import/figma/index.d.cts +20 -0
  163. package/lib/import/figma/index.d.mts +20 -0
  164. package/lib/import/figma/index.mjs +3 -0
  165. package/lib/import/figma/nodes.cjs +1 -1
  166. package/lib/import/figma/nodes.d.cts +18 -0
  167. package/lib/import/figma/nodes.d.mts +18 -0
  168. package/lib/import/figma/nodes.mjs +1 -1
  169. package/lib/import/figma/query.cjs +104 -76
  170. package/lib/import/figma/query.d.cts +42 -0
  171. package/lib/import/figma/query.d.mts +42 -0
  172. package/lib/import/figma/query.d.ts +15 -2
  173. package/lib/import/figma/query.mjs +106 -78
  174. package/lib/import/figma/types/api.d.cts +53 -0
  175. package/lib/import/figma/types/api.d.mts +53 -0
  176. package/lib/import/figma/types/api.d.ts +1 -1
  177. package/lib/import/figma/types/nodes.d.cts +44 -0
  178. package/lib/import/figma/types/nodes.d.mts +44 -0
  179. package/lib/import/figma/types/nodes.d.ts +1 -1
  180. package/lib/import/figma/types/options.d.cts +59 -0
  181. package/lib/import/figma/types/options.d.mts +59 -0
  182. package/lib/import/figma/types/options.d.ts +1 -1
  183. package/lib/import/figma/types/result.d.cts +44 -0
  184. package/lib/import/figma/types/result.d.mts +44 -0
  185. package/lib/import/figma/types/result.d.ts +1 -1
  186. package/lib/index.cjs +15 -13
  187. package/lib/index.d.cts +78 -0
  188. package/lib/index.d.mts +78 -0
  189. package/lib/index.d.ts +8 -5
  190. package/lib/index.mjs +14 -12
  191. package/lib/misc/bump-version.d.cts +6 -0
  192. package/lib/misc/bump-version.d.mts +6 -0
  193. package/lib/misc/cheerio.d.cts +9 -0
  194. package/lib/misc/cheerio.d.mts +9 -0
  195. package/lib/misc/cheerio.d.ts +1 -1
  196. package/lib/misc/compare-dirs.cjs +3 -3
  197. package/lib/misc/compare-dirs.d.cts +11 -0
  198. package/lib/misc/compare-dirs.d.mts +11 -0
  199. package/lib/misc/compare-dirs.d.ts +1 -1
  200. package/lib/misc/compare-dirs.mjs +3 -3
  201. package/lib/misc/exec.d.cts +12 -0
  202. package/lib/misc/exec.d.mts +12 -0
  203. package/lib/misc/exec.d.ts +1 -1
  204. package/lib/misc/keyword.d.cts +6 -0
  205. package/lib/misc/keyword.d.mts +6 -0
  206. package/lib/misc/scan.d.cts +33 -0
  207. package/lib/misc/scan.d.mts +33 -0
  208. package/lib/misc/scan.d.ts +3 -3
  209. package/lib/misc/write-json.d.cts +6 -0
  210. package/lib/misc/write-json.d.mts +6 -0
  211. package/lib/optimise/figma.cjs +55 -33
  212. package/lib/optimise/figma.d.cts +13 -0
  213. package/lib/optimise/figma.d.mts +13 -0
  214. package/lib/optimise/figma.d.ts +3 -1
  215. package/lib/optimise/figma.mjs +55 -33
  216. package/lib/optimise/flags.cjs +3 -3
  217. package/lib/optimise/flags.d.cts +11 -0
  218. package/lib/optimise/flags.d.mts +11 -0
  219. package/lib/optimise/flags.d.ts +1 -1
  220. package/lib/optimise/flags.mjs +3 -3
  221. package/lib/optimise/global-style.cjs +7 -7
  222. package/lib/optimise/global-style.d.cts +11 -0
  223. package/lib/optimise/global-style.d.mts +11 -0
  224. package/lib/optimise/global-style.d.ts +1 -1
  225. package/lib/optimise/global-style.mjs +7 -7
  226. package/lib/optimise/mask.cjs +1 -1
  227. package/lib/optimise/mask.d.cts +24 -0
  228. package/lib/optimise/mask.d.mts +24 -0
  229. package/lib/optimise/mask.mjs +2 -2
  230. package/lib/optimise/origin.d.cts +11 -0
  231. package/lib/optimise/origin.d.mts +11 -0
  232. package/lib/optimise/scale.d.cts +11 -0
  233. package/lib/optimise/scale.d.mts +11 -0
  234. package/lib/optimise/svgo.cjs +1 -1
  235. package/lib/optimise/svgo.d.cts +37 -0
  236. package/lib/optimise/svgo.d.mts +37 -0
  237. package/lib/optimise/svgo.mjs +1 -1
  238. package/lib/optimise/unwrap.cjs +31 -0
  239. package/lib/optimise/unwrap.d.cts +11 -0
  240. package/lib/optimise/unwrap.d.mts +11 -0
  241. package/lib/optimise/unwrap.d.ts +11 -0
  242. package/lib/optimise/unwrap.mjs +29 -0
  243. package/lib/svg/analyse/error.d.cts +10 -0
  244. package/lib/svg/analyse/error.d.mts +10 -0
  245. package/lib/svg/analyse/error.d.ts +1 -0
  246. package/lib/svg/analyse/types.d.cts +92 -0
  247. package/lib/svg/analyse/types.d.mts +92 -0
  248. package/lib/svg/analyse/types.d.ts +4 -3
  249. package/lib/svg/analyse.cjs +2 -2
  250. package/lib/svg/analyse.d.cts +15 -0
  251. package/lib/svg/analyse.d.mts +15 -0
  252. package/lib/svg/analyse.d.ts +1 -0
  253. package/lib/svg/analyse.mjs +4 -4
  254. package/lib/svg/cleanup/attribs.cjs +1 -1
  255. package/lib/svg/cleanup/attribs.d.cts +11 -0
  256. package/lib/svg/cleanup/attribs.d.mts +11 -0
  257. package/lib/svg/cleanup/attribs.mjs +2 -2
  258. package/lib/svg/cleanup/bad-tags.cjs +1 -1
  259. package/lib/svg/cleanup/bad-tags.d.cts +17 -0
  260. package/lib/svg/cleanup/bad-tags.d.mts +17 -0
  261. package/lib/svg/cleanup/bad-tags.d.ts +1 -1
  262. package/lib/svg/cleanup/bad-tags.mjs +2 -2
  263. package/lib/svg/cleanup/inline-style.cjs +1 -1
  264. package/lib/svg/cleanup/inline-style.d.cts +11 -0
  265. package/lib/svg/cleanup/inline-style.d.mts +11 -0
  266. package/lib/svg/cleanup/inline-style.mjs +2 -2
  267. package/lib/svg/cleanup/root-style.cjs +1 -1
  268. package/lib/svg/cleanup/root-style.d.cts +17 -0
  269. package/lib/svg/cleanup/root-style.d.mts +17 -0
  270. package/lib/svg/cleanup/root-style.mjs +2 -2
  271. package/lib/svg/cleanup/root-svg.cjs +3 -3
  272. package/lib/svg/cleanup/root-svg.d.cts +11 -0
  273. package/lib/svg/cleanup/root-svg.d.mts +11 -0
  274. package/lib/svg/cleanup/root-svg.mjs +3 -3
  275. package/lib/svg/cleanup/svgo-style.cjs +2 -2
  276. package/lib/svg/cleanup/svgo-style.d.cts +11 -0
  277. package/lib/svg/cleanup/svgo-style.d.mts +11 -0
  278. package/lib/svg/cleanup/svgo-style.mjs +3 -3
  279. package/lib/svg/cleanup.d.cts +16 -0
  280. package/lib/svg/cleanup.d.mts +16 -0
  281. package/lib/svg/cleanup.d.ts +1 -1
  282. package/lib/svg/data/attributes.d.cts +77 -0
  283. package/lib/svg/data/attributes.d.mts +77 -0
  284. package/lib/svg/data/tags.d.cts +95 -0
  285. package/lib/svg/data/tags.d.mts +95 -0
  286. package/lib/svg/index.cjs +18 -1
  287. package/lib/svg/index.d.cts +52 -0
  288. package/lib/svg/index.d.mts +52 -0
  289. package/lib/svg/index.d.ts +5 -1
  290. package/lib/svg/index.mjs +19 -2
  291. package/lib/svg/parse-style.cjs +178 -235
  292. package/lib/svg/parse-style.d.cts +58 -0
  293. package/lib/svg/parse-style.d.mts +58 -0
  294. package/lib/svg/parse-style.d.ts +3 -9
  295. package/lib/svg/parse-style.mjs +180 -236
  296. package/lib/svg/parse.cjs +27 -59
  297. package/lib/svg/parse.d.cts +30 -0
  298. package/lib/svg/parse.d.mts +30 -0
  299. package/lib/svg/parse.d.ts +3 -10
  300. package/lib/svg/parse.mjs +28 -59
  301. package/package.json +34 -24
@@ -0,0 +1,11 @@
1
+ import { SVG } from '../svg/index.mjs';
2
+ import 'cheerio';
3
+ import '@iconify/types';
4
+ import '@iconify/utils/lib/customisations/defaults';
5
+
6
+ /**
7
+ * Scale icon
8
+ */
9
+ declare function scaleSVG(svg: SVG, scale: number): void;
10
+
11
+ export { scaleSVG };
@@ -60,7 +60,7 @@ function runSVGO(svg, options = {}) {
60
60
  if (options.plugins) {
61
61
  plugins = options.plugins;
62
62
  } else {
63
- const animated = code.indexOf("<animate") !== -1 || code.indexOf("<set") !== -1;
63
+ const animated = code.includes("<animate") || code.includes("<set");
64
64
  plugins = getSVGOPlugins({
65
65
  ...options,
66
66
  animated
@@ -0,0 +1,37 @@
1
+ import { PluginConfig } from 'svgo';
2
+ import { SVG } from '../svg/index.cjs';
3
+ import 'cheerio';
4
+ import '@iconify/types';
5
+ import '@iconify/utils/lib/customisations/defaults';
6
+
7
+ interface CleanupIDsOption {
8
+ cleanupIDs?: string | ((id: string) => string) | false;
9
+ }
10
+ interface GetSVGOPluginOptions extends CleanupIDsOption {
11
+ animated?: boolean;
12
+ keepShapes?: boolean;
13
+ }
14
+ /**
15
+ * Get list of plugins
16
+ */
17
+ declare function getSVGOPlugins(options: GetSVGOPluginOptions): PluginConfig[];
18
+ /**
19
+ * Options
20
+ */
21
+ interface SVGOCommonOptions {
22
+ multipass?: boolean;
23
+ }
24
+ interface SVGOOptionsWithPlugin extends SVGOCommonOptions {
25
+ plugins: PluginConfig[];
26
+ }
27
+ interface SVGOptionsWithoutPlugin extends SVGOCommonOptions, CleanupIDsOption {
28
+ plugins?: undefined;
29
+ keepShapes?: boolean;
30
+ }
31
+ type SVGOOptions = SVGOOptionsWithPlugin | SVGOptionsWithoutPlugin;
32
+ /**
33
+ * Run SVGO on icon
34
+ */
35
+ declare function runSVGO(svg: SVG, options?: SVGOOptions): void;
36
+
37
+ export { getSVGOPlugins, runSVGO };
@@ -0,0 +1,37 @@
1
+ import { PluginConfig } from 'svgo';
2
+ import { SVG } from '../svg/index.mjs';
3
+ import 'cheerio';
4
+ import '@iconify/types';
5
+ import '@iconify/utils/lib/customisations/defaults';
6
+
7
+ interface CleanupIDsOption {
8
+ cleanupIDs?: string | ((id: string) => string) | false;
9
+ }
10
+ interface GetSVGOPluginOptions extends CleanupIDsOption {
11
+ animated?: boolean;
12
+ keepShapes?: boolean;
13
+ }
14
+ /**
15
+ * Get list of plugins
16
+ */
17
+ declare function getSVGOPlugins(options: GetSVGOPluginOptions): PluginConfig[];
18
+ /**
19
+ * Options
20
+ */
21
+ interface SVGOCommonOptions {
22
+ multipass?: boolean;
23
+ }
24
+ interface SVGOOptionsWithPlugin extends SVGOCommonOptions {
25
+ plugins: PluginConfig[];
26
+ }
27
+ interface SVGOptionsWithoutPlugin extends SVGOCommonOptions, CleanupIDsOption {
28
+ plugins?: undefined;
29
+ keepShapes?: boolean;
30
+ }
31
+ type SVGOOptions = SVGOOptionsWithPlugin | SVGOptionsWithoutPlugin;
32
+ /**
33
+ * Run SVGO on icon
34
+ */
35
+ declare function runSVGO(svg: SVG, options?: SVGOOptions): void;
36
+
37
+ export { getSVGOPlugins, runSVGO };
@@ -58,7 +58,7 @@ function runSVGO(svg, options = {}) {
58
58
  if (options.plugins) {
59
59
  plugins = options.plugins;
60
60
  } else {
61
- const animated = code.indexOf("<animate") !== -1 || code.indexOf("<set") !== -1;
61
+ const animated = code.includes("<animate") || code.includes("<set");
62
62
  plugins = getSVGOPlugins({
63
63
  ...options,
64
64
  animated
@@ -0,0 +1,31 @@
1
+ 'use strict';
2
+
3
+ function unwrapEmptyGroup(svg) {
4
+ const cheerio = svg.$svg;
5
+ const $root = svg.$svg(":root");
6
+ const children = $root.children();
7
+ if (children.length !== 1 || children[0].tagName !== "g") {
8
+ return;
9
+ }
10
+ const groupNode = children[0];
11
+ const html = cheerio(groupNode).html();
12
+ if (!html) {
13
+ return;
14
+ }
15
+ for (const attr in groupNode.attribs) {
16
+ const value = groupNode.attribs[attr];
17
+ switch (attr) {
18
+ case "id": {
19
+ if (html?.includes(value)) {
20
+ return;
21
+ }
22
+ break;
23
+ }
24
+ default:
25
+ return;
26
+ }
27
+ }
28
+ $root.html(html);
29
+ }
30
+
31
+ exports.unwrapEmptyGroup = unwrapEmptyGroup;
@@ -0,0 +1,11 @@
1
+ import { SVG } from '../svg/index.cjs';
2
+ import 'cheerio';
3
+ import '@iconify/types';
4
+ import '@iconify/utils/lib/customisations/defaults';
5
+
6
+ /**
7
+ * Removes empty group from SVG root element
8
+ */
9
+ declare function unwrapEmptyGroup(svg: SVG): void;
10
+
11
+ export { unwrapEmptyGroup };
@@ -0,0 +1,11 @@
1
+ import { SVG } from '../svg/index.mjs';
2
+ import 'cheerio';
3
+ import '@iconify/types';
4
+ import '@iconify/utils/lib/customisations/defaults';
5
+
6
+ /**
7
+ * Removes empty group from SVG root element
8
+ */
9
+ declare function unwrapEmptyGroup(svg: SVG): void;
10
+
11
+ export { unwrapEmptyGroup };
@@ -0,0 +1,11 @@
1
+ import { SVG } from '../svg/index.js';
2
+ import 'cheerio';
3
+ import '@iconify/types';
4
+ import '@iconify/utils/lib/customisations/defaults';
5
+
6
+ /**
7
+ * Removes empty group from SVG root element
8
+ */
9
+ declare function unwrapEmptyGroup(svg: SVG): void;
10
+
11
+ export { unwrapEmptyGroup };
@@ -0,0 +1,29 @@
1
+ function unwrapEmptyGroup(svg) {
2
+ const cheerio = svg.$svg;
3
+ const $root = svg.$svg(":root");
4
+ const children = $root.children();
5
+ if (children.length !== 1 || children[0].tagName !== "g") {
6
+ return;
7
+ }
8
+ const groupNode = children[0];
9
+ const html = cheerio(groupNode).html();
10
+ if (!html) {
11
+ return;
12
+ }
13
+ for (const attr in groupNode.attribs) {
14
+ const value = groupNode.attribs[attr];
15
+ switch (attr) {
16
+ case "id": {
17
+ if (html?.includes(value)) {
18
+ return;
19
+ }
20
+ break;
21
+ }
22
+ default:
23
+ return;
24
+ }
25
+ }
26
+ $root.html(html);
27
+ }
28
+
29
+ export { unwrapEmptyGroup };
@@ -0,0 +1,10 @@
1
+ import { ExtendedTagElement } from './types.cjs';
2
+ import '../../misc/cheerio.cjs';
3
+ import 'cheerio';
4
+
5
+ /**
6
+ * Get tag for error message
7
+ */
8
+ declare function analyseTagError(element: ExtendedTagElement): string;
9
+
10
+ export { analyseTagError };
@@ -0,0 +1,10 @@
1
+ import { ExtendedTagElement } from './types.mjs';
2
+ import '../../misc/cheerio.mjs';
3
+ import 'cheerio';
4
+
5
+ /**
6
+ * Get tag for error message
7
+ */
8
+ declare function analyseTagError(element: ExtendedTagElement): string;
9
+
10
+ export { analyseTagError };
@@ -1,4 +1,5 @@
1
1
  import { ExtendedTagElement } from './types.js';
2
+ import '../../misc/cheerio.js';
2
3
  import 'cheerio';
3
4
 
4
5
  /**
@@ -0,0 +1,92 @@
1
+ import { CheerioElement } from '../../misc/cheerio.cjs';
2
+ import 'cheerio';
3
+
4
+ /**
5
+ * Options
6
+ */
7
+ interface AnalyseSVGStructureOptions {
8
+ fixErrors?: boolean;
9
+ }
10
+ /**
11
+ * Extended properties for element
12
+ */
13
+ /**
14
+ * Link to element
15
+ */
16
+ interface LinkToElementWithID {
17
+ id: string;
18
+ usedAsMask: boolean;
19
+ usedByIndex: number;
20
+ }
21
+ /**
22
+ * How element is used by parent elements
23
+ */
24
+ interface ExtendedTagElementUses {
25
+ _usedAsMask: boolean;
26
+ _usedAsPaint: boolean;
27
+ }
28
+ /**
29
+ * Definition: mask, clip path, symbol, etc...
30
+ */
31
+ interface ReusableElement {
32
+ id: string;
33
+ isMask: boolean;
34
+ index: number;
35
+ }
36
+ /**
37
+ * Element with id
38
+ *
39
+ * Similar to ReusableElement, but not necessary a definition - any element with id. Also contains list of child elements
40
+ */
41
+ interface ElementWithID {
42
+ id: string;
43
+ isMask: boolean;
44
+ indexes: Set<number>;
45
+ }
46
+ /**
47
+ * Parent and child elements. Unlike standard tree, this tree is for elements that inherit attributes from parent element
48
+ */
49
+ interface ExtendedTagElementRelations {
50
+ _parentElement?: number;
51
+ _childElements?: number[];
52
+ }
53
+ /**
54
+ * Extended tag
55
+ */
56
+ interface ExtendedTagElement extends CheerioElement, ExtendedTagElementUses, ExtendedTagElementRelations {
57
+ _index: number;
58
+ _id?: string;
59
+ _belongsTo?: ElementWithID[];
60
+ _reusableElement?: ReusableElement;
61
+ _linksTo?: LinkToElementWithID[];
62
+ }
63
+ /**
64
+ * Additional stuff for <svg>
65
+ */
66
+ interface ExtendedRootTagElement extends ExtendedTagElement {
67
+ _parsed?: boolean;
68
+ }
69
+ /**
70
+ * Tree
71
+ */
72
+ interface ElementsTreeItem {
73
+ index: number;
74
+ usedAsMask: boolean;
75
+ parent?: ElementsTreeItem;
76
+ children: ElementsTreeItem[];
77
+ }
78
+ /**
79
+ * Elements map
80
+ */
81
+ type ElementsMap = Map<number, ExtendedTagElement>;
82
+ /**
83
+ * Result
84
+ */
85
+ interface AnalyseSVGStructureResult {
86
+ elements: ElementsMap;
87
+ ids: Record<string, number>;
88
+ links: LinkToElementWithID[];
89
+ tree: ElementsTreeItem;
90
+ }
91
+
92
+ export type { AnalyseSVGStructureOptions, AnalyseSVGStructureResult, ElementWithID, ElementsMap, ElementsTreeItem, ExtendedRootTagElement, ExtendedTagElement, ExtendedTagElementUses, LinkToElementWithID };
@@ -0,0 +1,92 @@
1
+ import { CheerioElement } from '../../misc/cheerio.mjs';
2
+ import 'cheerio';
3
+
4
+ /**
5
+ * Options
6
+ */
7
+ interface AnalyseSVGStructureOptions {
8
+ fixErrors?: boolean;
9
+ }
10
+ /**
11
+ * Extended properties for element
12
+ */
13
+ /**
14
+ * Link to element
15
+ */
16
+ interface LinkToElementWithID {
17
+ id: string;
18
+ usedAsMask: boolean;
19
+ usedByIndex: number;
20
+ }
21
+ /**
22
+ * How element is used by parent elements
23
+ */
24
+ interface ExtendedTagElementUses {
25
+ _usedAsMask: boolean;
26
+ _usedAsPaint: boolean;
27
+ }
28
+ /**
29
+ * Definition: mask, clip path, symbol, etc...
30
+ */
31
+ interface ReusableElement {
32
+ id: string;
33
+ isMask: boolean;
34
+ index: number;
35
+ }
36
+ /**
37
+ * Element with id
38
+ *
39
+ * Similar to ReusableElement, but not necessary a definition - any element with id. Also contains list of child elements
40
+ */
41
+ interface ElementWithID {
42
+ id: string;
43
+ isMask: boolean;
44
+ indexes: Set<number>;
45
+ }
46
+ /**
47
+ * Parent and child elements. Unlike standard tree, this tree is for elements that inherit attributes from parent element
48
+ */
49
+ interface ExtendedTagElementRelations {
50
+ _parentElement?: number;
51
+ _childElements?: number[];
52
+ }
53
+ /**
54
+ * Extended tag
55
+ */
56
+ interface ExtendedTagElement extends CheerioElement, ExtendedTagElementUses, ExtendedTagElementRelations {
57
+ _index: number;
58
+ _id?: string;
59
+ _belongsTo?: ElementWithID[];
60
+ _reusableElement?: ReusableElement;
61
+ _linksTo?: LinkToElementWithID[];
62
+ }
63
+ /**
64
+ * Additional stuff for <svg>
65
+ */
66
+ interface ExtendedRootTagElement extends ExtendedTagElement {
67
+ _parsed?: boolean;
68
+ }
69
+ /**
70
+ * Tree
71
+ */
72
+ interface ElementsTreeItem {
73
+ index: number;
74
+ usedAsMask: boolean;
75
+ parent?: ElementsTreeItem;
76
+ children: ElementsTreeItem[];
77
+ }
78
+ /**
79
+ * Elements map
80
+ */
81
+ type ElementsMap = Map<number, ExtendedTagElement>;
82
+ /**
83
+ * Result
84
+ */
85
+ interface AnalyseSVGStructureResult {
86
+ elements: ElementsMap;
87
+ ids: Record<string, number>;
88
+ links: LinkToElementWithID[];
89
+ tree: ElementsTreeItem;
90
+ }
91
+
92
+ export type { AnalyseSVGStructureOptions, AnalyseSVGStructureResult, ElementWithID, ElementsMap, ElementsTreeItem, ExtendedRootTagElement, ExtendedTagElement, ExtendedTagElementUses, LinkToElementWithID };
@@ -1,4 +1,5 @@
1
- import * as cheerio from 'cheerio';
1
+ import { CheerioElement } from '../../misc/cheerio.js';
2
+ import 'cheerio';
2
3
 
3
4
  /**
4
5
  * Options
@@ -52,7 +53,7 @@ interface ExtendedTagElementRelations {
52
53
  /**
53
54
  * Extended tag
54
55
  */
55
- interface ExtendedTagElement extends cheerio.Element, ExtendedTagElementUses, ExtendedTagElementRelations {
56
+ interface ExtendedTagElement extends CheerioElement, ExtendedTagElementUses, ExtendedTagElementRelations {
56
57
  _index: number;
57
58
  _id?: string;
58
59
  _belongsTo?: ElementWithID[];
@@ -88,4 +89,4 @@ interface AnalyseSVGStructureResult {
88
89
  tree: ElementsTreeItem;
89
90
  }
90
91
 
91
- export { AnalyseSVGStructureOptions, AnalyseSVGStructureResult, ElementWithID, ElementsMap, ElementsTreeItem, ExtendedRootTagElement, ExtendedTagElement, ExtendedTagElementUses, LinkToElementWithID };
92
+ export type { AnalyseSVGStructureOptions, AnalyseSVGStructureResult, ElementWithID, ElementsMap, ElementsTreeItem, ExtendedRootTagElement, ExtendedTagElement, ExtendedTagElementUses, LinkToElementWithID };
@@ -83,7 +83,7 @@ function analyseSVGStructure(svg, options = {}) {
83
83
  element._linksTo.push(link);
84
84
  }
85
85
  let index = 0;
86
- svg_parse.parseSVGSync(svg, (item) => {
86
+ svg_parse.parseSVG(svg, (item) => {
87
87
  const { tagName, parents } = item;
88
88
  if (svg_data_tags.styleTag.has(tagName)) {
89
89
  item.testChildren = false;
@@ -263,7 +263,7 @@ function analyseSVGStructure(svg, options = {}) {
263
263
  usedItems = usedItems.slice(0);
264
264
  usedItems.push(element._index);
265
265
  element._childElements?.forEach((childIndex) => {
266
- if (usedItems.indexOf(childIndex) !== -1) {
266
+ if (usedItems.includes(childIndex)) {
267
267
  throw new Error("Recursion");
268
268
  }
269
269
  const childItem = {
@@ -0,0 +1,15 @@
1
+ import { SVG } from './index.cjs';
2
+ import { AnalyseSVGStructureOptions, AnalyseSVGStructureResult } from './analyse/types.cjs';
3
+ import 'cheerio';
4
+ import '@iconify/types';
5
+ import '@iconify/utils/lib/customisations/defaults';
6
+ import '../misc/cheerio.cjs';
7
+
8
+ /**
9
+ * Find all IDs, links, which elements use palette, which items aren't used
10
+ *
11
+ * Before running this function run cleanup functions to change inline style to attributes and fix attributes
12
+ */
13
+ declare function analyseSVGStructure(svg: SVG, options?: AnalyseSVGStructureOptions): AnalyseSVGStructureResult;
14
+
15
+ export { analyseSVGStructure };
@@ -0,0 +1,15 @@
1
+ import { SVG } from './index.mjs';
2
+ import { AnalyseSVGStructureOptions, AnalyseSVGStructureResult } from './analyse/types.mjs';
3
+ import 'cheerio';
4
+ import '@iconify/types';
5
+ import '@iconify/utils/lib/customisations/defaults';
6
+ import '../misc/cheerio.mjs';
7
+
8
+ /**
9
+ * Find all IDs, links, which elements use palette, which items aren't used
10
+ *
11
+ * Before running this function run cleanup functions to change inline style to attributes and fix attributes
12
+ */
13
+ declare function analyseSVGStructure(svg: SVG, options?: AnalyseSVGStructureOptions): AnalyseSVGStructureResult;
14
+
15
+ export { analyseSVGStructure };
@@ -3,6 +3,7 @@ import { AnalyseSVGStructureOptions, AnalyseSVGStructureResult } from './analyse
3
3
  import 'cheerio';
4
4
  import '@iconify/types';
5
5
  import '@iconify/utils/lib/customisations/defaults';
6
+ import '../misc/cheerio.js';
6
7
 
7
8
  /**
8
9
  * Find all IDs, links, which elements use palette, which items aren't used
@@ -1,6 +1,6 @@
1
- import { parseSVGSync } from './parse.mjs';
1
+ import { parseSVG } from './parse.mjs';
2
2
  import { tagSpecificNonPresentationalAttributes, urlPresentationalAttributes, commonColorPresentationalAttributes, markerAttributes } from './data/attributes.mjs';
3
- import { useTag, styleTag, maskTags, reusableElementsWithPalette, defsTag } from './data/tags.mjs';
3
+ import { styleTag, maskTags, reusableElementsWithPalette, defsTag, useTag } from './data/tags.mjs';
4
4
  import { analyseTagError } from './analyse/error.mjs';
5
5
 
6
6
  function analyseSVGStructure(svg, options = {}) {
@@ -81,7 +81,7 @@ function analyseSVGStructure(svg, options = {}) {
81
81
  element._linksTo.push(link);
82
82
  }
83
83
  let index = 0;
84
- parseSVGSync(svg, (item) => {
84
+ parseSVG(svg, (item) => {
85
85
  const { tagName, parents } = item;
86
86
  if (styleTag.has(tagName)) {
87
87
  item.testChildren = false;
@@ -261,7 +261,7 @@ function analyseSVGStructure(svg, options = {}) {
261
261
  usedItems = usedItems.slice(0);
262
262
  usedItems.push(element._index);
263
263
  element._childElements?.forEach((childIndex) => {
264
- if (usedItems.indexOf(childIndex) !== -1) {
264
+ if (usedItems.includes(childIndex)) {
265
265
  throw new Error("Recursion");
266
266
  }
267
267
  const childItem = {
@@ -5,7 +5,7 @@ const svg_data_tags = require('../data/tags.cjs');
5
5
  const svg_parse = require('../parse.cjs');
6
6
 
7
7
  function removeBadAttributes(svg) {
8
- svg_parse.parseSVGSync(svg, (item) => {
8
+ svg_parse.parseSVG(svg, (item) => {
9
9
  const tagName = item.tagName;
10
10
  const attribs = item.element.attribs;
11
11
  const $element = item.$element;
@@ -0,0 +1,11 @@
1
+ import { SVG } from '../index.cjs';
2
+ import 'cheerio';
3
+ import '@iconify/types';
4
+ import '@iconify/utils/lib/customisations/defaults';
5
+
6
+ /**
7
+ * Remove useless attributes
8
+ */
9
+ declare function removeBadAttributes(svg: SVG): void;
10
+
11
+ export { removeBadAttributes };
@@ -0,0 +1,11 @@
1
+ import { SVG } from '../index.mjs';
2
+ import 'cheerio';
3
+ import '@iconify/types';
4
+ import '@iconify/utils/lib/customisations/defaults';
5
+
6
+ /**
7
+ * Remove useless attributes
8
+ */
9
+ declare function removeBadAttributes(svg: SVG): void;
10
+
11
+ export { removeBadAttributes };
@@ -1,9 +1,9 @@
1
1
  import { badAttributes, badSoftwareAttributes, badAttributePrefixes, tagSpecificPresentationalAttributes } from '../data/attributes.mjs';
2
2
  import { defsTag } from '../data/tags.mjs';
3
- import { parseSVGSync } from '../parse.mjs';
3
+ import { parseSVG } from '../parse.mjs';
4
4
 
5
5
  function removeBadAttributes(svg) {
6
- parseSVGSync(svg, (item) => {
6
+ parseSVG(svg, (item) => {
7
7
  const tagName = item.tagName;
8
8
  const attribs = item.element.attribs;
9
9
  const $element = item.$element;
@@ -21,7 +21,7 @@ function checkBadTags(svg, options) {
21
21
  ...defaultOptions,
22
22
  ...options
23
23
  };
24
- svg_parse.parseSVGSync(svg, (item) => {
24
+ svg_parse.parseSVG(svg, (item) => {
25
25
  const tagName = item.tagName;
26
26
  const $element = item.$element;
27
27
  if (tagName === "svg") {
@@ -0,0 +1,17 @@
1
+ import { SVG } from '../index.cjs';
2
+ import 'cheerio';
3
+ import '@iconify/types';
4
+ import '@iconify/utils/lib/customisations/defaults';
5
+
6
+ /**
7
+ * Options
8
+ */
9
+ interface CheckBadTagsOptions {
10
+ keepTitles?: boolean;
11
+ }
12
+ /**
13
+ * Test for bag tags
14
+ */
15
+ declare function checkBadTags(svg: SVG, options?: CheckBadTagsOptions): void;
16
+
17
+ export { type CheckBadTagsOptions, checkBadTags };
@@ -0,0 +1,17 @@
1
+ import { SVG } from '../index.mjs';
2
+ import 'cheerio';
3
+ import '@iconify/types';
4
+ import '@iconify/utils/lib/customisations/defaults';
5
+
6
+ /**
7
+ * Options
8
+ */
9
+ interface CheckBadTagsOptions {
10
+ keepTitles?: boolean;
11
+ }
12
+ /**
13
+ * Test for bag tags
14
+ */
15
+ declare function checkBadTags(svg: SVG, options?: CheckBadTagsOptions): void;
16
+
17
+ export { type CheckBadTagsOptions, checkBadTags };
@@ -14,4 +14,4 @@ interface CheckBadTagsOptions {
14
14
  */
15
15
  declare function checkBadTags(svg: SVG, options?: CheckBadTagsOptions): void;
16
16
 
17
- export { CheckBadTagsOptions, checkBadTags };
17
+ export { type CheckBadTagsOptions, checkBadTags };
@@ -1,4 +1,4 @@
1
- import { parseSVGSync } from '../parse.mjs';
1
+ import { parseSVG } from '../parse.mjs';
2
2
  import { feComponentTransferChildTag, feMergeChildTags, feLightningTags, feLightningChildTags, filterTag, filterChildTags, gradientTags, gradientChildTags, animateMotionChildTags, unsupportedTags, badTags, allValidTags } from '../data/tags.mjs';
3
3
 
4
4
  const requiredParentTags = /* @__PURE__ */ new Map();
@@ -19,7 +19,7 @@ function checkBadTags(svg, options) {
19
19
  ...defaultOptions,
20
20
  ...options
21
21
  };
22
- parseSVGSync(svg, (item) => {
22
+ parseSVG(svg, (item) => {
23
23
  const tagName = item.tagName;
24
24
  const $element = item.$element;
25
25
  if (tagName === "svg") {
@@ -32,7 +32,7 @@ const knownIgnoredRules = /* @__PURE__ */ new Set([
32
32
  "stop-opacity"
33
33
  ]);
34
34
  function cleanupInlineStyle(svg) {
35
- svg_parse.parseSVGSync(svg, (item) => {
35
+ svg_parse.parseSVG(svg, (item) => {
36
36
  const $element = item.$element;
37
37
  const attribs = item.element.attribs;
38
38
  const tagName = item.tagName;