@iconify/tools 4.0.0-beta.9 → 4.0.0

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 (221) 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.d.cts +16 -0
  5. package/lib/colors/detect.d.mts +16 -0
  6. package/lib/colors/parse.d.cts +60 -0
  7. package/lib/colors/parse.d.mts +60 -0
  8. package/lib/colors/parse.d.ts +1 -1
  9. package/lib/colors/validate.d.cts +20 -0
  10. package/lib/colors/validate.d.mts +20 -0
  11. package/lib/css/parse.d.cts +6 -0
  12. package/lib/css/parse.d.mts +6 -0
  13. package/lib/css/parser/error.d.cts +13 -0
  14. package/lib/css/parser/error.d.mts +13 -0
  15. package/lib/css/parser/error.d.ts +1 -1
  16. package/lib/css/parser/export.d.cts +8 -0
  17. package/lib/css/parser/export.d.mts +8 -0
  18. package/lib/css/parser/strings.d.cts +16 -0
  19. package/lib/css/parser/strings.d.mts +16 -0
  20. package/lib/css/parser/text.d.cts +20 -0
  21. package/lib/css/parser/text.d.mts +20 -0
  22. package/lib/css/parser/tokens.d.cts +9 -0
  23. package/lib/css/parser/tokens.d.mts +9 -0
  24. package/lib/css/parser/tree.d.cts +8 -0
  25. package/lib/css/parser/tree.d.mts +8 -0
  26. package/lib/css/parser/types.d.cts +52 -0
  27. package/lib/css/parser/types.d.mts +52 -0
  28. package/lib/css/parser/types.d.ts +1 -1
  29. package/lib/download/api/cache.d.cts +20 -0
  30. package/lib/download/api/cache.d.mts +20 -0
  31. package/lib/download/api/config.d.cts +18 -0
  32. package/lib/download/api/config.d.mts +18 -0
  33. package/lib/download/api/download.d.cts +8 -0
  34. package/lib/download/api/download.d.mts +8 -0
  35. package/lib/download/api/index.d.cts +8 -0
  36. package/lib/download/api/index.d.mts +8 -0
  37. package/lib/download/api/queue.d.cts +32 -0
  38. package/lib/download/api/queue.d.mts +32 -0
  39. package/lib/download/api/queue.d.ts +1 -1
  40. package/lib/download/api/types.d.cts +17 -0
  41. package/lib/download/api/types.d.mts +17 -0
  42. package/lib/download/api/types.d.ts +1 -1
  43. package/lib/download/git/branch.d.cts +8 -0
  44. package/lib/download/git/branch.d.mts +8 -0
  45. package/lib/download/git/hash.d.cts +8 -0
  46. package/lib/download/git/hash.d.mts +8 -0
  47. package/lib/download/git/index.d.cts +29 -0
  48. package/lib/download/git/index.d.mts +29 -0
  49. package/lib/download/git/index.d.ts +1 -1
  50. package/lib/download/git/reset.d.cts +6 -0
  51. package/lib/download/git/reset.d.mts +6 -0
  52. package/lib/download/github/hash.d.cts +8 -0
  53. package/lib/download/github/hash.d.mts +8 -0
  54. package/lib/download/github/index.d.cts +31 -0
  55. package/lib/download/github/index.d.mts +31 -0
  56. package/lib/download/github/index.d.ts +1 -1
  57. package/lib/download/github/types.d.cts +11 -0
  58. package/lib/download/github/types.d.mts +11 -0
  59. package/lib/download/github/types.d.ts +1 -1
  60. package/lib/download/gitlab/hash.d.cts +8 -0
  61. package/lib/download/gitlab/hash.d.mts +8 -0
  62. package/lib/download/gitlab/index.d.cts +31 -0
  63. package/lib/download/gitlab/index.d.mts +31 -0
  64. package/lib/download/gitlab/index.d.ts +1 -1
  65. package/lib/download/gitlab/types.d.cts +15 -0
  66. package/lib/download/gitlab/types.d.mts +15 -0
  67. package/lib/download/gitlab/types.d.ts +1 -1
  68. package/lib/download/helpers/untar.d.cts +6 -0
  69. package/lib/download/helpers/untar.d.mts +6 -0
  70. package/lib/download/helpers/unzip.d.cts +6 -0
  71. package/lib/download/helpers/unzip.d.mts +6 -0
  72. package/lib/download/index.d.cts +48 -0
  73. package/lib/download/index.d.mts +48 -0
  74. package/lib/download/index.d.ts +1 -1
  75. package/lib/download/npm/index.d.cts +30 -0
  76. package/lib/download/npm/index.d.mts +30 -0
  77. package/lib/download/npm/index.d.ts +1 -1
  78. package/lib/download/npm/types.d.cts +9 -0
  79. package/lib/download/npm/types.d.mts +9 -0
  80. package/lib/download/npm/types.d.ts +1 -1
  81. package/lib/download/npm/version.d.cts +16 -0
  82. package/lib/download/npm/version.d.mts +16 -0
  83. package/lib/download/npm/version.d.ts +1 -1
  84. package/lib/download/types/modified.d.cts +6 -0
  85. package/lib/download/types/modified.d.mts +6 -0
  86. package/lib/download/types/modified.d.ts +1 -1
  87. package/lib/download/types/sources.d.cts +12 -0
  88. package/lib/download/types/sources.d.mts +12 -0
  89. package/lib/download/types/sources.d.ts +1 -1
  90. package/lib/export/directory.d.cts +26 -0
  91. package/lib/export/directory.d.mts +26 -0
  92. package/lib/export/directory.d.ts +1 -1
  93. package/lib/export/helpers/custom-files.d.cts +12 -0
  94. package/lib/export/helpers/custom-files.d.mts +12 -0
  95. package/lib/export/helpers/custom-files.d.ts +1 -1
  96. package/lib/export/helpers/prepare.d.cts +19 -0
  97. package/lib/export/helpers/prepare.d.mts +19 -0
  98. package/lib/export/helpers/prepare.d.ts +1 -1
  99. package/lib/export/helpers/types-version.d.cts +6 -0
  100. package/lib/export/helpers/types-version.d.mts +6 -0
  101. package/lib/export/icon-package.d.cts +26 -0
  102. package/lib/export/icon-package.d.mts +26 -0
  103. package/lib/export/icon-package.d.ts +1 -3
  104. package/lib/export/json-package.d.cts +25 -0
  105. package/lib/export/json-package.d.mts +25 -0
  106. package/lib/export/json-package.d.ts +1 -1
  107. package/lib/icon-set/index.cjs +22 -0
  108. package/lib/icon-set/index.d.cts +162 -0
  109. package/lib/icon-set/index.d.mts +162 -0
  110. package/lib/icon-set/index.mjs +22 -0
  111. package/lib/icon-set/match.d.cts +15 -0
  112. package/lib/icon-set/match.d.mts +15 -0
  113. package/lib/icon-set/merge.d.cts +14 -0
  114. package/lib/icon-set/merge.d.mts +14 -0
  115. package/lib/icon-set/modified.d.cts +16 -0
  116. package/lib/icon-set/modified.d.mts +16 -0
  117. package/lib/icon-set/props.d.cts +13 -0
  118. package/lib/icon-set/props.d.mts +13 -0
  119. package/lib/icon-set/tags.d.cts +23 -0
  120. package/lib/icon-set/tags.d.mts +23 -0
  121. package/lib/icon-set/types.d.cts +75 -0
  122. package/lib/icon-set/types.d.mts +75 -0
  123. package/lib/icon-set/types.d.ts +1 -1
  124. package/lib/import/directory.d.cts +52 -0
  125. package/lib/import/directory.d.mts +52 -0
  126. package/lib/import/directory.d.ts +1 -1
  127. package/lib/import/figma/index.d.cts +20 -0
  128. package/lib/import/figma/index.d.mts +20 -0
  129. package/lib/import/figma/nodes.d.cts +18 -0
  130. package/lib/import/figma/nodes.d.mts +18 -0
  131. package/lib/import/figma/query.d.cts +42 -0
  132. package/lib/import/figma/query.d.mts +42 -0
  133. package/lib/import/figma/query.d.ts +1 -1
  134. package/lib/import/figma/types/api.d.cts +53 -0
  135. package/lib/import/figma/types/api.d.mts +53 -0
  136. package/lib/import/figma/types/api.d.ts +1 -1
  137. package/lib/import/figma/types/nodes.d.cts +44 -0
  138. package/lib/import/figma/types/nodes.d.mts +44 -0
  139. package/lib/import/figma/types/nodes.d.ts +1 -1
  140. package/lib/import/figma/types/options.d.cts +59 -0
  141. package/lib/import/figma/types/options.d.mts +59 -0
  142. package/lib/import/figma/types/options.d.ts +1 -1
  143. package/lib/import/figma/types/result.d.cts +44 -0
  144. package/lib/import/figma/types/result.d.mts +44 -0
  145. package/lib/import/figma/types/result.d.ts +1 -1
  146. package/lib/index.cjs +7 -5
  147. package/lib/index.d.cts +78 -0
  148. package/lib/index.d.mts +78 -0
  149. package/lib/index.d.ts +1 -0
  150. package/lib/index.mjs +6 -5
  151. package/lib/misc/bump-version.d.cts +6 -0
  152. package/lib/misc/bump-version.d.mts +6 -0
  153. package/lib/misc/cheerio.d.cts +9 -0
  154. package/lib/misc/cheerio.d.mts +9 -0
  155. package/lib/misc/cheerio.d.ts +1 -1
  156. package/lib/misc/compare-dirs.d.cts +11 -0
  157. package/lib/misc/compare-dirs.d.mts +11 -0
  158. package/lib/misc/compare-dirs.d.ts +1 -1
  159. package/lib/misc/exec.d.cts +12 -0
  160. package/lib/misc/exec.d.mts +12 -0
  161. package/lib/misc/exec.d.ts +1 -1
  162. package/lib/misc/keyword.d.cts +6 -0
  163. package/lib/misc/keyword.d.mts +6 -0
  164. package/lib/misc/scan.d.cts +33 -0
  165. package/lib/misc/scan.d.mts +33 -0
  166. package/lib/misc/scan.d.ts +1 -1
  167. package/lib/misc/write-json.d.cts +6 -0
  168. package/lib/misc/write-json.d.mts +6 -0
  169. package/lib/optimise/figma.d.cts +11 -0
  170. package/lib/optimise/figma.d.mts +11 -0
  171. package/lib/optimise/flags.d.cts +11 -0
  172. package/lib/optimise/flags.d.mts +11 -0
  173. package/lib/optimise/global-style.d.cts +11 -0
  174. package/lib/optimise/global-style.d.mts +11 -0
  175. package/lib/optimise/mask.d.cts +24 -0
  176. package/lib/optimise/mask.d.mts +24 -0
  177. package/lib/optimise/origin.d.cts +11 -0
  178. package/lib/optimise/origin.d.mts +11 -0
  179. package/lib/optimise/scale.d.cts +11 -0
  180. package/lib/optimise/scale.d.mts +11 -0
  181. package/lib/optimise/svgo.d.cts +37 -0
  182. package/lib/optimise/svgo.d.mts +37 -0
  183. package/lib/svg/analyse/error.d.cts +10 -0
  184. package/lib/svg/analyse/error.d.mts +10 -0
  185. package/lib/svg/analyse/types.d.cts +92 -0
  186. package/lib/svg/analyse/types.d.mts +92 -0
  187. package/lib/svg/analyse/types.d.ts +1 -1
  188. package/lib/svg/analyse.d.cts +15 -0
  189. package/lib/svg/analyse.d.mts +15 -0
  190. package/lib/svg/cleanup/attribs.d.cts +11 -0
  191. package/lib/svg/cleanup/attribs.d.mts +11 -0
  192. package/lib/svg/cleanup/bad-tags.d.cts +17 -0
  193. package/lib/svg/cleanup/bad-tags.d.mts +17 -0
  194. package/lib/svg/cleanup/bad-tags.d.ts +1 -1
  195. package/lib/svg/cleanup/inline-style.d.cts +11 -0
  196. package/lib/svg/cleanup/inline-style.d.mts +11 -0
  197. package/lib/svg/cleanup/root-style.d.cts +17 -0
  198. package/lib/svg/cleanup/root-style.d.mts +17 -0
  199. package/lib/svg/cleanup/root-svg.d.cts +11 -0
  200. package/lib/svg/cleanup/root-svg.d.mts +11 -0
  201. package/lib/svg/cleanup/svgo-style.d.cts +11 -0
  202. package/lib/svg/cleanup/svgo-style.d.mts +11 -0
  203. package/lib/svg/cleanup.d.cts +16 -0
  204. package/lib/svg/cleanup.d.mts +16 -0
  205. package/lib/svg/cleanup.d.ts +1 -1
  206. package/lib/svg/data/attributes.d.cts +77 -0
  207. package/lib/svg/data/attributes.d.mts +77 -0
  208. package/lib/svg/data/tags.d.cts +95 -0
  209. package/lib/svg/data/tags.d.mts +95 -0
  210. package/lib/svg/index.cjs +17 -0
  211. package/lib/svg/index.d.cts +52 -0
  212. package/lib/svg/index.d.mts +52 -0
  213. package/lib/svg/index.d.ts +5 -1
  214. package/lib/svg/index.mjs +18 -1
  215. package/lib/svg/parse-style.d.cts +58 -0
  216. package/lib/svg/parse-style.d.mts +58 -0
  217. package/lib/svg/parse-style.d.ts +1 -1
  218. package/lib/svg/parse.d.cts +30 -0
  219. package/lib/svg/parse.d.mts +30 -0
  220. package/lib/svg/parse.d.ts +1 -1
  221. package/package.json +14 -17
