@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,162 @@
1
+ import { IconifyInfo, IconifyJSON } from '@iconify/types';
2
+ import { IconifyIconCustomisations } from '@iconify/utils/lib/customisations/defaults';
3
+ import { IconSetIconEntry, IconCategory, IconSetIconType, IconSetAsyncForEachCallback, IconSetSyncForEachCallback, ResolvedIconifyIcon, CommonIconProps, CheckThemeResult } from './types.cjs';
4
+ import { SVG } from '../svg/index.cjs';
5
+ import { ParentIconsTree } from '@iconify/utils/lib/icon-set/tree';
6
+ import 'cheerio';
7
+
8
+ /**
9
+ * Sort theme keys: long keys first
10
+ *
11
+ * Applies changes to parameter, but also returns it
12
+ */
13
+ declare function sortThemeKeys(keys: string[]): string[];
14
+ /**
15
+ * Export icon set
16
+ */
17
+ declare class IconSet {
18
+ /**
19
+ * Properties. You can write directly to almost any property, but avoid writing to
20
+ * 'entries' and 'categories' properties, there are functions for that.
21
+ */
22
+ prefix: string;
23
+ lastModified: number;
24
+ entries: Record<string, IconSetIconEntry>;
25
+ info: IconifyInfo | undefined;
26
+ categories: Set<IconCategory>;
27
+ prefixes: Record<string, string>;
28
+ suffixes: Record<string, string>;
29
+ /**
30
+ * Load icon set
31
+ */
32
+ constructor(data: IconifyJSON);
33
+ /**
34
+ * Load icon set
35
+ */
36
+ load(data: IconifyJSON): void;
37
+ /**
38
+ * Update last modification time
39
+ */
40
+ updateLastModified(value?: number): void;
41
+ /**
42
+ * List icons
43
+ */
44
+ list(types?: IconSetIconType[]): string[];
45
+ /**
46
+ * forEach function to loop through all entries.
47
+ * Supports asynchronous callbacks.
48
+ *
49
+ * Callback should return false to stop loop.
50
+ */
51
+ forEach(callback: IconSetAsyncForEachCallback, types?: IconSetIconType[]): Promise<void>;
52
+ /**
53
+ * Synchronous version of forEach function to loop through all entries.
54
+ *
55
+ * Callback should return false to stop loop.
56
+ */
57
+ forEachSync(callback: IconSetSyncForEachCallback, types?: IconSetIconType[]): void;
58
+ /**
59
+ * Get parent icons tree
60
+ *
61
+ * Returns parent icons list for each icon, null if failed to resolve.
62
+ * In parent icons list, first element is a direct parent, last is icon. Does not include item.
63
+ *
64
+ * Examples:
65
+ * 'alias3': ['alias2', 'alias1', 'icon']
66
+ * 'icon': []
67
+ * 'bad-icon': null
68
+ */
69
+ getTree(names?: string[]): ParentIconsTree;
70
+ /**
71
+ * Resolve icon
72
+ */
73
+ resolve(name: string, full: false): ResolvedIconifyIcon | null;
74
+ resolve(name: string): ResolvedIconifyIcon | null;
75
+ resolve(name: string, full: true): Required<ResolvedIconifyIcon> | null;
76
+ /**
77
+ * Generate HTML
78
+ */
79
+ toString(name: string, customisations?: IconifyIconCustomisations): string | null;
80
+ /**
81
+ * Get SVG instance for icon
82
+ */
83
+ toSVG(name: string): SVG | null;
84
+ /**
85
+ * Export icon set
86
+ */
87
+ export(validate?: boolean): IconifyJSON;
88
+ /**
89
+ * Get characters map
90
+ */
91
+ chars(names?: string[]): Record<string, string>;
92
+ /**
93
+ * Filter icons
94
+ */
95
+ _filter(callback: (name: string, item: IconSetIconEntry, icon?: ResolvedIconifyIcon) => boolean): string[];
96
+ /**
97
+ * Count icons
98
+ */
99
+ count(): number;
100
+ /**
101
+ * Find category by title
102
+ */
103
+ findCategory(title: string, add: boolean): IconCategory | null;
104
+ /**
105
+ * Count icons in category, remove category if empty
106
+ *
107
+ * Hidden icons and aliases do not count
108
+ */
109
+ listCategory(category: IconCategory | string): string[] | null;
110
+ /**
111
+ * Check if icon exists
112
+ */
113
+ exists(name: string): boolean;
114
+ /**
115
+ * Remove icons. Returns number of removed icons
116
+ *
117
+ * If removeDependencies is a string, it represents new parent for all aliases of removed icon. New parent cannot be alias or variation.
118
+ */
119
+ remove(name: string, removeDependencies?: boolean | string): number;
120
+ /**
121
+ * Rename icon
122
+ */
123
+ rename(oldName: string, newName: string): boolean;
124
+ /**
125
+ * Add/update item
126
+ */
127
+ setItem(name: string, item: IconSetIconEntry): boolean;
128
+ /**
129
+ * Add/update icon
130
+ */
131
+ setIcon(name: string, icon: ResolvedIconifyIcon): boolean;
132
+ /**
133
+ * Add/update alias without props
134
+ */
135
+ setAlias(name: string, parent: string): boolean;
136
+ /**
137
+ * Add/update alias with props
138
+ */
139
+ setVariation(name: string, parent: string, props: CommonIconProps): boolean;
140
+ /**
141
+ * Icon from SVG. Updates old icon if it exists
142
+ */
143
+ fromSVG(name: string, svg: SVG): boolean;
144
+ /**
145
+ * Add or remove character for icon
146
+ */
147
+ toggleCharacter(iconName: string, char: string, add: boolean): boolean;
148
+ /**
149
+ * Add or remove category for icon
150
+ */
151
+ toggleCategory(iconName: string, category: string, add: boolean): boolean;
152
+ /**
153
+ * Find icons that belong to theme
154
+ */
155
+ checkTheme(prefix: boolean): CheckThemeResult;
156
+ }
157
+ /**
158
+ * Create blank icon set
159
+ */
160
+ declare function blankIconSet(prefix: string): IconSet;
161
+
162
+ export { IconSet, blankIconSet, sortThemeKeys };
@@ -0,0 +1,162 @@
1
+ import { IconifyInfo, IconifyJSON } from '@iconify/types';
2
+ import { IconifyIconCustomisations } from '@iconify/utils/lib/customisations/defaults';
3
+ import { IconSetIconEntry, IconCategory, IconSetIconType, IconSetAsyncForEachCallback, IconSetSyncForEachCallback, ResolvedIconifyIcon, CommonIconProps, CheckThemeResult } from './types.mjs';
4
+ import { SVG } from '../svg/index.mjs';
5
+ import { ParentIconsTree } from '@iconify/utils/lib/icon-set/tree';
6
+ import 'cheerio';
7
+
8
+ /**
9
+ * Sort theme keys: long keys first
10
+ *
11
+ * Applies changes to parameter, but also returns it
12
+ */
13
+ declare function sortThemeKeys(keys: string[]): string[];
14
+ /**
15
+ * Export icon set
16
+ */
17
+ declare class IconSet {
18
+ /**
19
+ * Properties. You can write directly to almost any property, but avoid writing to
20
+ * 'entries' and 'categories' properties, there are functions for that.
21
+ */
22
+ prefix: string;
23
+ lastModified: number;
24
+ entries: Record<string, IconSetIconEntry>;
25
+ info: IconifyInfo | undefined;
26
+ categories: Set<IconCategory>;
27
+ prefixes: Record<string, string>;
28
+ suffixes: Record<string, string>;
29
+ /**
30
+ * Load icon set
31
+ */
32
+ constructor(data: IconifyJSON);
33
+ /**
34
+ * Load icon set
35
+ */
36
+ load(data: IconifyJSON): void;
37
+ /**
38
+ * Update last modification time
39
+ */
40
+ updateLastModified(value?: number): void;
41
+ /**
42
+ * List icons
43
+ */
44
+ list(types?: IconSetIconType[]): string[];
45
+ /**
46
+ * forEach function to loop through all entries.
47
+ * Supports asynchronous callbacks.
48
+ *
49
+ * Callback should return false to stop loop.
50
+ */
51
+ forEach(callback: IconSetAsyncForEachCallback, types?: IconSetIconType[]): Promise<void>;
52
+ /**
53
+ * Synchronous version of forEach function to loop through all entries.
54
+ *
55
+ * Callback should return false to stop loop.
56
+ */
57
+ forEachSync(callback: IconSetSyncForEachCallback, types?: IconSetIconType[]): void;
58
+ /**
59
+ * Get parent icons tree
60
+ *
61
+ * Returns parent icons list for each icon, null if failed to resolve.
62
+ * In parent icons list, first element is a direct parent, last is icon. Does not include item.
63
+ *
64
+ * Examples:
65
+ * 'alias3': ['alias2', 'alias1', 'icon']
66
+ * 'icon': []
67
+ * 'bad-icon': null
68
+ */
69
+ getTree(names?: string[]): ParentIconsTree;
70
+ /**
71
+ * Resolve icon
72
+ */
73
+ resolve(name: string, full: false): ResolvedIconifyIcon | null;
74
+ resolve(name: string): ResolvedIconifyIcon | null;
75
+ resolve(name: string, full: true): Required<ResolvedIconifyIcon> | null;
76
+ /**
77
+ * Generate HTML
78
+ */
79
+ toString(name: string, customisations?: IconifyIconCustomisations): string | null;
80
+ /**
81
+ * Get SVG instance for icon
82
+ */
83
+ toSVG(name: string): SVG | null;
84
+ /**
85
+ * Export icon set
86
+ */
87
+ export(validate?: boolean): IconifyJSON;
88
+ /**
89
+ * Get characters map
90
+ */
91
+ chars(names?: string[]): Record<string, string>;
92
+ /**
93
+ * Filter icons
94
+ */
95
+ _filter(callback: (name: string, item: IconSetIconEntry, icon?: ResolvedIconifyIcon) => boolean): string[];
96
+ /**
97
+ * Count icons
98
+ */
99
+ count(): number;
100
+ /**
101
+ * Find category by title
102
+ */
103
+ findCategory(title: string, add: boolean): IconCategory | null;
104
+ /**
105
+ * Count icons in category, remove category if empty
106
+ *
107
+ * Hidden icons and aliases do not count
108
+ */
109
+ listCategory(category: IconCategory | string): string[] | null;
110
+ /**
111
+ * Check if icon exists
112
+ */
113
+ exists(name: string): boolean;
114
+ /**
115
+ * Remove icons. Returns number of removed icons
116
+ *
117
+ * If removeDependencies is a string, it represents new parent for all aliases of removed icon. New parent cannot be alias or variation.
118
+ */
119
+ remove(name: string, removeDependencies?: boolean | string): number;
120
+ /**
121
+ * Rename icon
122
+ */
123
+ rename(oldName: string, newName: string): boolean;
124
+ /**
125
+ * Add/update item
126
+ */
127
+ setItem(name: string, item: IconSetIconEntry): boolean;
128
+ /**
129
+ * Add/update icon
130
+ */
131
+ setIcon(name: string, icon: ResolvedIconifyIcon): boolean;
132
+ /**
133
+ * Add/update alias without props
134
+ */
135
+ setAlias(name: string, parent: string): boolean;
136
+ /**
137
+ * Add/update alias with props
138
+ */
139
+ setVariation(name: string, parent: string, props: CommonIconProps): boolean;
140
+ /**
141
+ * Icon from SVG. Updates old icon if it exists
142
+ */
143
+ fromSVG(name: string, svg: SVG): boolean;
144
+ /**
145
+ * Add or remove character for icon
146
+ */
147
+ toggleCharacter(iconName: string, char: string, add: boolean): boolean;
148
+ /**
149
+ * Add or remove category for icon
150
+ */
151
+ toggleCategory(iconName: string, category: string, add: boolean): boolean;
152
+ /**
153
+ * Find icons that belong to theme
154
+ */
155
+ checkTheme(prefix: boolean): CheckThemeResult;
156
+ }
157
+ /**
158
+ * Create blank icon set
159
+ */
160
+ declare function blankIconSet(prefix: string): IconSet;
161
+
162
+ export { IconSet, blankIconSet, sortThemeKeys };
@@ -8,6 +8,12 @@ import { mergeIconData } from '@iconify/utils';
8
8
  import '@iconify/utils/lib/misc/objects';
