@featherk/icons 0.14.1 → 0.15.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.
package/README.md CHANGED
@@ -70,7 +70,7 @@ variants, data URL usage, and related utilities) see [COMING-SOON.md](docs/COMIN
70
70
 
71
71
  Font Awesome services are separate from `getCustomIcon()` and the owned icon registry. The package supplies a Vite plugin, Node generator, and CLI to prepare selected icons from the consumer's installed Font Awesome packages; it includes no Free or paid Font Awesome artwork and grants no license rights.
72
72
 
73
- Start with [Choose Font Awesome Icons and Create a Manifest](https://github.com/NantHealth/featherk/blob/integration/packages/icons/docs/fontawesome/CreateFontAwesomeManifest.md) for the UX/Design task of selecting and defining the exact icons your application will use.
73
+ Start with [Choose Font Awesome Icons and Create a Manifest](https://github.com/NantHealth/featherk/blob/integration/packages/icons/docs/fontawesome/CreateFontAwesomeManifest.md) for how UX provides globally unique catalog keys and apps select only the keys they use. The metadata-only Free/Pro catalog is published at `@featherk/icons/fontawesome/catalog`; it contains no Font Awesome artwork.
74
74
 
75
75
  Dev then follows [Font Awesome setup](https://github.com/NantHealth/featherk/blob/integration/packages/icons/docs/fontawesome/FontAwesome.md) for the default Vite integration. For Dev-owned CLI generation, early type preparation, or non-Vite applications, see [CLI and non-Vite setup](https://github.com/NantHealth/featherk/blob/integration/packages/icons/docs/fontawesome/FontAwesomeCLI.md).
76
76
 
@@ -0,0 +1,16 @@
1
+ // Generated by scripts/generate-docs-manifest.mjs. Do not edit.
2
+ export type DocName =
3
+ | "CreateFontAwesomeManifest"
4
+ | "FontAwesome"
5
+ | "FontAwesomeCLI"
6
+ | "LICENSING";
7
+
8
+ export declare const packageName: "@featherk/icons";
9
+
10
+ export declare const version: string;
11
+
12
+ export declare const paths: Record<DocName, string>;
13
+
14
+ export declare const docs: Record<DocName, string>;
15
+
16
+ export declare const docUrl: (name: DocName, host?: string) => string;
@@ -0,0 +1,21 @@
1
+ // Generated by scripts/generate-docs-manifest.mjs. Do not edit.
2
+ export const packageName = "@featherk/icons";
3
+
4
+ export const version = "0.15.1";
5
+
6
+ export const paths = {
7
+ CreateFontAwesomeManifest: "fontawesome/CreateFontAwesomeManifest.md",
8
+ FontAwesome: "fontawesome/FontAwesome.md",
9
+ FontAwesomeCLI: "fontawesome/FontAwesomeCLI.md",
10
+ LICENSING: "fontawesome/LICENSING.md",
11
+ };
12
+
13
+ export const docs = {
14
+ CreateFontAwesomeManifest: "https://cdn.jsdelivr.net/npm/@featherk/icons@0.15.1/docs/fontawesome/CreateFontAwesomeManifest.md",
15
+ FontAwesome: "https://cdn.jsdelivr.net/npm/@featherk/icons@0.15.1/docs/fontawesome/FontAwesome.md",
16
+ FontAwesomeCLI: "https://cdn.jsdelivr.net/npm/@featherk/icons@0.15.1/docs/fontawesome/FontAwesomeCLI.md",
17
+ LICENSING: "https://cdn.jsdelivr.net/npm/@featherk/icons@0.15.1/docs/fontawesome/LICENSING.md",
18
+ };
19
+
20
+ export const docUrl = (name, host = "https://cdn.jsdelivr.net/npm") =>
21
+ `${host}/${packageName}@${version}/docs/${paths[name]}`;
@@ -1,4 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const generate = require("./chunks/generate-Bobf_ghm.cjs");
3
+ const generate = require("./chunks/generate-BBurrhLv.cjs");
4
+ const fontawesome_catalog = require("./catalog.cjs");
4
5
  exports.generateFaIcons = generate.generateFaIcons;
6
+ exports.fontAwesomeCatalog = fontawesome_catalog.fontAwesomeCatalog;
7
+ exports.getFontAwesomeInstallCommand = fontawesome_catalog.getFontAwesomeInstallCommand;
8
+ exports.resolveFontAwesomeKeys = fontawesome_catalog.resolveFontAwesomeKeys;
@@ -1,3 +1,5 @@
1
1
  export { generateFaIcons } from "./generate";
2
+ export { fontAwesomeCatalog, getFontAwesomeInstallCommand, resolveFontAwesomeKeys, } from "./catalog";
2
3
  export type { GenerateFaIconsOptions, GeneratedFaIcons, FontAwesomeProvenance, } from "./generate";
3
- export type { FontAwesomeSelection, FontAwesomeOptions, FontAwesomeIcon, } from "./types";
4
+ export type { FontAwesomeSelection, FontAwesomeOptions, FontAwesomeIcon, FontAwesomeCatalogEntry, FontAwesomeSourceSelection, FontAwesomeTier, } from "./types";
5
+ export type { FontAwesomeCatalogKey, ResolveFontAwesomeKeysOptions, } from "./catalog";
@@ -1,4 +1,8 @@
1
- import { g } from "./chunks/generate-Bp92GTVi.mjs";
1
+ import { g } from "./chunks/generate-Zq9q2YZD.mjs";
2
+ import { fontAwesomeCatalog, getFontAwesomeInstallCommand, resolveFontAwesomeKeys } from "./catalog.mjs";
2
3
  export {
3
- g as generateFaIcons
4
+ fontAwesomeCatalog,
5
+ g as generateFaIcons,
6
+ getFontAwesomeInstallCommand,
7
+ resolveFontAwesomeKeys
4
8
  };
@@ -0,0 +1,224 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const entries = [
4
+ {
5
+ key: "rocket",
6
+ name: "rocket",
7
+ version: "7.0.0",
8
+ family: "classic",
9
+ style: "solid",
10
+ package: "@fortawesome/free-solid-svg-icons",
11
+ registryPackage: "@fortawesome/free-solid-svg-icons",
12
+ exportName: "faRocket",
13
+ tier: "free"
14
+ },
15
+ {
16
+ key: "feather",
17
+ name: "feather",
18
+ version: "7.0.0",
19
+ family: "classic",
20
+ style: "solid",
21
+ package: "@fortawesome/free-solid-svg-icons",
22
+ registryPackage: "@fortawesome/free-solid-svg-icons",
23
+ exportName: "faFeather",
24
+ tier: "free"
25
+ },
26
+ {
27
+ key: "heart",
28
+ name: "heart",
29
+ version: "7.0.0",
30
+ family: "classic",
31
+ style: "solid",
32
+ package: "@fortawesome/free-solid-svg-icons",
33
+ registryPackage: "@fortawesome/free-solid-svg-icons",
34
+ exportName: "faHeart",
35
+ tier: "free"
36
+ },
37
+ {
38
+ key: "star",
39
+ name: "star",
40
+ version: "7.0.0",
41
+ family: "classic",
42
+ style: "solid",
43
+ package: "@fortawesome/free-solid-svg-icons",
44
+ registryPackage: "@fortawesome/free-solid-svg-icons",
45
+ exportName: "faStar",
46
+ tier: "free"
47
+ },
48
+ {
49
+ key: "user",
50
+ name: "user",
51
+ version: "7.0.0",
52
+ family: "classic",
53
+ style: "solid",
54
+ package: "@fortawesome/free-solid-svg-icons",
55
+ registryPackage: "@fortawesome/free-solid-svg-icons",
56
+ exportName: "faUser",
57
+ tier: "free"
58
+ },
59
+ {
60
+ key: "rocket-v5",
61
+ name: "rocket",
62
+ version: "5.15.4",
63
+ family: "classic",
64
+ style: "solid",
65
+ package: "fa-solid-v5",
66
+ registryPackage: "@fortawesome/free-solid-svg-icons",
67
+ exportName: "faRocket",
68
+ tier: "free"
69
+ },
70
+ {
71
+ key: "rocket-v6",
72
+ name: "rocket",
73
+ version: "6.7.2",
74
+ family: "classic",
75
+ style: "solid",
76
+ package: "fa-solid-v6",
77
+ registryPackage: "@fortawesome/free-solid-svg-icons",
78
+ exportName: "faRocket",
79
+ tier: "free"
80
+ },
81
+ {
82
+ key: "heart-regular",
83
+ name: "heart",
84
+ version: "7.0.0",
85
+ family: "classic",
86
+ style: "regular",
87
+ package: "@fortawesome/free-regular-svg-icons",
88
+ registryPackage: "@fortawesome/free-regular-svg-icons",
89
+ exportName: "faHeart",
90
+ tier: "free"
91
+ },
92
+ {
93
+ key: "star-regular",
94
+ name: "star",
95
+ version: "7.0.0",
96
+ family: "classic",
97
+ style: "regular",
98
+ package: "@fortawesome/free-regular-svg-icons",
99
+ registryPackage: "@fortawesome/free-regular-svg-icons",
100
+ exportName: "faStar",
101
+ tier: "free"
102
+ },
103
+ {
104
+ key: "user-regular",
105
+ name: "user",
106
+ version: "7.0.0",
107
+ family: "classic",
108
+ style: "regular",
109
+ package: "@fortawesome/free-regular-svg-icons",
110
+ registryPackage: "@fortawesome/free-regular-svg-icons",
111
+ exportName: "faUser",
112
+ tier: "free"
113
+ },
114
+ {
115
+ key: "pro-rocket-regular",
116
+ name: "rocket",
117
+ version: "7.0.0",
118
+ family: "classic",
119
+ style: "regular",
120
+ package: "@fortawesome/pro-regular-svg-icons",
121
+ registryPackage: "@fortawesome/pro-regular-svg-icons",
122
+ exportName: "faRocket",
123
+ tier: "pro"
124
+ },
125
+ {
126
+ key: "pro-feather-light",
127
+ name: "feather",
128
+ version: "7.0.0",
129
+ family: "classic",
130
+ style: "light",
131
+ package: "@fortawesome/pro-light-svg-icons",
132
+ registryPackage: "@fortawesome/pro-light-svg-icons",
133
+ exportName: "faFeather",
134
+ tier: "pro"
135
+ },
136
+ {
137
+ key: "pro-heart-light",
138
+ name: "heart",
139
+ version: "7.0.0",
140
+ family: "classic",
141
+ style: "light",
142
+ package: "@fortawesome/pro-light-svg-icons",
143
+ registryPackage: "@fortawesome/pro-light-svg-icons",
144
+ exportName: "faHeart",
145
+ tier: "pro"
146
+ },
147
+ {
148
+ key: "pro-house-light",
149
+ name: "house",
150
+ version: "7.0.0",
151
+ family: "classic",
152
+ style: "light",
153
+ package: "@fortawesome/pro-light-svg-icons",
154
+ registryPackage: "@fortawesome/pro-light-svg-icons",
155
+ exportName: "faHouse",
156
+ tier: "pro"
157
+ }
158
+ ];
159
+ function createCatalogIndex(catalog) {
160
+ const index = /* @__PURE__ */ new Map();
161
+ for (const entry of catalog) {
162
+ if (!entry.key.trim()) {
163
+ throw new Error("Font Awesome catalog keys must not be empty");
164
+ }
165
+ if (index.has(entry.key)) {
166
+ throw new Error(`Duplicate Font Awesome catalog key "${entry.key}"`);
167
+ }
168
+ index.set(entry.key, entry);
169
+ }
170
+ return index;
171
+ }
172
+ const fontAwesomeCatalog = Object.freeze(
173
+ entries.map((entry) => Object.freeze(entry))
174
+ );
175
+ const catalogByKey = createCatalogIndex(fontAwesomeCatalog);
176
+ function resolveFontAwesomeKeys(keys, options = {}) {
177
+ if (!Array.isArray(keys)) {
178
+ throw new Error("Font Awesome keys must be an array");
179
+ }
180
+ const seen = /* @__PURE__ */ new Set();
181
+ return keys.map((key) => {
182
+ if (typeof key !== "string" || !key.trim()) {
183
+ throw new Error("Font Awesome keys must be non-empty strings");
184
+ }
185
+ if (seen.has(key)) {
186
+ throw new Error(`Duplicate Font Awesome key "${key}"`);
187
+ }
188
+ seen.add(key);
189
+ const entry = catalogByKey.get(key);
190
+ if (!entry) {
191
+ throw new Error(`Unknown Font Awesome catalog key "${key}"`);
192
+ }
193
+ if (entry.tier === "pro" && !options.allowPro) {
194
+ throw new Error(
195
+ `Font Awesome key "${key}" is Pro; enable the Pro profile to use it`
196
+ );
197
+ }
198
+ return {
199
+ key: entry.key,
200
+ name: entry.name,
201
+ version: entry.version,
202
+ family: entry.family,
203
+ style: entry.style,
204
+ package: entry.package,
205
+ exportName: entry.exportName,
206
+ registryPackage: entry.registryPackage
207
+ };
208
+ });
209
+ }
210
+ function getFontAwesomeInstallCommand(keys, options = {}) {
211
+ resolveFontAwesomeKeys(keys, options);
212
+ const packages = /* @__PURE__ */ new Set();
213
+ for (const key of keys) {
214
+ const entry = catalogByKey.get(key);
215
+ packages.add(
216
+ entry.package === entry.registryPackage ? `${entry.registryPackage}@${entry.version}` : `${entry.package}@npm:${entry.registryPackage}@${entry.version}`
217
+ );
218
+ }
219
+ if (packages.size === 0) return void 0;
220
+ return `npm install --save-dev --save-exact ${[...packages].join(" ")}`;
221
+ }
222
+ exports.fontAwesomeCatalog = fontAwesomeCatalog;
223
+ exports.getFontAwesomeInstallCommand = getFontAwesomeInstallCommand;
224
+ exports.resolveFontAwesomeKeys = resolveFontAwesomeKeys;
@@ -0,0 +1,306 @@
1
+ import type { FontAwesomeSourceSelection } from "./types";
2
+ declare const entries: readonly [{
3
+ readonly key: "rocket";
4
+ readonly name: "rocket";
5
+ readonly version: "7.0.0";
6
+ readonly family: "classic";
7
+ readonly style: "solid";
8
+ readonly package: "@fortawesome/free-solid-svg-icons";
9
+ readonly registryPackage: "@fortawesome/free-solid-svg-icons";
10
+ readonly exportName: "faRocket";
11
+ readonly tier: "free";
12
+ }, {
13
+ readonly key: "feather";
14
+ readonly name: "feather";
15
+ readonly version: "7.0.0";
16
+ readonly family: "classic";
17
+ readonly style: "solid";
18
+ readonly package: "@fortawesome/free-solid-svg-icons";
19
+ readonly registryPackage: "@fortawesome/free-solid-svg-icons";
20
+ readonly exportName: "faFeather";
21
+ readonly tier: "free";
22
+ }, {
23
+ readonly key: "heart";
24
+ readonly name: "heart";
25
+ readonly version: "7.0.0";
26
+ readonly family: "classic";
27
+ readonly style: "solid";
28
+ readonly package: "@fortawesome/free-solid-svg-icons";
29
+ readonly registryPackage: "@fortawesome/free-solid-svg-icons";
30
+ readonly exportName: "faHeart";
31
+ readonly tier: "free";
32
+ }, {
33
+ readonly key: "star";
34
+ readonly name: "star";
35
+ readonly version: "7.0.0";
36
+ readonly family: "classic";
37
+ readonly style: "solid";
38
+ readonly package: "@fortawesome/free-solid-svg-icons";
39
+ readonly registryPackage: "@fortawesome/free-solid-svg-icons";
40
+ readonly exportName: "faStar";
41
+ readonly tier: "free";
42
+ }, {
43
+ readonly key: "user";
44
+ readonly name: "user";
45
+ readonly version: "7.0.0";
46
+ readonly family: "classic";
47
+ readonly style: "solid";
48
+ readonly package: "@fortawesome/free-solid-svg-icons";
49
+ readonly registryPackage: "@fortawesome/free-solid-svg-icons";
50
+ readonly exportName: "faUser";
51
+ readonly tier: "free";
52
+ }, {
53
+ readonly key: "rocket-v5";
54
+ readonly name: "rocket";
55
+ readonly version: "5.15.4";
56
+ readonly family: "classic";
57
+ readonly style: "solid";
58
+ readonly package: "fa-solid-v5";
59
+ readonly registryPackage: "@fortawesome/free-solid-svg-icons";
60
+ readonly exportName: "faRocket";
61
+ readonly tier: "free";
62
+ }, {
63
+ readonly key: "rocket-v6";
64
+ readonly name: "rocket";
65
+ readonly version: "6.7.2";
66
+ readonly family: "classic";
67
+ readonly style: "solid";
68
+ readonly package: "fa-solid-v6";
69
+ readonly registryPackage: "@fortawesome/free-solid-svg-icons";
70
+ readonly exportName: "faRocket";
71
+ readonly tier: "free";
72
+ }, {
73
+ readonly key: "heart-regular";
74
+ readonly name: "heart";
75
+ readonly version: "7.0.0";
76
+ readonly family: "classic";
77
+ readonly style: "regular";
78
+ readonly package: "@fortawesome/free-regular-svg-icons";
79
+ readonly registryPackage: "@fortawesome/free-regular-svg-icons";
80
+ readonly exportName: "faHeart";
81
+ readonly tier: "free";
82
+ }, {
83
+ readonly key: "star-regular";
84
+ readonly name: "star";
85
+ readonly version: "7.0.0";
86
+ readonly family: "classic";
87
+ readonly style: "regular";
88
+ readonly package: "@fortawesome/free-regular-svg-icons";
89
+ readonly registryPackage: "@fortawesome/free-regular-svg-icons";
90
+ readonly exportName: "faStar";
91
+ readonly tier: "free";
92
+ }, {
93
+ readonly key: "user-regular";
94
+ readonly name: "user";
95
+ readonly version: "7.0.0";
96
+ readonly family: "classic";
97
+ readonly style: "regular";
98
+ readonly package: "@fortawesome/free-regular-svg-icons";
99
+ readonly registryPackage: "@fortawesome/free-regular-svg-icons";
100
+ readonly exportName: "faUser";
101
+ readonly tier: "free";
102
+ }, {
103
+ readonly key: "pro-rocket-regular";
104
+ readonly name: "rocket";
105
+ readonly version: "7.0.0";
106
+ readonly family: "classic";
107
+ readonly style: "regular";
108
+ readonly package: "@fortawesome/pro-regular-svg-icons";
109
+ readonly registryPackage: "@fortawesome/pro-regular-svg-icons";
110
+ readonly exportName: "faRocket";
111
+ readonly tier: "pro";
112
+ }, {
113
+ readonly key: "pro-feather-light";
114
+ readonly name: "feather";
115
+ readonly version: "7.0.0";
116
+ readonly family: "classic";
117
+ readonly style: "light";
118
+ readonly package: "@fortawesome/pro-light-svg-icons";
119
+ readonly registryPackage: "@fortawesome/pro-light-svg-icons";
120
+ readonly exportName: "faFeather";
121
+ readonly tier: "pro";
122
+ }, {
123
+ readonly key: "pro-heart-light";
124
+ readonly name: "heart";
125
+ readonly version: "7.0.0";
126
+ readonly family: "classic";
127
+ readonly style: "light";
128
+ readonly package: "@fortawesome/pro-light-svg-icons";
129
+ readonly registryPackage: "@fortawesome/pro-light-svg-icons";
130
+ readonly exportName: "faHeart";
131
+ readonly tier: "pro";
132
+ }, {
133
+ readonly key: "pro-house-light";
134
+ readonly name: "house";
135
+ readonly version: "7.0.0";
136
+ readonly family: "classic";
137
+ readonly style: "light";
138
+ readonly package: "@fortawesome/pro-light-svg-icons";
139
+ readonly registryPackage: "@fortawesome/pro-light-svg-icons";
140
+ readonly exportName: "faHouse";
141
+ readonly tier: "pro";
142
+ }];
143
+ /** Complete curated metadata catalog; no icon geometry or artwork is included. */
144
+ export declare const fontAwesomeCatalog: readonly Readonly<{
145
+ readonly key: "rocket";
146
+ readonly name: "rocket";
147
+ readonly version: "7.0.0";
148
+ readonly family: "classic";
149
+ readonly style: "solid";
150
+ readonly package: "@fortawesome/free-solid-svg-icons";
151
+ readonly registryPackage: "@fortawesome/free-solid-svg-icons";
152
+ readonly exportName: "faRocket";
153
+ readonly tier: "free";
154
+ } | {
155
+ readonly key: "feather";
156
+ readonly name: "feather";
157
+ readonly version: "7.0.0";
158
+ readonly family: "classic";
159
+ readonly style: "solid";
160
+ readonly package: "@fortawesome/free-solid-svg-icons";
161
+ readonly registryPackage: "@fortawesome/free-solid-svg-icons";
162
+ readonly exportName: "faFeather";
163
+ readonly tier: "free";
164
+ } | {
165
+ readonly key: "heart";
166
+ readonly name: "heart";
167
+ readonly version: "7.0.0";
168
+ readonly family: "classic";
169
+ readonly style: "solid";
170
+ readonly package: "@fortawesome/free-solid-svg-icons";
171
+ readonly registryPackage: "@fortawesome/free-solid-svg-icons";
172
+ readonly exportName: "faHeart";
173
+ readonly tier: "free";
174
+ } | {
175
+ readonly key: "star";
176
+ readonly name: "star";
177
+ readonly version: "7.0.0";
178
+ readonly family: "classic";
179
+ readonly style: "solid";
180
+ readonly package: "@fortawesome/free-solid-svg-icons";
181
+ readonly registryPackage: "@fortawesome/free-solid-svg-icons";
182
+ readonly exportName: "faStar";
183
+ readonly tier: "free";
184
+ } | {
185
+ readonly key: "user";
186
+ readonly name: "user";
187
+ readonly version: "7.0.0";
188
+ readonly family: "classic";
189
+ readonly style: "solid";
190
+ readonly package: "@fortawesome/free-solid-svg-icons";
191
+ readonly registryPackage: "@fortawesome/free-solid-svg-icons";
192
+ readonly exportName: "faUser";
193
+ readonly tier: "free";
194
+ } | {
195
+ readonly key: "rocket-v5";
196
+ readonly name: "rocket";
197
+ readonly version: "5.15.4";
198
+ readonly family: "classic";
199
+ readonly style: "solid";
200
+ readonly package: "fa-solid-v5";
201
+ readonly registryPackage: "@fortawesome/free-solid-svg-icons";
202
+ readonly exportName: "faRocket";
203
+ readonly tier: "free";
204
+ } | {
205
+ readonly key: "rocket-v6";
206
+ readonly name: "rocket";
207
+ readonly version: "6.7.2";
208
+ readonly family: "classic";
209
+ readonly style: "solid";
210
+ readonly package: "fa-solid-v6";
211
+ readonly registryPackage: "@fortawesome/free-solid-svg-icons";
212
+ readonly exportName: "faRocket";
213
+ readonly tier: "free";
214
+ } | {
215
+ readonly key: "heart-regular";
216
+ readonly name: "heart";
217
+ readonly version: "7.0.0";
218
+ readonly family: "classic";
219
+ readonly style: "regular";
220
+ readonly package: "@fortawesome/free-regular-svg-icons";
221
+ readonly registryPackage: "@fortawesome/free-regular-svg-icons";
222
+ readonly exportName: "faHeart";
223
+ readonly tier: "free";
224
+ } | {
225
+ readonly key: "star-regular";
226
+ readonly name: "star";
227
+ readonly version: "7.0.0";
228
+ readonly family: "classic";
229
+ readonly style: "regular";
230
+ readonly package: "@fortawesome/free-regular-svg-icons";
231
+ readonly registryPackage: "@fortawesome/free-regular-svg-icons";
232
+ readonly exportName: "faStar";
233
+ readonly tier: "free";
234
+ } | {
235
+ readonly key: "user-regular";
236
+ readonly name: "user";
237
+ readonly version: "7.0.0";
238
+ readonly family: "classic";
239
+ readonly style: "regular";
240
+ readonly package: "@fortawesome/free-regular-svg-icons";
241
+ readonly registryPackage: "@fortawesome/free-regular-svg-icons";
242
+ readonly exportName: "faUser";
243
+ readonly tier: "free";
244
+ } | {
245
+ readonly key: "pro-rocket-regular";
246
+ readonly name: "rocket";
247
+ readonly version: "7.0.0";
248
+ readonly family: "classic";
249
+ readonly style: "regular";
250
+ readonly package: "@fortawesome/pro-regular-svg-icons";
251
+ readonly registryPackage: "@fortawesome/pro-regular-svg-icons";
252
+ readonly exportName: "faRocket";
253
+ readonly tier: "pro";
254
+ } | {
255
+ readonly key: "pro-feather-light";
256
+ readonly name: "feather";
257
+ readonly version: "7.0.0";
258
+ readonly family: "classic";
259
+ readonly style: "light";
260
+ readonly package: "@fortawesome/pro-light-svg-icons";
261
+ readonly registryPackage: "@fortawesome/pro-light-svg-icons";
262
+ readonly exportName: "faFeather";
263
+ readonly tier: "pro";
264
+ } | {
265
+ readonly key: "pro-heart-light";
266
+ readonly name: "heart";
267
+ readonly version: "7.0.0";
268
+ readonly family: "classic";
269
+ readonly style: "light";
270
+ readonly package: "@fortawesome/pro-light-svg-icons";
271
+ readonly registryPackage: "@fortawesome/pro-light-svg-icons";
272
+ readonly exportName: "faHeart";
273
+ readonly tier: "pro";
274
+ } | {
275
+ readonly key: "pro-house-light";
276
+ readonly name: "house";
277
+ readonly version: "7.0.0";
278
+ readonly family: "classic";
279
+ readonly style: "light";
280
+ readonly package: "@fortawesome/pro-light-svg-icons";
281
+ readonly registryPackage: "@fortawesome/pro-light-svg-icons";
282
+ readonly exportName: "faHouse";
283
+ readonly tier: "pro";
284
+ }>[];
285
+ /** Union of the UX-assigned keys in {@link fontAwesomeCatalog}. */
286
+ export type FontAwesomeCatalogKey = (typeof entries)[number]["key"];
287
+ /** Profile options used when resolving catalog keys. */
288
+ export interface ResolveFontAwesomeKeysOptions {
289
+ allowPro?: boolean;
290
+ }
291
+ /**
292
+ * Resolves selected keys to their exact source package and icon metadata.
293
+ * The returned records are build-time inputs, not icon artwork.
294
+ *
295
+ * @throws If a key is empty, duplicated, unknown, or Pro without opt-in.
296
+ */
297
+ export declare function resolveFontAwesomeKeys(keys: readonly string[], options?: ResolveFontAwesomeKeysOptions): FontAwesomeSourceSelection[];
298
+ /**
299
+ * Builds a deduplicated exact npm install command for the selected keys.
300
+ * Npm aliases are emitted when a local dependency name differs from its
301
+ * canonical registry package. The command is informational and is not run.
302
+ *
303
+ * @returns An install command, or `undefined` when no keys are selected.
304
+ */
305
+ export declare function getFontAwesomeInstallCommand(keys: readonly string[], options?: ResolveFontAwesomeKeysOptions): string | undefined;
306
+ export {};