@nice2dev/icons 1.3.14 → 1.3.16
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/CHANGELOG.md +15 -0
- package/dist/cjs/NiceDesktopIconExporter.js +688 -599
- package/dist/cjs/NiceFaviconGenerator.js +603 -417
- package/dist/cjs/NiceIconPicker.js +788 -508
- package/dist/cjs/NiceIconPreview.js +246 -188
- package/dist/cjs/NiceIconSetCreator.js +683 -552
- package/dist/cjs/NiceIconStacker.js +547 -171
- package/dist/cjs/NiceIconValue.js +27 -35
- package/dist/cjs/NtdIconBadge.js +384 -360
- package/dist/cjs/NtdIconMorph.js +419 -354
- package/dist/cjs/NtdStateMorph.js +150 -147
- package/dist/cjs/advancedIconSearch.js +373 -510
- package/dist/cjs/animationControls.js +518 -642
- package/dist/cjs/client.js +12 -15
- package/dist/cjs/createIcon.js +349 -251
- package/dist/cjs/design-tokens.js +324 -390
- package/dist/cjs/figmaExport.js +162 -257
- package/dist/cjs/figmaSync.js +234 -316
- package/dist/cjs/headless-ui.js +240 -368
- package/dist/cjs/iconAnalytics.js +337 -393
- package/dist/cjs/iconHtml.js +64 -86
- package/dist/cjs/iconMetadata.js +392 -472
- package/dist/cjs/iconParts.js +120 -90
- package/dist/cjs/iconStack.js +136 -155
- package/dist/cjs/iconStyles.js +1609 -504
- package/dist/cjs/iconValue.js +359 -430
- package/dist/cjs/icons/accessibility.js +1119 -134
- package/dist/cjs/icons/actions.js +1290 -330
- package/dist/cjs/icons/ai.js +1424 -144
- package/dist/cjs/icons/brand.js +1344 -172
- package/dist/cjs/icons/business.js +903 -193
- package/dist/cjs/icons/devtech.js +1656 -227
- package/dist/cjs/icons/ecommerce.js +802 -111
- package/dist/cjs/icons/education.js +1345 -199
- package/dist/cjs/icons/files.js +1597 -328
- package/dist/cjs/icons/fintech.js +793 -104
- package/dist/cjs/icons/food.js +1507 -153
- package/dist/cjs/icons/fun.js +786 -109
- package/dist/cjs/icons/gaming.js +916 -170
- package/dist/cjs/icons/health.js +623 -112
- package/dist/cjs/icons/index.js +34 -35
- package/dist/cjs/icons/input.js +282 -83
- package/dist/cjs/icons/legal.js +1065 -122
- package/dist/cjs/icons/media.js +1061 -267
- package/dist/cjs/icons/navigation.js +387 -122
- package/dist/cjs/icons/omniverk.js +747 -90
- package/dist/cjs/icons/realestate.js +1520 -193
- package/dist/cjs/icons/saas.js +867 -98
- package/dist/cjs/icons/science.js +1465 -165
- package/dist/cjs/icons/shapes.js +1316 -308
- package/dist/cjs/icons/smarthome.js +786 -90
- package/dist/cjs/icons/social.js +591 -59
- package/dist/cjs/icons/sports.js +1225 -133
- package/dist/cjs/icons/sustainability.js +1211 -139
- package/dist/cjs/icons/travel.js +1470 -148
- package/dist/cjs/icons/ui.js +1508 -315
- package/dist/cjs/icons/weather.js +1160 -173
- package/dist/cjs/index.js +566 -566
- package/dist/cjs/lottieIntegration.js +261 -266
- package/dist/cjs/nicetodev-icons.css +1 -1
- package/dist/cjs/particleEffects.js +270 -251
- package/dist/cjs/resolver.js +229 -284
- package/dist/cjs/rsc.js +175 -193
- package/dist/cjs/sharpen.js +73 -130
- package/dist/cjs/smilAnimations.js +371 -165
- package/dist/cjs/stacking.js +87 -122
- package/dist/cjs/tailwind-plugin.js +280 -320
- package/dist/cjs/types.js +46 -72
- package/dist/cjs/utilities.js +163 -324
- package/dist/cjs/variantProps.js +12 -52
- package/dist/esm/NiceDesktopIconExporter.js +671 -598
- package/dist/esm/NiceFaviconGenerator.js +583 -416
- package/dist/esm/NiceIconPicker.js +789 -507
- package/dist/esm/NiceIconPreview.js +247 -187
- package/dist/esm/NiceIconSetCreator.js +685 -551
- package/dist/esm/NiceIconStacker.js +549 -170
- package/dist/esm/NiceIconValue.js +29 -34
- package/dist/esm/NtdIconBadge.js +388 -359
- package/dist/esm/NtdIconMorph.js +423 -353
- package/dist/esm/NtdStateMorph.js +152 -146
- package/dist/esm/advancedIconSearch.js +391 -509
- package/dist/esm/animationControls.js +527 -641
- package/dist/esm/client.js +48 -10
- package/dist/esm/createIcon.js +350 -250
- package/dist/esm/design-tokens.js +334 -387
- package/dist/esm/figmaExport.js +170 -256
- package/dist/esm/figmaSync.js +237 -315
- package/dist/esm/headless-ui.js +254 -365
- package/dist/esm/iconAnalytics.js +342 -392
- package/dist/esm/iconHtml.js +67 -85
- package/dist/esm/iconMetadata.js +404 -471
- package/dist/esm/iconParts.js +125 -89
- package/dist/esm/iconStack.js +145 -154
- package/dist/esm/iconStyles.js +1620 -503
- package/dist/esm/iconValue.js +361 -429
- package/dist/esm/icons/accessibility.js +1133 -133
- package/dist/esm/icons/actions.js +1320 -329
- package/dist/esm/icons/ai.js +1441 -143
- package/dist/esm/icons/brand.js +1351 -171
- package/dist/esm/icons/business.js +931 -201
- package/dist/esm/icons/devtech.js +1687 -226
- package/dist/esm/icons/ecommerce.js +816 -110
- package/dist/esm/icons/education.js +1364 -198
- package/dist/esm/icons/files.js +1628 -327
- package/dist/esm/icons/fintech.js +807 -103
- package/dist/esm/icons/food.js +1524 -152
- package/dist/esm/icons/fun.js +801 -108
- package/dist/esm/icons/gaming.js +933 -169
- package/dist/esm/icons/health.js +636 -111
- package/dist/esm/icons/index.js +596 -32
- package/dist/esm/icons/input.js +326 -82
- package/dist/esm/icons/legal.js +1079 -121
- package/dist/esm/icons/media.js +1086 -266
- package/dist/esm/icons/navigation.js +401 -121
- package/dist/esm/icons/omniverk.js +759 -89
- package/dist/esm/icons/realestate.js +1544 -198
- package/dist/esm/icons/saas.js +880 -97
- package/dist/esm/icons/science.js +1482 -164
- package/dist/esm/icons/shapes.js +1343 -307
- package/dist/esm/icons/smarthome.js +799 -89
- package/dist/esm/icons/social.js +599 -58
- package/dist/esm/icons/sports.js +1240 -132
- package/dist/esm/icons/sustainability.js +1226 -138
- package/dist/esm/icons/travel.js +1486 -147
- package/dist/esm/icons/ui.js +1540 -314
- package/dist/esm/icons/weather.js +1181 -172
- package/dist/esm/index.js +756 -58
- package/dist/esm/lottieIntegration.js +264 -265
- package/dist/esm/nicetodev-icons.css +1 -1
- package/dist/esm/particleEffects.js +271 -250
- package/dist/esm/resolver.js +231 -283
- package/dist/esm/rsc.js +182 -192
- package/dist/esm/sharpen.js +78 -129
- package/dist/esm/smilAnimations.js +376 -164
- package/dist/esm/stacking.js +99 -121
- package/dist/esm/tailwind-plugin.js +282 -319
- package/dist/esm/types.js +50 -71
- package/dist/esm/utilities.js +177 -321
- package/dist/esm/variantProps.js +23 -52
- package/dist/types/icons/index.d.ts +1 -1
- package/dist/types/icons/science.d.ts +9 -0
- package/package.json +15 -22
package/dist/cjs/iconHtml.js
CHANGED
|
@@ -1,104 +1,82 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
* in data attributes on the root, so the picker reads its own value back.
|
|
7
|
-
*/
|
|
8
|
-
const ATTR_ICON = 'data-ntd-icon';
|
|
9
|
-
const ATTR_VARIANT = 'data-ntd-variant';
|
|
10
|
-
const ATTR_STACK = 'data-ntd-stack';
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const ATTR_ICON = "data-ntd-icon";
|
|
4
|
+
const ATTR_VARIANT = "data-ntd-variant";
|
|
5
|
+
const ATTR_STACK = "data-ntd-stack";
|
|
11
6
|
const ENTITIES = {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
7
|
+
amp: "&",
|
|
8
|
+
quot: '"',
|
|
9
|
+
apos: "'",
|
|
10
|
+
"#39": "'",
|
|
11
|
+
lt: "<",
|
|
12
|
+
gt: ">"
|
|
18
13
|
};
|
|
19
|
-
/** The value of a data attribute of the root element (the first one in the markup). */
|
|
20
14
|
function readAttr(html, name) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
? hit[1].replace(/&(amp|quot|apos|#39|lt|gt);/g, (_, e) => ENTITIES[e])
|
|
24
|
-
: undefined;
|
|
15
|
+
const hit = new RegExp(`\\s${name}="([^"]*)"`).exec(html);
|
|
16
|
+
return hit ? hit[1].replace(/&(amp|quot|apos|#39|lt|gt);/g, (_, e) => ENTITIES[e]) : void 0;
|
|
25
17
|
}
|
|
26
18
|
function isLayer(value) {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
typeof layer === 'object' &&
|
|
30
|
-
typeof layer.id === 'string' &&
|
|
31
|
-
typeof layer.icon === 'string');
|
|
19
|
+
const layer = value;
|
|
20
|
+
return !!layer && typeof layer === "object" && typeof layer.id === "string" && typeof layer.icon === "string";
|
|
32
21
|
}
|
|
33
|
-
/**
|
|
34
|
-
* Reads back what an icon's HTML was drawn from — the base icon and the stack. `null` for anything
|
|
35
|
-
* else: empty, plain text or HTML the picker did not write.
|
|
36
|
-
*/
|
|
37
22
|
function parseIconHtml(html) {
|
|
38
|
-
|
|
39
|
-
|
|
23
|
+
if (!html) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
const icon = readAttr(html, ATTR_ICON);
|
|
27
|
+
if (!icon) {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
const stack = readAttr(html, ATTR_STACK);
|
|
31
|
+
if (stack) {
|
|
32
|
+
try {
|
|
33
|
+
const parsed = JSON.parse(stack);
|
|
34
|
+
const layers = Array.isArray(parsed) ? parsed.filter(isLayer) : [];
|
|
35
|
+
if (layers.length > 0) {
|
|
36
|
+
return { icon: layers[0].icon, layers };
|
|
37
|
+
}
|
|
38
|
+
} catch {
|
|
40
39
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
const stack = readAttr(html, ATTR_STACK);
|
|
46
|
-
if (stack) {
|
|
47
|
-
try {
|
|
48
|
-
const parsed = JSON.parse(stack);
|
|
49
|
-
const layers = Array.isArray(parsed) ? parsed.filter(isLayer) : [];
|
|
50
|
-
if (layers.length > 0) {
|
|
51
|
-
return { icon: layers[0].icon, layers };
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
catch (_a) {
|
|
55
|
-
// a damaged stack still shows its base
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
const variant = readAttr(html, ATTR_VARIANT);
|
|
59
|
-
return { icon, layers: [{ id: '1', icon, ...(variant ? { variant } : {}) }] };
|
|
40
|
+
}
|
|
41
|
+
const variant = readAttr(html, ATTR_VARIANT);
|
|
42
|
+
return { icon, layers: [{ id: "1", icon, ...variant ? { variant } : {} }] };
|
|
60
43
|
}
|
|
61
|
-
/** The data attributes that let the HTML of a stack be read back: the base, and the stack unless it is a plain icon. */
|
|
62
44
|
function iconHtmlAttributes(layers) {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}
|
|
72
|
-
|
|
45
|
+
const base = layers[0];
|
|
46
|
+
if (!base) {
|
|
47
|
+
return {};
|
|
48
|
+
}
|
|
49
|
+
const plain = layers.length === 1 && Object.entries(base).every(
|
|
50
|
+
([key, value]) => value === void 0 || key === "id" || key === "icon" || key === "variant"
|
|
51
|
+
);
|
|
52
|
+
if (plain) {
|
|
53
|
+
return { [ATTR_ICON]: base.icon, ...base.variant ? { [ATTR_VARIANT]: base.variant } : {} };
|
|
54
|
+
}
|
|
55
|
+
return { [ATTR_ICON]: base.icon, [ATTR_STACK]: JSON.stringify(layers) };
|
|
73
56
|
}
|
|
74
|
-
/** djb2, base 36 — a short, stable name for a drawing. */
|
|
75
57
|
function hash(text) {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
58
|
+
let h = 5381;
|
|
59
|
+
for (let i = 0; i < text.length; i++) {
|
|
60
|
+
h = (h << 5) + h + text.charCodeAt(i) | 0;
|
|
61
|
+
}
|
|
62
|
+
return (h >>> 0).toString(36);
|
|
81
63
|
}
|
|
82
|
-
/**
|
|
83
|
-
* Renames the ids inside an icon's markup (masks, gradients, clip paths) after the drawing itself.
|
|
84
|
-
* React's ids (`_r_3_`) are unique only within the page that drew them; pasted into another page they
|
|
85
|
-
* could hit an element of its own and borrow the wrong mask. Named after the drawing, two copies of
|
|
86
|
-
* one icon share ids that point at identical definitions.
|
|
87
|
-
*/
|
|
88
64
|
function scopeIconHtmlIds(markup) {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
65
|
+
const ids = [...new Set([...markup.matchAll(/\sid="([^"]+)"/g)].map((m) => m[1]))];
|
|
66
|
+
if (ids.length === 0) {
|
|
67
|
+
return markup;
|
|
68
|
+
}
|
|
69
|
+
const index = new Map(ids.map((id, i) => [id, i]));
|
|
70
|
+
const rename = (fn) => markup.replace(
|
|
71
|
+
/(\sid=")([^"]+)(")/g,
|
|
72
|
+
(all, a, id, b) => index.has(id) ? a + fn(id) + b : all
|
|
73
|
+
).replace(/url\(#([^)]+)\)/g, (all, id) => index.has(id) ? `url(#${fn(id)})` : all).replace(
|
|
74
|
+
/(href=")#([^"]+)(")/g,
|
|
75
|
+
(all, a, id, b) => index.has(id) ? `${a}#${fn(id)}${b}` : all
|
|
76
|
+
);
|
|
77
|
+
const name = hash(rename((id) => `#${index.get(id)}`));
|
|
78
|
+
return rename((id) => `ntd-${name}-${index.get(id)}`);
|
|
100
79
|
}
|
|
101
|
-
|
|
102
80
|
exports.iconHtmlAttributes = iconHtmlAttributes;
|
|
103
81
|
exports.parseIconHtml = parseIconHtml;
|
|
104
82
|
exports.scopeIconHtmlIds = scopeIconHtmlIds;
|