@@ -0,0 +1,77 @@
1
+ /**
2
+ * This list is highly opinionated. It is designed to handle icons that can be safely embedded in HTML and linked as external source.
3
+ * Icons cannot have anything that requires external resources, anything that renders inconsistently.
4
+ */
5
+ /***** Attributes that are not part of tag specific stuff *****/
6
+ /**
7
+ * Attributes that icons should not mess with or that are irrelevant. They should be removed
8
+ */
9
+ declare const badAttributes: Set<string>;
10
+ /**
11
+ * Attributes for SVG element that should be removed
12
+ */
13
+ declare const junkSVGAttributes: Set<string>;
14
+ /**
15
+ * Attributes and styles often added by bad software to wrong tags, such as Adobe Illustrator and Inkscape
16
+ */
17
+ declare const badSoftwareAttributes: Set<string>;
18
+ declare const badAttributePrefixes: Set<string>;
19
+ /**
20
+ * Common attributes that can exist on any element
21
+ */
22
+ declare const commonAttributes: Set<string>;
23
+ declare const stylingAttributes: Set<string>;
24
+ /**
25
+ * Attributes that exist only on child elements of <clipPath>
26
+ */
27
+ declare const insideClipPathAttributes: Set<string>;
28
+ /***** Other attributes, added to tagSpecificAttributes variable below *****/
29
+ /**
30
+ * Presentational attributes
31
+ */
32
+ declare const fillPresentationalAttributes: Set<string>;
33
+ declare const strokePresentationalAttributes: Set<string>;
34
+ declare const urlPresentationalAttributes: Set<string>;
35
+ declare const visibilityPresentationalAttributes: Set<string>;
36
+ declare const commonColorPresentationalAttributes: Set<string>;
37
+ declare const otherPresentationalAttributes: Set<string>;
38
+ declare const presentationalAttributes: Set<string>;
39
+ /**
40
+ * Markers
41
+ *
42
+ * Presentational attributes
43
+ */
44
+ declare const markerAttributes: Set<string>;
45
+ /**
46
+ * Shapes
47
+ *
48
+ * Not presentational
49
+ */
50
+ declare const otherShapeAttributes: Set<string>;
51
+ /**
52
+ * Animations
53
+ */
54
+ declare const animationTimingAttributes: Set<string>;
55
+ declare const animationValueAttributes: Set<string>;
56
+ declare const otherAnimationAttributes: Set<string>;
57
+ /**
58
+ * Gradients
59
+ */
60
+ declare const commonGradientAttributes: Set<string>;
61
+ /**
62
+ * Filters
63
+ */
64
+ declare const commonFeAttributes: Set<string>;
65
+ declare const feFuncAttributes: Set<string>;
66
+ /**
67
+ * Tag specific attributes
68
+ */
69
+ declare const tagSpecificAnimatedAttributes: Record<string, Set<string>>;
70
+ declare const tagSpecificPresentationalAttributes: Record<string, Set<string>>;
71
+ declare const tagSpecificNonPresentationalAttributes: Record<string, Set<string>>;
72
+ /**
73
+ * Styles to keep in tags
74
+ */
75
+ declare const tagSpecificInlineStyles: Record<string, Set<string>>;
76
+
77
+ export { animationTimingAttributes, animationValueAttributes, badAttributePrefixes, badAttributes, badSoftwareAttributes, commonAttributes, commonColorPresentationalAttributes, commonFeAttributes, commonGradientAttributes, feFuncAttributes, fillPresentationalAttributes, insideClipPathAttributes, junkSVGAttributes, markerAttributes, otherAnimationAttributes, otherPresentationalAttributes, otherShapeAttributes, presentationalAttributes, strokePresentationalAttributes, stylingAttributes, tagSpecificAnimatedAttributes, tagSpecificInlineStyles, tagSpecificNonPresentationalAttributes, tagSpecificPresentationalAttributes, urlPresentationalAttributes, visibilityPresentationalAttributes };
@@ -0,0 +1,77 @@
1
+ /**
2
+ * This list is highly opinionated. It is designed to handle icons that can be safely embedded in HTML and linked as external source.
3
+ * Icons cannot have anything that requires external resources, anything that renders inconsistently.
4
+ */
5
+ /***** Attributes that are not part of tag specific stuff *****/
6
+ /**
7
+ * Attributes that icons should not mess with or that are irrelevant. They should be removed
8
+ */
9
+ declare const badAttributes: Set<string>;
10
+ /**
11
+ * Attributes for SVG element that should be removed
12
+ */
13
+ declare const junkSVGAttributes: Set<string>;
14
+ /**
15
+ * Attributes and styles often added by bad software to wrong tags, such as Adobe Illustrator and Inkscape
16
+ */
17
+ declare const badSoftwareAttributes: Set<string>;
18
+ declare const badAttributePrefixes: Set<string>;
19
+ /**
20
+ * Common attributes that can exist on any element
21
+ */
22
+ declare const commonAttributes: Set<string>;
23
+ declare const stylingAttributes: Set<string>;
24
+ /**
25
+ * Attributes that exist only on child elements of <clipPath>
26
+ */
27
+ declare const insideClipPathAttributes: Set<string>;
28
+ /***** Other attributes, added to tagSpecificAttributes variable below *****/
29
+ /**
30
+ * Presentational attributes
31
+ */
32
+ declare const fillPresentationalAttributes: Set<string>;
33
+ declare const strokePresentationalAttributes: Set<string>;
34
+ declare const urlPresentationalAttributes: Set<string>;
35
+ declare const visibilityPresentationalAttributes: Set<string>;
36
+ declare const commonColorPresentationalAttributes: Set<string>;
37
+ declare const otherPresentationalAttributes: Set<string>;
38
+ declare const presentationalAttributes: Set<string>;
39
+ /**
40
+ * Markers
41
+ *
42
+ * Presentational attributes
43
+ */
44
+ declare const markerAttributes: Set<string>;
45
+ /**
46
+ * Shapes
47
+ *
48
+ * Not presentational
49
+ */
50
+ declare const otherShapeAttributes: Set<string>;
51
+ /**
52
+ * Animations
53
+ */
54
+ declare const animationTimingAttributes: Set<string>;
55
+ declare const animationValueAttributes: Set<string>;
56
+ declare const otherAnimationAttributes: Set<string>;
57
+ /**
58
+ * Gradients
59
+ */
60
+ declare const commonGradientAttributes: Set<string>;
61
+ /**
62
+ * Filters
63
+ */
64
+ declare const commonFeAttributes: Set<string>;
65
+ declare const feFuncAttributes: Set<string>;
66
+ /**
67
+ * Tag specific attributes
68
+ */
69
+ declare const tagSpecificAnimatedAttributes: Record<string, Set<string>>;
70
+ declare const tagSpecificPresentationalAttributes: Record<string, Set<string>>;
71
+ declare const tagSpecificNonPresentationalAttributes: Record<string, Set<string>>;
72
+ /**
73
+ * Styles to keep in tags
74
+ */
75
+ declare const tagSpecificInlineStyles: Record<string, Set<string>>;
76
+
77
+ export { animationTimingAttributes, animationValueAttributes, badAttributePrefixes, badAttributes, badSoftwareAttributes, commonAttributes, commonColorPresentationalAttributes, commonFeAttributes, commonGradientAttributes, feFuncAttributes, fillPresentationalAttributes, insideClipPathAttributes, junkSVGAttributes, markerAttributes, otherAnimationAttributes, otherPresentationalAttributes, otherShapeAttributes, presentationalAttributes, strokePresentationalAttributes, stylingAttributes, tagSpecificAnimatedAttributes, tagSpecificInlineStyles, tagSpecificNonPresentationalAttributes, tagSpecificPresentationalAttributes, urlPresentationalAttributes, visibilityPresentationalAttributes };
@@ -0,0 +1,95 @@
1
+ /**
2
+ * This list is highly opinionated. It is designed to handle icons that can be safely embedded in HTML and linked as external source.
3
+ * Icons cannot have anything that requires external resources, anything that renders inconsistently.
4
+ */
5
+ /**
6
+ * Bad tags
7
+ *
8
+ * Parser should throw error if one of these tags is found
9
+ *
10
+ * List includes text tags because:
11
+ * - it usuaully uses custom font, which makes things much more complex
12
+ * - it renders differently on different operating systems and browsers
13
+ *
14
+ * View tag is not allowed because it requires targeting view by id from external source, making it unusable in embedded icons.
15
+ */
16
+ declare const badTags: Set<string>;
17
+ /**
18
+ * Deprecated or irrelevant tags
19
+ *
20
+ * Tags that are quietly removed
21
+ */
22
+ declare const unsupportedTags: Set<string>;
23
+ /**
24
+ * Style
25
+ */
26
+ declare const styleTag: Set<string>;
27
+ /**
28
+ * Definitions: reusable elements inside
29
+ */
30
+ declare const defsTag: Set<string>;
31
+ /**
32
+ * Masks: colors are ignored, elements must have id
33
+ */
34
+ declare const maskTags: Set<string>;
35
+ /**
36
+ * Symbol
37
+ */
38
+ declare const symbolTag: Set<string>;
39
+ /**
40
+ * SVG shapes
41
+ */
42
+ declare const shapeTags: Set<string>;
43
+ /**
44
+ * Use
45
+ */
46
+ declare const useTag: Set<string>;
47
+ /**
48
+ * Groups
49
+ */
50
+ declare const groupTag: Set<string>;
51
+ /**
52
+ * Marker, should be inside <defs>
53
+ */
54
+ declare const markerTag: Set<string>;
55
+ /**
56
+ * SVG animations
57
+ */
58
+ declare const animateTags: Set<string>;
59
+ declare const animateMotionChildTags: Set<string>;
60
+ /**
61
+ * Gradients, should be inside <defs>
62
+ */
63
+ declare const gradientTags: Set<string>;
64
+ /**
65
+ * Gradient color, must be inside one of gradientTags
66
+ */
67
+ declare const gradientChildTags: Set<string>;
68
+ /**
69
+ * Pattern, should be inside <defs>
70
+ */
71
+ declare const patternTag: Set<string>;
72
+ /**
73
+ * Filters
74
+ */
75
+ declare const filterTag: Set<string>;
76
+ declare const feLightningTags: Set<string>;
77
+ declare const filterChildTags: Set<string>;
78
+ declare const feComponentTransferChildTag: Set<string>;
79
+ declare const feLightningChildTags: Set<string>;
80
+ declare const feMergeChildTags: Set<string>;
81
+ /***** Combination of tags *****/
82
+ /**
83
+ * Reusable elements that use colors
84
+ *
85
+ * Most are used via color attributes like `fill`
86
+ * Some are used via custom attributes like `marker-start`
87
+ * Filter is used via `filter`
88
+ */
89
+ declare const reusableElementsWithPalette: Set<string>;
90
+ /**
91
+ * All supported tags
92
+ */
93
+ declare const allValidTags: Set<string>;
94
+
95
+ export { allValidTags, animateMotionChildTags, animateTags, badTags, defsTag, feComponentTransferChildTag, feLightningChildTags, feLightningTags, feMergeChildTags, filterChildTags, filterTag, gradientChildTags, gradientTags, groupTag, markerTag, maskTags, patternTag, reusableElementsWithPalette, shapeTags, styleTag, symbolTag, unsupportedTags, useTag };
@@ -0,0 +1,95 @@
1
+ /**
2
+ * This list is highly opinionated. It is designed to handle icons that can be safely embedded in HTML and linked as external source.
3
+ * Icons cannot have anything that requires external resources, anything that renders inconsistently.
4
+ */
5
+ /**
6
+ * Bad tags
7
+ *
8
+ * Parser should throw error if one of these tags is found
9
+ *
10
+ * List includes text tags because:
11
+ * - it usuaully uses custom font, which makes things much more complex
12
+ * - it renders differently on different operating systems and browsers
13
+ *
14
+ * View tag is not allowed because it requires targeting view by id from external source, making it unusable in embedded icons.
15
+ */
16
+ declare const badTags: Set<string>;
17
+ /**
18
+ * Deprecated or irrelevant tags
19
+ *
20
+ * Tags that are quietly removed
21
+ */
22
+ declare const unsupportedTags: Set<string>;
23
+ /**
24
+ * Style
25
+ */
26
+ declare const styleTag: Set<string>;
27
+ /**
28
+ * Definitions: reusable elements inside
29
+ */
30
+ declare const defsTag: Set<string>;
31
+ /**
32
+ * Masks: colors are ignored, elements must have id
33
+ */
34
+ declare const maskTags: Set<string>;
35
+ /**
36
+ * Symbol
37
+ */
38
+ declare const symbolTag: Set<string>;
39
+ /**
40
+ * SVG shapes
41
+ */
42
+ declare const shapeTags: Set<string>;
43
+ /**
44
+ * Use
45
+ */
46
+ declare const useTag: Set<string>;
47
+ /**
48
+ * Groups
49
+ */
50
+ declare const groupTag: Set<string>;
51
+ /**
52
+ * Marker, should be inside <defs>
53
+ */
54
+ declare const markerTag: Set<string>;
55
+ /**
56
+ * SVG animations
57
+ */
58
+ declare const animateTags: Set<string>;
59
+ declare const animateMotionChildTags: Set<string>;
60
+ /**
61
+ * Gradients, should be inside <defs>
62
+ */
63
+ declare const gradientTags: Set<string>;
64
+ /**
65
+ * Gradient color, must be inside one of gradientTags
66
+ */
67
+ declare const gradientChildTags: Set<string>;
68
+ /**
69
+ * Pattern, should be inside <defs>
70
+ */
71
+ declare const patternTag: Set<string>;
72
+ /**
73
+ * Filters
74
+ */
75
+ declare const filterTag: Set<string>;
76
+ declare const feLightningTags: Set<string>;
77
+ declare const filterChildTags: Set<string>;
78
+ declare const feComponentTransferChildTag: Set<string>;
79
+ declare const feLightningChildTags: Set<string>;
80
+ declare const feMergeChildTags: Set<string>;
81
+ /***** Combination of tags *****/
82
+ /**
83
+ * Reusable elements that use colors
84
+ *
85
+ * Most are used via color attributes like `fill`
86
+ * Some are used via custom attributes like `marker-start`
87
+ * Filter is used via `filter`
88
+ */
89
+ declare const reusableElementsWithPalette: Set<string>;
90
+ /**
91
+ * All supported tags
92
+ */
93
+ declare const allValidTags: Set<string>;
94
+
95
+ export { allValidTags, animateMotionChildTags, animateTags, badTags, defsTag, feComponentTransferChildTag, feLightningChildTags, feLightningTags, feMergeChildTags, filterChildTags, filterTag, gradientChildTags, gradientTags, groupTag, markerTag, maskTags, patternTag, reusableElementsWithPalette, shapeTags, styleTag, symbolTag, unsupportedTags, useTag };
package/lib/svg/index.cjs CHANGED
@@ -17,11 +17,21 @@ function _interopNamespaceCompat(e) {
17
17
 
18
18
  const cheerio__namespace = /*#__PURE__*/_interopNamespaceCompat(cheerio);
19
19
 
20
+ var __defProp = Object.defineProperty;
21
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
22
+ var __publicField = (obj, key, value) => {
23
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
24
+ return value;
25
+ };
20
26
  class SVG {
21
27
  /**
22
28
  * Constructor
23
29
  */
24
30
  constructor(content) {
31
+ // Cheerio tree, initialized in load()
32
+ __publicField(this, "$svg");
33
+ // Dimensions, initialized in load()
34
+ __publicField(this, "viewBox");
25
35
  this.load(content);
26
36
  }
27
37
  /**
@@ -62,6 +72,13 @@ class SVG {
62
72
  toMinifiedString(customisations) {
63
73
  return utils.trimSVG(this.toString(customisations));
64
74
  }
75
+ /**
76
+ * Get SVG as string with whitespaces
77
+ */
78
+ toPrettyString(customisations) {
79
+ const str = this.toMinifiedString(customisations);
80
+ return utils.prettifySVG(str) ?? str;
81
+ }
65
82
  /**
66
83
  * Get body
67
84
  */
@@ -0,0 +1,52 @@
1
+ import * as cheerio from 'cheerio';
2
+ import { IconifyIcon } from '@iconify/types';
3
+ export { IconifyIcon } from '@iconify/types';
4
+ import { IconifyIconCustomisations } from '@iconify/utils/lib/customisations/defaults';
5
+ export { IconifyIconCustomisations } from '@iconify/utils/lib/customisations/defaults';
6
+
7
+ interface ViewBox {
8
+ left: number;
9
+ top: number;
10
+ width: number;
11
+ height: number;
12
+ }
13
+
14
+ /**
15
+ * SVG class, used to manipulate icon content.
16
+ */
17
+ declare class SVG {
18
+ $svg: cheerio.CheerioAPI;
19
+ viewBox: ViewBox;
20
+ /**
21
+ * Constructor
22
+ */
23
+ constructor(content: string);
24
+ /**
25
+ * Get SVG as string
26
+ */
27
+ toString(customisations?: IconifyIconCustomisations): string;
28
+ /**
29
+ * Get SVG as string without whitespaces
30
+ */
31
+ toMinifiedString(customisations?: IconifyIconCustomisations): string;
32
+ /**
33
+ * Get SVG as string with whitespaces
34
+ */
35
+ toPrettyString(customisations?: IconifyIconCustomisations): string;
36
+ /**
37
+ * Get body
38
+ */
39
+ getBody(): string;
40
+ /**
41
+ * Get icon as IconifyIcon
42
+ */
43
+ getIcon(): IconifyIcon;
44
+ /**
45
+ * Load SVG
46
+ *
47
+ * @param {string} content
48
+ */
49
+ load(content: string): void;
50
+ }
51
+
52
+ export { SVG, type ViewBox };
@@ -0,0 +1,52 @@
1
+ import * as cheerio from 'cheerio';
2
+ import { IconifyIcon } from '@iconify/types';
3
+ export { IconifyIcon } from '@iconify/types';
4
+ import { IconifyIconCustomisations } from '@iconify/utils/lib/customisations/defaults';
5
+ export { IconifyIconCustomisations } from '@iconify/utils/lib/customisations/defaults';
6
+
7
+ interface ViewBox {
8
+ left: number;
9
+ top: number;
10
+ width: number;
11
+ height: number;
12
+ }
13
+
14
+ /**
15
+ * SVG class, used to manipulate icon content.
16
+ */
17
+ declare class SVG {
18
+ $svg: cheerio.CheerioAPI;
19
+ viewBox: ViewBox;
20
+ /**
21
+ * Constructor
22
+ */
23
+ constructor(content: string);
24
+ /**
25
+ * Get SVG as string
26
+ */
27
+ toString(customisations?: IconifyIconCustomisations): string;
28
+ /**
29
+ * Get SVG as string without whitespaces
30
+ */
31
+ toMinifiedString(customisations?: IconifyIconCustomisations): string;
32
+ /**
33
+ * Get SVG as string with whitespaces
34
+ */
35
+ toPrettyString(customisations?: IconifyIconCustomisations): string;
36
+ /**
37
+ * Get body
38
+ */
39
+ getBody(): string;
40
+ /**
41
+ * Get icon as IconifyIcon
42
+ */
43
+ getIcon(): IconifyIcon;
44
+ /**
45
+ * Load SVG
46
+ *
47
+ * @param {string} content
48
+ */
49
+ load(content: string): void;
50
+ }
51
+
52
+ export { SVG, type ViewBox };
@@ -29,6 +29,10 @@ declare class SVG {
29
29
  * Get SVG as string without whitespaces
30
30
  */
31
31
  toMinifiedString(customisations?: IconifyIconCustomisations): string;
32
+ /**
33
+ * Get SVG as string with whitespaces
34
+ */
35
+ toPrettyString(customisations?: IconifyIconCustomisations): string;
32
36
  /**
33
37
  * Get body
34
38
  */
@@ -45,4 +49,4 @@ declare class SVG {
45
49
  load(content: string): void;
46
50
  }
47
51
 
48
- export { SVG, ViewBox };
52
+ export { SVG, type ViewBox };
package/lib/svg/index.mjs CHANGED
@@ -1,11 +1,21 @@
1
1
  import * as cheerio from 'cheerio';
2
- import { iconToSVG, trimSVG } from '@iconify/utils';
2
+ import { iconToSVG, trimSVG, prettifySVG } from '@iconify/utils';
3
3
 
4
+ var __defProp = Object.defineProperty;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __publicField = (obj, key, value) => {
7
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
8
+ return value;
9
+ };
4
10
  class SVG {
5
11
  /**
6
12
  * Constructor
7
13
  */
8
14
  constructor(content) {
15
+ // Cheerio tree, initialized in load()
16
+ __publicField(this, "$svg");
17
+ // Dimensions, initialized in load()
18
+ __publicField(this, "viewBox");
9
19
  this.load(content);
10
20
  }
11
21
  /**
@@ -46,6 +56,13 @@ class SVG {
46
56
  toMinifiedString(customisations) {
47
57
  return trimSVG(this.toString(customisations));
48
58
  }
59
+ /**
60
+ * Get SVG as string with whitespaces
61
+ */
62
+ toPrettyString(customisations) {
63
+ const str = this.toMinifiedString(customisations);
64
+ return prettifySVG(str) ?? str;
65
+ }
49
66
  /**
50
67
  * Get body
51
68
  */
@@ -0,0 +1,58 @@
1
+ import { SVG } from './index.cjs';
2
+ import { CSSRuleToken, CSSToken, CSSAtRuleToken } from '../css/parser/types.cjs';
3
+ import { ParseSVGCallbackItem } from './parse.cjs';
4
+ import 'cheerio';
5
+ import '@iconify/types';
6
+ import '@iconify/utils/lib/customisations/defaults';
7
+ import '../misc/cheerio.cjs';
8
+
9
+ /**
10
+ * Item in callback
11
+ */
12
+ interface ParseSVGStyleCallbackItemCommon {
13
+ prop: string;
14
+ value: string;
15
+ }
16
+ interface ParseSVGStyleCallbackItemInline extends ParseSVGStyleCallbackItemCommon {
17
+ type: 'inline';
18
+ item: ParseSVGCallbackItem;
19
+ }
20
+ interface ParseSVGStyleCallbackItemGlobal extends ParseSVGStyleCallbackItemCommon {
21
+ type: 'global';
22
+ token: CSSRuleToken;
23
+ selectors: string[];
24
+ selectorTokens: CSSToken[];
25
+ prevTokens: (CSSToken | null)[];
26
+ nextTokens: CSSToken[];
27
+ }
28
+ interface ParseSVGStyleCallbackItemGlobalAtRule extends ParseSVGStyleCallbackItemCommon {
29
+ token: CSSAtRuleToken;
30
+ childTokens: CSSToken[];
31
+ prevTokens: (CSSToken | null)[];
32
+ nextTokens: CSSToken[];
33
+ }
34
+ interface ParseSVGStyleCallbackItemGlobalGenericAtRule extends ParseSVGStyleCallbackItemGlobalAtRule {
35
+ type: 'at-rule';
36
+ }
37
+ interface ParseSVGStyleCallbackItemGlobalKeyframesAtRule extends ParseSVGStyleCallbackItemGlobalAtRule {
38
+ type: 'keyframes';
39
+ from: Record<string, string>;
40
+ }
41
+ type ParseSVGStyleCallbackItem = ParseSVGStyleCallbackItemInline | ParseSVGStyleCallbackItemGlobal | ParseSVGStyleCallbackItemGlobalGenericAtRule | ParseSVGStyleCallbackItemGlobalKeyframesAtRule;
42
+ /**
43
+ * Result: undefined to remove item, string to change/keep item
44
+ */
45
+ type ParseSVGStyleCallbackResult = string | undefined;
46
+ /**
47
+ * Callback function
48
+ */
49
+ type ParseSVGStyleCallback = (item: ParseSVGStyleCallbackItem) => ParseSVGStyleCallbackResult;
50
+ /**
51
+ * Parse styles in SVG
52
+ *
53
+ * This function finds CSS in SVG, parses it, calls callback for each rule.
54
+ * Callback should return new value (string) or undefined to remove rule.
55
+ */
56
+ declare function parseSVGStyle(svg: SVG, callback: ParseSVGStyleCallback): void;
57
+
58
+ export { type ParseSVGStyleCallback, type ParseSVGStyleCallbackItem, type ParseSVGStyleCallbackResult, parseSVGStyle };
@@ -0,0 +1,58 @@
1
+ import { SVG } from './index.mjs';
2
+ import { CSSRuleToken, CSSToken, CSSAtRuleToken } from '../css/parser/types.mjs';
3
+ import { ParseSVGCallbackItem } from './parse.mjs';
4
+ import 'cheerio';
5
+ import '@iconify/types';
6
+ import '@iconify/utils/lib/customisations/defaults';
7
+ import '../misc/cheerio.mjs';
8
+
9
+ /**
10
+ * Item in callback
11
+ */
12
+ interface ParseSVGStyleCallbackItemCommon {
13
+ prop: string;
14
+ value: string;
15
+ }
16
+ interface ParseSVGStyleCallbackItemInline extends ParseSVGStyleCallbackItemCommon {
17
+ type: 'inline';
18
+ item: ParseSVGCallbackItem;
19
+ }
20
+ interface ParseSVGStyleCallbackItemGlobal extends ParseSVGStyleCallbackItemCommon {
21
+ type: 'global';
22
+ token: CSSRuleToken;
23
+ selectors: string[];
24
+ selectorTokens: CSSToken[];
25
+ prevTokens: (CSSToken | null)[];
26
+ nextTokens: CSSToken[];
27
+ }
28
+ interface ParseSVGStyleCallbackItemGlobalAtRule extends ParseSVGStyleCallbackItemCommon {
29
+ token: CSSAtRuleToken;
30
+ childTokens: CSSToken[];
31
+ prevTokens: (CSSToken | null)[];
32
+ nextTokens: CSSToken[];
33
+ }
34
+ interface ParseSVGStyleCallbackItemGlobalGenericAtRule extends ParseSVGStyleCallbackItemGlobalAtRule {
35
+ type: 'at-rule';
36
+ }
37
+ interface ParseSVGStyleCallbackItemGlobalKeyframesAtRule extends ParseSVGStyleCallbackItemGlobalAtRule {
38
+ type: 'keyframes';
39
+ from: Record<string, string>;
40
+ }
41
+ type ParseSVGStyleCallbackItem = ParseSVGStyleCallbackItemInline | ParseSVGStyleCallbackItemGlobal | ParseSVGStyleCallbackItemGlobalGenericAtRule | ParseSVGStyleCallbackItemGlobalKeyframesAtRule;
42
+ /**
43
+ * Result: undefined to remove item, string to change/keep item
44
+ */
45
+ type ParseSVGStyleCallbackResult = string | undefined;
46
+ /**
47
+ * Callback function
48
+ */
49
+ type ParseSVGStyleCallback = (item: ParseSVGStyleCallbackItem) => ParseSVGStyleCallbackResult;
50
+ /**
51
+ * Parse styles in SVG
52
+ *
53
+ * This function finds CSS in SVG, parses it, calls callback for each rule.
54
+ * Callback should return new value (string) or undefined to remove rule.
55
+ */
56
+ declare function parseSVGStyle(svg: SVG, callback: ParseSVGStyleCallback): void;
57
+
58
+ export { type ParseSVGStyleCallback, type ParseSVGStyleCallbackItem, type ParseSVGStyleCallbackResult, parseSVGStyle };
@@ -55,4 +55,4 @@ type ParseSVGStyleCallback = (item: ParseSVGStyleCallbackItem) => ParseSVGStyleC
55
55
  */
56
56
  declare function parseSVGStyle(svg: SVG, callback: ParseSVGStyleCallback): void;
57
57
 
58
- export { ParseSVGStyleCallback, ParseSVGStyleCallbackItem, ParseSVGStyleCallbackResult, parseSVGStyle };
58
+ export { type ParseSVGStyleCallback, type ParseSVGStyleCallbackItem, type ParseSVGStyleCallbackResult, parseSVGStyle };