9
9
  import 'cheerio';
10
10
 
11
+ var __defProp = Object.defineProperty;
12
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
13
+ var __publicField = (obj, key, value) => {
14
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
15
+ return value;
16
+ };
11
17
  const themeKeys = ["prefixes", "suffixes"];
12
18
  function sortThemeKeys(keys) {
13
19
  return keys.sort(
@@ -19,6 +25,22 @@ class IconSet {
19
25
  * Load icon set
20
26
  */
21
27
  constructor(data) {
28
+ /**
29
+ * Properties. You can write directly to almost any property, but avoid writing to
30
+ * 'entries' and 'categories' properties, there are functions for that.
31
+ */
32
+ // Icon set prefix
33
+ __publicField(this, "prefix");
34
+ // Last modification time
35
+ __publicField(this, "lastModified");
36
+ // All icons
37
+ __publicField(this, "entries");
38
+ // Information block
39
+ __publicField(this, "info");
40
+ // Categories, using custom type. Use functions to update data
41
+ __publicField(this, "categories");
42
+ __publicField(this, "prefixes");
43
+ __publicField(this, "suffixes");
22
44
  this.load(data);
23
45
  }
24
46
  /**
@@ -0,0 +1,15 @@
1
+ import { FullIconifyIcon } from '@iconify/utils/lib/icon/defaults';
2
+ import { IconSet } from './index.cjs';
3
+ import '@iconify/types';
4
+ import '@iconify/utils/lib/customisations/defaults';
5
+ import './types.cjs';
6
+ import '../svg/index.cjs';
7
+ import 'cheerio';
8
+ import '@iconify/utils/lib/icon-set/tree';
9
+
10
+ /**
11
+ * Find matching icon in icon set
12
+ */
13
+ declare function findMatchingIcon(iconSet: IconSet, icon: FullIconifyIcon): string | null;
14
+
15
+ export { findMatchingIcon };
@@ -0,0 +1,15 @@
1
+ import { FullIconifyIcon } from '@iconify/utils/lib/icon/defaults';
2
+ import { IconSet } from './index.mjs';
3
+ import '@iconify/types';
4
+ import '@iconify/utils/lib/customisations/defaults';
5
+ import './types.mjs';
6
+ import '../svg/index.mjs';
7
+ import 'cheerio';
8
+ import '@iconify/utils/lib/icon-set/tree';
9
+
10
+ /**
11
+ * Find matching icon in icon set
12
+ */
13
+ declare function findMatchingIcon(iconSet: IconSet, icon: FullIconifyIcon): string | null;
14
+
15
+ export { findMatchingIcon };
@@ -0,0 +1,14 @@
1
+ import { IconSet } from './index.cjs';
2
+ import '@iconify/types';
3
+ import '@iconify/utils/lib/customisations/defaults';
4
+ import './types.cjs';
5
+ import '../svg/index.cjs';
6
+ import 'cheerio';
7
+ import '@iconify/utils/lib/icon-set/tree';
8
+
9
+ /**
10
+ * Merge icon sets
11
+ */
12
+ declare function mergeIconSets(oldIcons: IconSet, newIcons: IconSet): IconSet;
13
+
14
+ export { mergeIconSets };
@@ -0,0 +1,14 @@
1
+ import { IconSet } from './index.mjs';
2
+ import '@iconify/types';
3
+ import '@iconify/utils/lib/customisations/defaults';
4
+ import './types.mjs';
5
+ import '../svg/index.mjs';
6
+ import 'cheerio';
7
+ import '@iconify/utils/lib/icon-set/tree';
8
+
9
+ /**
10
+ * Merge icon sets
11
+ */
12
+ declare function mergeIconSets(oldIcons: IconSet, newIcons: IconSet): IconSet;
13
+
14
+ export { mergeIconSets };
@@ -0,0 +1,16 @@
1
+ import { IconSet } from './index.cjs';
2
+ import '@iconify/types';
3
+ import '@iconify/utils/lib/customisations/defaults';
4
+ import './types.cjs';
5
+ import '../svg/index.cjs';
6
+ import 'cheerio';
7
+ import '@iconify/utils/lib/icon-set/tree';
8
+
9
+ /**
10
+ * Check if icons in an icon set were updated.
11
+ *
12
+ * This function checks only icons, not metadata. It also ignores icon visibility.
13
+ */
14
+ declare function hasIconDataBeenModified(set1: IconSet, set2: IconSet): boolean;
15
+
16
+ export { hasIconDataBeenModified };
@@ -0,0 +1,16 @@
1
+ import { IconSet } from './index.mjs';
2
+ import '@iconify/types';
3
+ import '@iconify/utils/lib/customisations/defaults';
4
+ import './types.mjs';
5
+ import '../svg/index.mjs';
6
+ import 'cheerio';
7
+ import '@iconify/utils/lib/icon-set/tree';
8
+
9
+ /**
10
+ * Check if icons in an icon set were updated.
11
+ *
12
+ * This function checks only icons, not metadata. It also ignores icon visibility.
13
+ */
14
+ declare function hasIconDataBeenModified(set1: IconSet, set2: IconSet): boolean;
15
+
16
+ export { hasIconDataBeenModified };
@@ -0,0 +1,13 @@
1
+ import { CommonIconProps } from './types.cjs';
2
+ import '@iconify/types';
3
+
4
+ /**
5
+ * Common properties for icon and alias
6
+ */
7
+ declare const defaultCommonProps: Required<CommonIconProps>;
8
+ /**
9
+ * Filter icon props: copies properties, removing undefined and default entries
10
+ */
11
+ declare function filterProps(data: CommonIconProps, reference: CommonIconProps, compareDefaultValues: boolean): CommonIconProps;
12
+
13
+ export { defaultCommonProps, filterProps };
@@ -0,0 +1,13 @@
1
+ import { CommonIconProps } from './types.mjs';
2
+ import '@iconify/types';
3
+
4
+ /**
5
+ * Common properties for icon and alias
6
+ */
7
+ declare const defaultCommonProps: Required<CommonIconProps>;
8
+ /**
9
+ * Filter icon props: copies properties, removing undefined and default entries
10
+ */
11
+ declare function filterProps(data: CommonIconProps, reference: CommonIconProps, compareDefaultValues: boolean): CommonIconProps;
12
+
13
+ export { defaultCommonProps, filterProps };
@@ -0,0 +1,23 @@
1
+ import { IconSet } from './index.cjs';
2
+ import '@iconify/types';
3
+ import '@iconify/utils/lib/customisations/defaults';
4
+ import './types.cjs';
5
+ import '../svg/index.cjs';
6
+ import 'cheerio';
7
+ import '@iconify/utils/lib/icon-set/tree';
8
+
9
+ declare const paletteTags: {
10
+ monotone: string;
11
+ palette: string;
12
+ };
13
+ declare const sizeTags: {
14
+ square: string;
15
+ gridPrefix: string;
16
+ heightPrefix: string;
17
+ };
18
+ /**
19
+ * Add tags to icon set
20
+ */
21
+ declare function addTagsToIconSet(iconSet: IconSet, customTags?: string[]): string[];
22
+
23
+ export { addTagsToIconSet, paletteTags, sizeTags };
@@ -0,0 +1,23 @@
1
+ import { IconSet } from './index.mjs';
2
+ import '@iconify/types';
3
+ import '@iconify/utils/lib/customisations/defaults';
4
+ import './types.mjs';
5
+ import '../svg/index.mjs';
6
+ import 'cheerio';
7
+ import '@iconify/utils/lib/icon-set/tree';
8
+
9
+ declare const paletteTags: {
10
+ monotone: string;
11
+ palette: string;
12
+ };
13
+ declare const sizeTags: {
14
+ square: string;
15
+ gridPrefix: string;
16
+ heightPrefix: string;
17
+ };
18
+ /**
19
+ * Add tags to icon set
20
+ */
21
+ declare function addTagsToIconSet(iconSet: IconSet, customTags?: string[]): string[];
22
+
23
+ export { addTagsToIconSet, paletteTags, sizeTags };
@@ -0,0 +1,75 @@
1
+ import { ExtendedIconifyIcon, ExtendedIconifyAlias, IconifyOptional, IconifyIcon } from '@iconify/types';
2
+
3
+ /**
4
+ * Category item
5
+ */
6
+ interface IconCategory {
7
+ title: string;
8
+ count: number;
9
+ }
10
+ /**
11
+ * Get common properties: IconifyOptional + APIIconAttributes
12
+ */
13
+ type CommonProps<A, B> = {
14
+ [K in keyof A & keyof B]?: A[K] extends B[K] ? A[K] : never;
15
+ };
16
+ type CommonIconProps = CommonProps<ExtendedIconifyIcon, ExtendedIconifyAlias>;
17
+ /**
18
+ * Exclude IconifyOptional from CommonIconProps
19
+ */
20
+ type ExtraIconProps = Omit<CommonIconProps, keyof IconifyOptional>;
21
+ /**
22
+ * Partials
23
+ */
24
+ interface IconWithChars {
25
+ chars: Set<string>;
26
+ }
27
+ interface IconWithPropsData extends IconWithChars {
28
+ props: CommonIconProps;
29
+ }
30
+ interface IconWithCategories {
31
+ categories: Set<IconCategory>;
32
+ }
33
+ interface IconParentData {
34
+ parent: string;
35
+ }
36
+ /**
37
+ * Icon types
38
+ */
39
+ interface IconSetIcon extends IconWithPropsData, IconWithCategories {
40
+ type: 'icon';
41
+ body: string;
42
+ }
43
+ interface IconSetIconAlias extends IconWithChars, IconParentData {
44
+ type: 'alias';
45
+ }
46
+ interface IconSetIconVariation extends IconWithPropsData, IconParentData {
47
+ type: 'variation';
48
+ }
49
+ /**
50
+ * All icon types
51
+ */
52
+ type IconSetIconEntry = IconSetIcon | IconSetIconAlias | IconSetIconVariation;
53
+ type IconSetIconType = IconSetIconEntry['type'];
54
+ /**
55
+ * Full icon with extra stuff
56
+ */
57
+ interface ResolvedIconifyIcon extends IconifyIcon, ExtraIconProps {
58
+ }
59
+ /**
60
+ * Result for checking theme: list of names for each theme
61
+ */
62
+ interface CheckThemeResult {
63
+ valid: Record<string, string[]>;
64
+ invalid: string[];
65
+ }
66
+ /**
67
+ * Callback for forEach functions
68
+ *
69
+ * Return false to stop loop
70
+ */
71
+ type IconSetForEachCallbackResult = void | false;
72
+ type IconSetAsyncForEachCallback = (name: string, type: IconSetIconEntry['type']) => Promise<IconSetForEachCallbackResult> | IconSetForEachCallbackResult;
73
+ 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 };
@@ -0,0 +1,75 @@
1
+ import { ExtendedIconifyIcon, ExtendedIconifyAlias, IconifyOptional, IconifyIcon } from '@iconify/types';
2
+
3
+ /**
4
+ * Category item
5
+ */
6
+ interface IconCategory {
7
+ title: string;
8
+ count: number;
9
+ }
10
+ /**
11
+ * Get common properties: IconifyOptional + APIIconAttributes
12
+ */
13
+ type CommonProps<A, B> = {
14
+ [K in keyof A & keyof B]?: A[K] extends B[K] ? A[K] : never;
15
+ };
16
+ type CommonIconProps = CommonProps<ExtendedIconifyIcon, ExtendedIconifyAlias>;
17
+ /**
18
+ * Exclude IconifyOptional from CommonIconProps
19
+ */
20
+ type ExtraIconProps = Omit<CommonIconProps, keyof IconifyOptional>;
21
+ /**
22
+ * Partials
23
+ */
24
+ interface IconWithChars {
25
+ chars: Set<string>;
26
+ }
27
+ interface IconWithPropsData extends IconWithChars {
28
+ props: CommonIconProps;
29
+ }
30
+ interface IconWithCategories {
31
+ categories: Set<IconCategory>;
32
+ }
33
+ interface IconParentData {
34
+ parent: string;
35
+ }
36
+ /**
37
+ * Icon types
38
+ */
39
+ interface IconSetIcon extends IconWithPropsData, IconWithCategories {
40
+ type: 'icon';
41
+ body: string;
42
+ }
43
+ interface IconSetIconAlias extends IconWithChars, IconParentData {
44
+ type: 'alias';
45
+ }
46
+ interface IconSetIconVariation extends IconWithPropsData, IconParentData {
47
+ type: 'variation';
48
+ }
49
+ /**
50
+ * All icon types
51
+ */
52
+ type IconSetIconEntry = IconSetIcon | IconSetIconAlias | IconSetIconVariation;
53
+ type IconSetIconType = IconSetIconEntry['type'];
54
+ /**
55
+ * Full icon with extra stuff
56
+ */
57
+ interface ResolvedIconifyIcon extends IconifyIcon, ExtraIconProps {
58
+ }
59
+ /**
60
+ * Result for checking theme: list of names for each theme
61
+ */
62
+ interface CheckThemeResult {
63
+ valid: Record<string, string[]>;
64
+ invalid: string[];
65
+ }
66
+ /**
67
+ * Callback for forEach functions
68
+ *
69
+ * Return false to stop loop
70
+ */
71
+ type IconSetForEachCallbackResult = void | false;
72
+ type IconSetAsyncForEachCallback = (name: string, type: IconSetIconEntry['type']) => Promise<IconSetForEachCallbackResult> | IconSetForEachCallbackResult;
73
+ 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 };