@nice2dev/icons 1.0.0 → 1.0.3
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 +169 -7
- package/README.md +247 -2
- package/bin/ntd-icons.mjs +732 -0
- package/dist/cjs/NtdIconBadge.js +375 -0
- package/dist/cjs/NtdIconBadge.js.map +1 -0
- package/dist/cjs/NtdIconMorph.js +386 -0
- package/dist/cjs/NtdIconMorph.js.map +1 -0
- package/dist/cjs/NtdStateMorph.js +177 -0
- package/dist/cjs/NtdStateMorph.js.map +1 -0
- package/dist/cjs/createIcon.js +51 -4
- package/dist/cjs/createIcon.js.map +1 -1
- package/dist/cjs/figmaSync.js +308 -0
- package/dist/cjs/figmaSync.js.map +1 -0
- package/dist/cjs/iconAnalytics.js +189 -0
- package/dist/cjs/iconAnalytics.js.map +1 -0
- package/dist/cjs/iconMetadata.js +523 -0
- package/dist/cjs/iconMetadata.js.map +1 -0
- package/dist/cjs/iconStyles.js +597 -0
- package/dist/cjs/iconStyles.js.map +1 -0
- package/dist/cjs/icons/accessibility.js +168 -0
- package/dist/cjs/icons/accessibility.js.map +1 -0
- package/dist/cjs/icons/ai.js +191 -0
- package/dist/cjs/icons/ai.js.map +1 -0
- package/dist/cjs/icons/brand.js +70 -0
- package/dist/cjs/icons/brand.js.map +1 -1
- package/dist/cjs/icons/education.js +212 -0
- package/dist/cjs/icons/education.js.map +1 -0
- package/dist/cjs/icons/food.js +198 -0
- package/dist/cjs/icons/food.js.map +1 -0
- package/dist/cjs/icons/gaming.js +191 -0
- package/dist/cjs/icons/gaming.js.map +1 -0
- package/dist/cjs/icons/index.js +520 -0
- package/dist/cjs/icons/index.js.map +1 -0
- package/dist/cjs/icons/legal.js +168 -0
- package/dist/cjs/icons/legal.js.map +1 -0
- package/dist/cjs/icons/realestate.js +212 -0
- package/dist/cjs/icons/realestate.js.map +1 -0
- package/dist/cjs/icons/science.js +201 -0
- package/dist/cjs/icons/science.js.map +1 -0
- package/dist/cjs/icons/sports.js +176 -0
- package/dist/cjs/icons/sports.js.map +1 -0
- package/dist/cjs/icons/sustainability.js +193 -0
- package/dist/cjs/icons/sustainability.js.map +1 -0
- package/dist/cjs/icons/travel.js +184 -0
- package/dist/cjs/icons/travel.js.map +1 -0
- package/dist/cjs/index.js +265 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lottieIntegration.js +286 -0
- package/dist/cjs/lottieIntegration.js.map +1 -0
- package/dist/cjs/nicetodev-icons.css +1 -1
- package/dist/cjs/particleEffects.js +259 -0
- package/dist/cjs/particleEffects.js.map +1 -0
- package/dist/cjs/resolver.js +224 -0
- package/dist/cjs/resolver.js.map +1 -0
- package/dist/cjs/tailwind-plugin.js +340 -0
- package/dist/cjs/tailwind-plugin.js.map +1 -0
- package/dist/cjs/types.js +38 -0
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/variantProps.js +78 -0
- package/dist/cjs/variantProps.js.map +1 -0
- package/dist/esm/NtdIconBadge.js +370 -0
- package/dist/esm/NtdIconBadge.js.map +1 -0
- package/dist/esm/NtdIconMorph.js +381 -0
- package/dist/esm/NtdIconMorph.js.map +1 -0
- package/dist/esm/NtdStateMorph.js +174 -0
- package/dist/esm/NtdStateMorph.js.map +1 -0
- package/dist/esm/createIcon.js +53 -6
- package/dist/esm/createIcon.js.map +1 -1
- package/dist/esm/figmaSync.js +304 -0
- package/dist/esm/figmaSync.js.map +1 -0
- package/dist/esm/iconAnalytics.js +185 -0
- package/dist/esm/iconAnalytics.js.map +1 -0
- package/dist/esm/iconMetadata.js +510 -0
- package/dist/esm/iconMetadata.js.map +1 -0
- package/dist/esm/iconStyles.js +585 -0
- package/dist/esm/iconStyles.js.map +1 -0
- package/dist/esm/icons/accessibility.js +153 -0
- package/dist/esm/icons/accessibility.js.map +1 -0
- package/dist/esm/icons/ai.js +174 -0
- package/dist/esm/icons/ai.js.map +1 -0
- package/dist/esm/icons/brand.js +67 -1
- package/dist/esm/icons/brand.js.map +1 -1
- package/dist/esm/icons/education.js +193 -0
- package/dist/esm/icons/education.js.map +1 -0
- package/dist/esm/icons/food.js +180 -0
- package/dist/esm/icons/food.js.map +1 -0
- package/dist/esm/icons/gaming.js +174 -0
- package/dist/esm/icons/gaming.js.map +1 -0
- package/dist/esm/icons/index.js +31 -0
- package/dist/esm/icons/index.js.map +1 -0
- package/dist/esm/icons/legal.js +153 -0
- package/dist/esm/icons/legal.js.map +1 -0
- package/dist/esm/icons/realestate.js +193 -0
- package/dist/esm/icons/realestate.js.map +1 -0
- package/dist/esm/icons/science.js +183 -0
- package/dist/esm/icons/science.js.map +1 -0
- package/dist/esm/icons/sports.js +160 -0
- package/dist/esm/icons/sports.js.map +1 -0
- package/dist/esm/icons/sustainability.js +176 -0
- package/dist/esm/icons/sustainability.js.map +1 -0
- package/dist/esm/icons/travel.js +167 -0
- package/dist/esm/icons/travel.js.map +1 -0
- package/dist/esm/index.js +27 -5
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lottieIntegration.js +282 -0
- package/dist/esm/lottieIntegration.js.map +1 -0
- package/dist/esm/nicetodev-icons.css +1 -1
- package/dist/esm/particleEffects.js +257 -0
- package/dist/esm/particleEffects.js.map +1 -0
- package/dist/esm/resolver.js +221 -0
- package/dist/esm/resolver.js.map +1 -0
- package/dist/esm/tailwind-plugin.js +337 -0
- package/dist/esm/tailwind-plugin.js.map +1 -0
- package/dist/esm/types.js +37 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/variantProps.js +68 -0
- package/dist/esm/variantProps.js.map +1 -0
- package/dist/types/NtdIconBadge.d.ts +209 -0
- package/dist/types/NtdIconMorph.d.ts +183 -0
- package/dist/types/NtdStateMorph.d.ts +100 -0
- package/dist/types/client.d.ts +27 -0
- package/dist/types/design-tokens.d.ts +281 -0
- package/dist/types/figmaSync.d.ts +135 -0
- package/dist/types/headless-ui.d.ts +462 -0
- package/dist/types/iconAnalytics.d.ts +131 -0
- package/dist/types/iconMetadata.d.ts +123 -0
- package/dist/types/iconStyles.d.ts +104 -0
- package/dist/types/icons/accessibility.d.ts +39 -0
- package/dist/types/icons/ai.d.ts +43 -0
- package/dist/types/icons/brand.d.ts +4 -0
- package/dist/types/icons/education.d.ts +47 -0
- package/dist/types/icons/food.d.ts +45 -0
- package/dist/types/icons/gaming.d.ts +42 -0
- package/dist/types/icons/index.d.ts +12 -1
- package/dist/types/icons/legal.d.ts +39 -0
- package/dist/types/icons/realestate.d.ts +47 -0
- package/dist/types/icons/science.d.ts +45 -0
- package/dist/types/icons/sports.d.ts +41 -0
- package/dist/types/icons/sustainability.d.ts +43 -0
- package/dist/types/icons/travel.d.ts +43 -0
- package/dist/types/index.d.ts +28 -6
- package/dist/types/lottieIntegration.d.ts +173 -0
- package/dist/types/micro-interactions.d.ts +146 -0
- package/dist/types/microInteractions.d.ts +174 -0
- package/dist/types/particleEffects.d.ts +69 -0
- package/dist/types/resolver.d.ts +58 -0
- package/dist/types/rsc.d.ts +159 -0
- package/dist/types/tailwind-plugin.d.ts +100 -0
- package/dist/types/types.d.ts +100 -0
- package/dist/types/utilities.d.ts +221 -0
- package/dist/types/variantProps.d.ts +122 -0
- package/package.json +58 -5
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import React, { forwardRef, useRef, useState, useCallback, useEffect } from 'react';
|
|
3
|
+
import { SIZE_MAP } from './types.js';
|
|
4
|
+
|
|
5
|
+
/* ────────────────────────────────────────────────────────────────────────────
|
|
6
|
+
PRESET CONFIGURATIONS
|
|
7
|
+
───────────────────────────────────────────────────────────────────────────── */
|
|
8
|
+
const PRESETS = {
|
|
9
|
+
confetti: {
|
|
10
|
+
count: 40,
|
|
11
|
+
lifetime: 1200,
|
|
12
|
+
shapes: ['rect', 'rect', 'circle'],
|
|
13
|
+
colors: ['#ff6b6b', '#feca57', '#48dbfb', '#ff9ff3', '#54a0ff', '#5f27cd', '#00d2d3', '#1dd1a1'],
|
|
14
|
+
sizeRange: [4, 8],
|
|
15
|
+
velocityRange: [3, 8],
|
|
16
|
+
gravity: 0.15,
|
|
17
|
+
spread: 360,
|
|
18
|
+
fadeOut: 0.8,
|
|
19
|
+
rotationRange: [-10, 10],
|
|
20
|
+
},
|
|
21
|
+
sparkles: {
|
|
22
|
+
count: 15,
|
|
23
|
+
lifetime: 800,
|
|
24
|
+
shapes: ['star', 'circle'],
|
|
25
|
+
colors: ['#ffd700', '#ffec8b', '#fff8dc', '#fffacd'],
|
|
26
|
+
sizeRange: [2, 6],
|
|
27
|
+
velocityRange: [1, 3],
|
|
28
|
+
gravity: -0.05,
|
|
29
|
+
spread: 360,
|
|
30
|
+
fadeOut: 1,
|
|
31
|
+
rotationRange: [-5, 5],
|
|
32
|
+
},
|
|
33
|
+
smoke: {
|
|
34
|
+
count: 20,
|
|
35
|
+
lifetime: 1000,
|
|
36
|
+
shapes: ['circle'],
|
|
37
|
+
colors: ['#94a3b8', '#64748b', '#475569', '#cbd5e1'],
|
|
38
|
+
sizeRange: [4, 12],
|
|
39
|
+
velocityRange: [0.5, 2],
|
|
40
|
+
gravity: -0.08,
|
|
41
|
+
spread: 120,
|
|
42
|
+
fadeOut: 1,
|
|
43
|
+
rotationRange: [0, 0],
|
|
44
|
+
},
|
|
45
|
+
dust: {
|
|
46
|
+
count: 25,
|
|
47
|
+
lifetime: 600,
|
|
48
|
+
shapes: ['circle'],
|
|
49
|
+
colors: ['#d4a574', '#c69c6d', '#b8860b', '#deb887'],
|
|
50
|
+
sizeRange: [2, 5],
|
|
51
|
+
velocityRange: [1, 4],
|
|
52
|
+
gravity: 0.12,
|
|
53
|
+
spread: 180,
|
|
54
|
+
fadeOut: 0.9,
|
|
55
|
+
rotationRange: [-3, 3],
|
|
56
|
+
},
|
|
57
|
+
firework: {
|
|
58
|
+
count: 50,
|
|
59
|
+
lifetime: 1000,
|
|
60
|
+
shapes: ['circle'],
|
|
61
|
+
colors: ['#ff0000', '#ff7700', '#ffff00', '#00ff00', '#0000ff', '#ff00ff'],
|
|
62
|
+
sizeRange: [2, 4],
|
|
63
|
+
velocityRange: [4, 10],
|
|
64
|
+
gravity: 0.2,
|
|
65
|
+
spread: 360,
|
|
66
|
+
fadeOut: 0.9,
|
|
67
|
+
rotationRange: [0, 0],
|
|
68
|
+
},
|
|
69
|
+
hearts: {
|
|
70
|
+
count: 12,
|
|
71
|
+
lifetime: 1200,
|
|
72
|
+
shapes: ['circle'], // drawn as hearts via custom render
|
|
73
|
+
colors: ['#e74c3c', '#ff6b81', '#ff4757', '#ff6348', '#c44569'],
|
|
74
|
+
sizeRange: [6, 12],
|
|
75
|
+
velocityRange: [1, 3],
|
|
76
|
+
gravity: -0.06,
|
|
77
|
+
spread: 120,
|
|
78
|
+
fadeOut: 1,
|
|
79
|
+
rotationRange: [-5, 5],
|
|
80
|
+
},
|
|
81
|
+
stars: {
|
|
82
|
+
count: 15,
|
|
83
|
+
lifetime: 1000,
|
|
84
|
+
shapes: ['star'],
|
|
85
|
+
colors: ['#ffd700', '#ffa500', '#ffec8b', '#f0e68c'],
|
|
86
|
+
sizeRange: [4, 10],
|
|
87
|
+
velocityRange: [2, 5],
|
|
88
|
+
gravity: 0.05,
|
|
89
|
+
spread: 360,
|
|
90
|
+
fadeOut: 0.9,
|
|
91
|
+
rotationRange: [-8, 8],
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
function createParticles(config, cx, cy) {
|
|
95
|
+
const particles = [];
|
|
96
|
+
for (let i = 0; i < config.count; i++) {
|
|
97
|
+
const angle = (Math.random() * config.spread - config.spread / 2) * (Math.PI / 180) - Math.PI / 2;
|
|
98
|
+
const speed = config.velocityRange[0] + Math.random() * (config.velocityRange[1] - config.velocityRange[0]);
|
|
99
|
+
particles.push({
|
|
100
|
+
x: cx,
|
|
101
|
+
y: cy,
|
|
102
|
+
vx: Math.cos(angle) * speed,
|
|
103
|
+
vy: Math.sin(angle) * speed,
|
|
104
|
+
size: config.sizeRange[0] + Math.random() * (config.sizeRange[1] - config.sizeRange[0]),
|
|
105
|
+
color: config.colors[Math.floor(Math.random() * config.colors.length)],
|
|
106
|
+
shape: config.shapes[Math.floor(Math.random() * config.shapes.length)],
|
|
107
|
+
rotation: Math.random() * 360,
|
|
108
|
+
rotationSpeed: config.rotationRange[0] + Math.random() * (config.rotationRange[1] - config.rotationRange[0]),
|
|
109
|
+
alpha: 1,
|
|
110
|
+
life: 0,
|
|
111
|
+
maxLife: config.lifetime * (0.6 + Math.random() * 0.4),
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
return particles;
|
|
115
|
+
}
|
|
116
|
+
function drawParticle(ctx, p) {
|
|
117
|
+
ctx.save();
|
|
118
|
+
ctx.translate(p.x, p.y);
|
|
119
|
+
ctx.rotate((p.rotation * Math.PI) / 180);
|
|
120
|
+
ctx.globalAlpha = p.alpha;
|
|
121
|
+
ctx.fillStyle = p.color;
|
|
122
|
+
const s = p.size;
|
|
123
|
+
switch (p.shape) {
|
|
124
|
+
case 'circle':
|
|
125
|
+
ctx.beginPath();
|
|
126
|
+
ctx.arc(0, 0, s / 2, 0, Math.PI * 2);
|
|
127
|
+
ctx.fill();
|
|
128
|
+
break;
|
|
129
|
+
case 'rect':
|
|
130
|
+
ctx.fillRect(-s / 2, -s / 4, s, s / 2);
|
|
131
|
+
break;
|
|
132
|
+
case 'triangle':
|
|
133
|
+
ctx.beginPath();
|
|
134
|
+
ctx.moveTo(0, -s / 2);
|
|
135
|
+
ctx.lineTo(s / 2, s / 2);
|
|
136
|
+
ctx.lineTo(-s / 2, s / 2);
|
|
137
|
+
ctx.closePath();
|
|
138
|
+
ctx.fill();
|
|
139
|
+
break;
|
|
140
|
+
case 'star': {
|
|
141
|
+
ctx.beginPath();
|
|
142
|
+
for (let i = 0; i < 5; i++) {
|
|
143
|
+
const outerAngle = (i * 72 - 90) * (Math.PI / 180);
|
|
144
|
+
const innerAngle = ((i * 72 + 36) - 90) * (Math.PI / 180);
|
|
145
|
+
const outer = s / 2;
|
|
146
|
+
const inner = s / 4;
|
|
147
|
+
if (i === 0)
|
|
148
|
+
ctx.moveTo(Math.cos(outerAngle) * outer, Math.sin(outerAngle) * outer);
|
|
149
|
+
else
|
|
150
|
+
ctx.lineTo(Math.cos(outerAngle) * outer, Math.sin(outerAngle) * outer);
|
|
151
|
+
ctx.lineTo(Math.cos(innerAngle) * inner, Math.sin(innerAngle) * inner);
|
|
152
|
+
}
|
|
153
|
+
ctx.closePath();
|
|
154
|
+
ctx.fill();
|
|
155
|
+
break;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
ctx.restore();
|
|
159
|
+
}
|
|
160
|
+
/* ────────────────────────────────────────────────────────────────────────────
|
|
161
|
+
COMPONENT
|
|
162
|
+
───────────────────────────────────────────────────────────────────────────── */
|
|
163
|
+
const NtdParticleIcon = forwardRef(({ icon: Icon, particle, trigger = 'click', active, size = 'md', iconProps, className, style, onEffectEnd, }, ref) => {
|
|
164
|
+
var _a;
|
|
165
|
+
const containerRef = useRef(null);
|
|
166
|
+
const canvasRef = useRef(null);
|
|
167
|
+
const animRef = useRef(0);
|
|
168
|
+
const [isPlaying, setIsPlaying] = useState(false);
|
|
169
|
+
const resolvedSize = typeof size === 'number' ? size : ((_a = SIZE_MAP[size]) !== null && _a !== void 0 ? _a : 24);
|
|
170
|
+
const config = typeof particle === 'string' ? PRESETS[particle] : particle;
|
|
171
|
+
// Canvas dimensions (larger than icon for particle spread)
|
|
172
|
+
const canvasSize = resolvedSize * 4;
|
|
173
|
+
const canvasOffset = (canvasSize - resolvedSize) / 2;
|
|
174
|
+
const emit = useCallback(() => {
|
|
175
|
+
const canvas = canvasRef.current;
|
|
176
|
+
if (!canvas)
|
|
177
|
+
return;
|
|
178
|
+
const ctx = canvas.getContext('2d');
|
|
179
|
+
if (!ctx)
|
|
180
|
+
return;
|
|
181
|
+
const cx = canvasSize / 2;
|
|
182
|
+
const cy = canvasSize / 2;
|
|
183
|
+
const particles = createParticles(config, cx, cy);
|
|
184
|
+
const startTime = performance.now();
|
|
185
|
+
setIsPlaying(true);
|
|
186
|
+
if (animRef.current)
|
|
187
|
+
cancelAnimationFrame(animRef.current);
|
|
188
|
+
function animate(now) {
|
|
189
|
+
const elapsed = now - startTime;
|
|
190
|
+
ctx.clearRect(0, 0, canvasSize, canvasSize);
|
|
191
|
+
let alive = 0;
|
|
192
|
+
for (const p of particles) {
|
|
193
|
+
p.life = elapsed;
|
|
194
|
+
if (p.life >= p.maxLife)
|
|
195
|
+
continue;
|
|
196
|
+
alive++;
|
|
197
|
+
const progress = p.life / p.maxLife;
|
|
198
|
+
// Physics
|
|
199
|
+
p.x += p.vx;
|
|
200
|
+
p.y += p.vy;
|
|
201
|
+
p.vy += config.gravity;
|
|
202
|
+
p.rotation += p.rotationSpeed;
|
|
203
|
+
p.alpha = 1 - progress * config.fadeOut;
|
|
204
|
+
drawParticle(ctx, p);
|
|
205
|
+
}
|
|
206
|
+
if (alive > 0) {
|
|
207
|
+
animRef.current = requestAnimationFrame(animate);
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
ctx.clearRect(0, 0, canvasSize, canvasSize);
|
|
211
|
+
setIsPlaying(false);
|
|
212
|
+
onEffectEnd === null || onEffectEnd === void 0 ? void 0 : onEffectEnd();
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
animRef.current = requestAnimationFrame(animate);
|
|
216
|
+
}, [config, canvasSize, onEffectEnd]);
|
|
217
|
+
// Cleanup on unmount
|
|
218
|
+
useEffect(() => {
|
|
219
|
+
return () => {
|
|
220
|
+
if (animRef.current)
|
|
221
|
+
cancelAnimationFrame(animRef.current);
|
|
222
|
+
};
|
|
223
|
+
}, []);
|
|
224
|
+
// Trigger on mount
|
|
225
|
+
useEffect(() => {
|
|
226
|
+
if (trigger === 'mount')
|
|
227
|
+
emit();
|
|
228
|
+
}, [trigger, emit]);
|
|
229
|
+
// Manual trigger
|
|
230
|
+
useEffect(() => {
|
|
231
|
+
if (trigger === 'manual' && active)
|
|
232
|
+
emit();
|
|
233
|
+
}, [trigger, active, emit]);
|
|
234
|
+
// Forward ref
|
|
235
|
+
React.useImperativeHandle(ref, () => containerRef.current);
|
|
236
|
+
return (jsxs("div", { ref: containerRef, className: className, style: {
|
|
237
|
+
position: 'relative',
|
|
238
|
+
display: 'inline-flex',
|
|
239
|
+
alignItems: 'center',
|
|
240
|
+
justifyContent: 'center',
|
|
241
|
+
width: resolvedSize,
|
|
242
|
+
height: resolvedSize,
|
|
243
|
+
cursor: trigger === 'click' || trigger === 'hover' ? 'pointer' : undefined,
|
|
244
|
+
...style,
|
|
245
|
+
}, onClick: trigger === 'click' ? emit : undefined, onMouseEnter: trigger === 'hover' ? emit : undefined, children: [jsx(Icon, { size: size, ...iconProps }), jsx("canvas", { ref: canvasRef, width: canvasSize, height: canvasSize, style: {
|
|
246
|
+
position: 'absolute',
|
|
247
|
+
top: -canvasOffset,
|
|
248
|
+
left: -canvasOffset,
|
|
249
|
+
width: canvasSize,
|
|
250
|
+
height: canvasSize,
|
|
251
|
+
pointerEvents: 'none',
|
|
252
|
+
} })] }));
|
|
253
|
+
});
|
|
254
|
+
NtdParticleIcon.displayName = 'NtdParticleIcon';
|
|
255
|
+
|
|
256
|
+
export { NtdParticleIcon };
|
|
257
|
+
//# sourceMappingURL=particleEffects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"particleEffects.js","sources":["../../src/particleEffects.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"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"}
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import * as index from './icons/index.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* resolver.ts — Integration with @nice2dev/ui NiceIconProvider.
|
|
6
|
+
*
|
|
7
|
+
* Creates a resolver function that maps NiceIcon name strings
|
|
8
|
+
* to @nice2dev/icons React components.
|
|
9
|
+
*
|
|
10
|
+
* Usage:
|
|
11
|
+
* ```tsx
|
|
12
|
+
* import { NiceIconProvider } from '@nice2dev/ui';
|
|
13
|
+
* import { createNiceIconResolver } from '@nice2dev/icons';
|
|
14
|
+
*
|
|
15
|
+
* <NiceIconProvider resolver={createNiceIconResolver()}>
|
|
16
|
+
* <App />
|
|
17
|
+
* </NiceIconProvider>
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
/* ═══════════════════════════════════════════
|
|
21
|
+
Name Mapping
|
|
22
|
+
═══════════════════════════════════════════ */
|
|
23
|
+
/**
|
|
24
|
+
* Map from NiceIcon names (kebab-case) to Ntd component names.
|
|
25
|
+
* Covers all 78 built-in NiceIcon names + common aliases.
|
|
26
|
+
*/
|
|
27
|
+
const NAME_MAP = {
|
|
28
|
+
// Navigation
|
|
29
|
+
'chevron-up': 'NtdChevronUp',
|
|
30
|
+
'chevron-down': 'NtdChevronDown',
|
|
31
|
+
'chevron-left': 'NtdChevronLeft',
|
|
32
|
+
'chevron-right': 'NtdChevronRight',
|
|
33
|
+
'arrow-up': 'NtdArrowUp',
|
|
34
|
+
'arrow-down': 'NtdArrowDown',
|
|
35
|
+
'arrow-left': 'NtdArrowLeft',
|
|
36
|
+
'arrow-right': 'NtdArrowRight',
|
|
37
|
+
'menu': 'NtdMenu',
|
|
38
|
+
'more-horizontal': 'NtdMoreHorizontal',
|
|
39
|
+
'more-vertical': 'NtdMoreVertical',
|
|
40
|
+
'external-link': 'NtdExternalLink',
|
|
41
|
+
'refresh': 'NtdRefresh',
|
|
42
|
+
// Actions
|
|
43
|
+
'close': 'NtdClose',
|
|
44
|
+
'plus': 'NtdPlus',
|
|
45
|
+
'minus': 'NtdMinus',
|
|
46
|
+
'check': 'NtdCheck',
|
|
47
|
+
'edit': 'NtdEdit',
|
|
48
|
+
'trash': 'NtdTrash',
|
|
49
|
+
'copy': 'NtdCopy',
|
|
50
|
+
'download': 'NtdDownload',
|
|
51
|
+
'upload': 'NtdUpload',
|
|
52
|
+
'search': 'NtdSearch',
|
|
53
|
+
'filter': 'NtdFilter',
|
|
54
|
+
'sort': 'NtdSort',
|
|
55
|
+
'sort-asc': 'NtdSort',
|
|
56
|
+
'sort-desc': 'NtdSort',
|
|
57
|
+
'settings': 'NtdSettings',
|
|
58
|
+
'eye': 'NtdEye',
|
|
59
|
+
'eye-off': 'NtdEyeOff',
|
|
60
|
+
'lock': 'NtdLock',
|
|
61
|
+
'unlock': 'NtdUnlock',
|
|
62
|
+
'save': 'NtdSave',
|
|
63
|
+
'share': 'NtdShare',
|
|
64
|
+
'clipboard': 'NtdClipboard',
|
|
65
|
+
'print': 'NtdPrint',
|
|
66
|
+
'zoom-in': 'NtdZoomIn',
|
|
67
|
+
'zoom-out': 'NtdZoomOut',
|
|
68
|
+
'undo': 'NtdUndo',
|
|
69
|
+
'redo': 'NtdRedo',
|
|
70
|
+
'link': 'NtdLink',
|
|
71
|
+
'login': 'NtdLogIn',
|
|
72
|
+
'logout': 'NtdLogOut',
|
|
73
|
+
// Status
|
|
74
|
+
'info': 'NtdInfo',
|
|
75
|
+
'warning': 'NtdWarning',
|
|
76
|
+
'error': 'NtdError',
|
|
77
|
+
'success': 'NtdSuccess',
|
|
78
|
+
'help': 'NtdHelp',
|
|
79
|
+
// Content
|
|
80
|
+
'calendar': 'NtdCalendar',
|
|
81
|
+
'clock': 'NtdClock',
|
|
82
|
+
'file': 'NtdFile',
|
|
83
|
+
'file-text': 'NtdFileText',
|
|
84
|
+
'folder': 'NtdFolder',
|
|
85
|
+
'folder-open': 'NtdFolderOpen',
|
|
86
|
+
'image': 'NtdImage',
|
|
87
|
+
'link-2': 'NtdLink',
|
|
88
|
+
'mail': 'NtdMail',
|
|
89
|
+
'phone': 'NtdPhone',
|
|
90
|
+
'user': 'NtdUser',
|
|
91
|
+
'users': 'NtdUsers',
|
|
92
|
+
'home': 'NtdHome',
|
|
93
|
+
'star': 'NtdStar',
|
|
94
|
+
'heart': 'NtdHeart',
|
|
95
|
+
'bell': 'NtdBell',
|
|
96
|
+
'grip': 'NtdGrid',
|
|
97
|
+
'tag': 'NtdTag',
|
|
98
|
+
'bookmark': 'NtdBookmark',
|
|
99
|
+
'flag': 'NtdFlag',
|
|
100
|
+
'globe': 'NtdGlobe',
|
|
101
|
+
'map': 'NtdMap',
|
|
102
|
+
'pin': 'NtdPin',
|
|
103
|
+
'shield': 'NtdShield',
|
|
104
|
+
// Media
|
|
105
|
+
'play': 'NtdPlay',
|
|
106
|
+
'pause': 'NtdPause',
|
|
107
|
+
'stop': 'NtdStop',
|
|
108
|
+
'skip-forward': 'NtdSkipForward',
|
|
109
|
+
'skip-back': 'NtdSkipBack',
|
|
110
|
+
'volume': 'NtdVolume',
|
|
111
|
+
'volume-mute': 'NtdVolumeMute',
|
|
112
|
+
'camera': 'NtdCamera',
|
|
113
|
+
'video': 'NtdVideo',
|
|
114
|
+
'microphone': 'NtdMicrophone',
|
|
115
|
+
'music': 'NtdMusic',
|
|
116
|
+
'palette': 'NtdPalette',
|
|
117
|
+
// Misc
|
|
118
|
+
'expand': 'NtdMaximize',
|
|
119
|
+
'collapse': 'NtdMinimize',
|
|
120
|
+
'database': 'NtdDatabase',
|
|
121
|
+
'cloud': 'NtdCloud',
|
|
122
|
+
'terminal': 'NtdTerminal',
|
|
123
|
+
'code': 'NtdCode',
|
|
124
|
+
'git': 'NtdGit',
|
|
125
|
+
'package': 'NtdPackage',
|
|
126
|
+
'layers': 'NtdLayers',
|
|
127
|
+
'grid': 'NtdGrid',
|
|
128
|
+
'list': 'NtdList',
|
|
129
|
+
'table': 'NtdTable',
|
|
130
|
+
'monitor': 'NtdMonitor',
|
|
131
|
+
'cpu': 'NtdCpu',
|
|
132
|
+
'zap': 'NtdZap',
|
|
133
|
+
'key': 'NtdKey',
|
|
134
|
+
'award': 'NtdAward',
|
|
135
|
+
'coffee': 'NtdCoffee',
|
|
136
|
+
'cart': 'NtdCart',
|
|
137
|
+
'credit-card': 'NtdCreditCard',
|
|
138
|
+
'pie-chart': 'NtdPieChart',
|
|
139
|
+
'bar-chart': 'NtdBarChart',
|
|
140
|
+
'activity': 'NtdActivity',
|
|
141
|
+
'target': 'NtdTarget',
|
|
142
|
+
'sun': 'NtdSun',
|
|
143
|
+
'moon': 'NtdMoon',
|
|
144
|
+
'cursor': 'NtdCursor',
|
|
145
|
+
// Common aliases
|
|
146
|
+
'delete': 'NtdTrash',
|
|
147
|
+
'remove': 'NtdClose',
|
|
148
|
+
'add': 'NtdPlus',
|
|
149
|
+
'x': 'NtdClose',
|
|
150
|
+
'pencil': 'NtdEdit',
|
|
151
|
+
'cog': 'NtdSettings',
|
|
152
|
+
'gear': 'NtdSettings',
|
|
153
|
+
'magnify': 'NtdSearch',
|
|
154
|
+
'bell-ring': 'NtdBellRing',
|
|
155
|
+
'chat': 'NtdChat',
|
|
156
|
+
'send': 'NtdSend',
|
|
157
|
+
'notification': 'NtdNotification',
|
|
158
|
+
'dashboard': 'NtdDashboard',
|
|
159
|
+
'analytics': 'NtdAnalytics',
|
|
160
|
+
'rocket': 'NtdRocket',
|
|
161
|
+
};
|
|
162
|
+
/** Build lookup of component references keyed by component name */
|
|
163
|
+
const iconComponents = index;
|
|
164
|
+
/* ═══════════════════════════════════════════
|
|
165
|
+
Resolver Factory
|
|
166
|
+
═══════════════════════════════════════════ */
|
|
167
|
+
/**
|
|
168
|
+
* Creates a resolver function compatible with NiceIconProvider from @nice2dev/ui.
|
|
169
|
+
*
|
|
170
|
+
* @example
|
|
171
|
+
* ```tsx
|
|
172
|
+
* import { NiceIconProvider } from '@nice2dev/ui';
|
|
173
|
+
* import { createNiceIconResolver } from '@nice2dev/icons';
|
|
174
|
+
*
|
|
175
|
+
* // Basic usage
|
|
176
|
+
* <NiceIconProvider resolver={createNiceIconResolver()}>
|
|
177
|
+
* <NiceIcon name="home" size="lg" />
|
|
178
|
+
* </NiceIconProvider>
|
|
179
|
+
*
|
|
180
|
+
* // With options
|
|
181
|
+
* <NiceIconProvider resolver={createNiceIconResolver({
|
|
182
|
+
* variant: 'duotone',
|
|
183
|
+
* primaryColor: '#3b82f6',
|
|
184
|
+
* secondaryColor: '#e0e7ff',
|
|
185
|
+
* })}>
|
|
186
|
+
* <App />
|
|
187
|
+
* </NiceIconProvider>
|
|
188
|
+
* ```
|
|
189
|
+
*/
|
|
190
|
+
function createNiceIconResolver(options = {}) {
|
|
191
|
+
const { variant = 'outline', primaryColor, secondaryColor, customMappings = {}, fallback, } = options;
|
|
192
|
+
const mergedMap = { ...NAME_MAP, ...customMappings };
|
|
193
|
+
return (name, size) => {
|
|
194
|
+
// 1. Try direct name mapping
|
|
195
|
+
const componentName = mergedMap[name];
|
|
196
|
+
// 2. Try PascalCase conversion: "arrow-up" → "NtdArrowUp"
|
|
197
|
+
const pascalized = componentName !== null && componentName !== void 0 ? componentName : `Ntd${name.split('-').map((s) => s.charAt(0).toUpperCase() + s.slice(1)).join('')}`;
|
|
198
|
+
const IconComponent = iconComponents[pascalized];
|
|
199
|
+
if (!IconComponent) {
|
|
200
|
+
if (fallback) {
|
|
201
|
+
return React.createElement(fallback, { size, variant, primaryColor, secondaryColor });
|
|
202
|
+
}
|
|
203
|
+
return undefined;
|
|
204
|
+
}
|
|
205
|
+
const props = { size, variant };
|
|
206
|
+
if (primaryColor)
|
|
207
|
+
props.primaryColor = primaryColor;
|
|
208
|
+
if (secondaryColor)
|
|
209
|
+
props.secondaryColor = secondaryColor;
|
|
210
|
+
return React.createElement(IconComponent, props);
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Get a list of all available icon names that can be resolved.
|
|
215
|
+
*/
|
|
216
|
+
function getResolverIconNames() {
|
|
217
|
+
return Object.keys(NAME_MAP);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
export { createNiceIconResolver, getResolverIconNames };
|
|
221
|
+
//# sourceMappingURL=resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.js","sources":["../../src/resolver.ts"],"sourcesContent":[null],"names":["allIcons"],"mappings":";;;AAAA;;;;;;;;;;;;;;;AAeG;AAQH;;AAEiD;AAEjD;;;AAGG;AACH,MAAM,QAAQ,GAA2B;;AAEvC,IAAA,YAAY,EAAE,cAAc;AAC5B,IAAA,cAAc,EAAE,gBAAgB;AAChC,IAAA,cAAc,EAAE,gBAAgB;AAChC,IAAA,eAAe,EAAE,iBAAiB;AAClC,IAAA,UAAU,EAAE,YAAY;AACxB,IAAA,YAAY,EAAE,cAAc;AAC5B,IAAA,YAAY,EAAE,cAAc;AAC5B,IAAA,aAAa,EAAE,eAAe;AAC9B,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,iBAAiB,EAAE,mBAAmB;AACtC,IAAA,eAAe,EAAE,iBAAiB;AAClC,IAAA,eAAe,EAAE,iBAAiB;AAClC,IAAA,SAAS,EAAE,YAAY;;AAGvB,IAAA,OAAO,EAAE,UAAU;AACnB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,OAAO,EAAE,UAAU;AACnB,IAAA,OAAO,EAAE,UAAU;AACnB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,OAAO,EAAE,UAAU;AACnB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,UAAU,EAAE,aAAa;AACzB,IAAA,QAAQ,EAAE,WAAW;AACrB,IAAA,QAAQ,EAAE,WAAW;AACrB,IAAA,QAAQ,EAAE,WAAW;AACrB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,UAAU,EAAE,aAAa;AACzB,IAAA,KAAK,EAAE,QAAQ;AACf,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,QAAQ,EAAE,WAAW;AACrB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,OAAO,EAAE,UAAU;AACnB,IAAA,WAAW,EAAE,cAAc;AAC3B,IAAA,OAAO,EAAE,UAAU;AACnB,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,UAAU,EAAE,YAAY;AACxB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,OAAO,EAAE,UAAU;AACnB,IAAA,QAAQ,EAAE,WAAW;;AAGrB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,SAAS,EAAE,YAAY;AACvB,IAAA,OAAO,EAAE,UAAU;AACnB,IAAA,SAAS,EAAE,YAAY;AACvB,IAAA,MAAM,EAAE,SAAS;;AAGjB,IAAA,UAAU,EAAE,aAAa;AACzB,IAAA,OAAO,EAAE,UAAU;AACnB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,WAAW,EAAE,aAAa;AAC1B,IAAA,QAAQ,EAAE,WAAW;AACrB,IAAA,aAAa,EAAE,eAAe;AAC9B,IAAA,OAAO,EAAE,UAAU;AACnB,IAAA,QAAQ,EAAE,SAAS;AACnB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,OAAO,EAAE,UAAU;AACnB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,OAAO,EAAE,UAAU;AACnB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,OAAO,EAAE,UAAU;AACnB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,KAAK,EAAE,QAAQ;AACf,IAAA,UAAU,EAAE,aAAa;AACzB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,OAAO,EAAE,UAAU;AACnB,IAAA,KAAK,EAAE,QAAQ;AACf,IAAA,KAAK,EAAE,QAAQ;AACf,IAAA,QAAQ,EAAE,WAAW;;AAGrB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,OAAO,EAAE,UAAU;AACnB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,cAAc,EAAE,gBAAgB;AAChC,IAAA,WAAW,EAAE,aAAa;AAC1B,IAAA,QAAQ,EAAE,WAAW;AACrB,IAAA,aAAa,EAAE,eAAe;AAC9B,IAAA,QAAQ,EAAE,WAAW;AACrB,IAAA,OAAO,EAAE,UAAU;AACnB,IAAA,YAAY,EAAE,eAAe;AAC7B,IAAA,OAAO,EAAE,UAAU;AACnB,IAAA,SAAS,EAAE,YAAY;;AAGvB,IAAA,QAAQ,EAAE,aAAa;AACvB,IAAA,UAAU,EAAE,aAAa;AACzB,IAAA,UAAU,EAAE,aAAa;AACzB,IAAA,OAAO,EAAE,UAAU;AACnB,IAAA,UAAU,EAAE,aAAa;AACzB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,KAAK,EAAE,QAAQ;AACf,IAAA,SAAS,EAAE,YAAY;AACvB,IAAA,QAAQ,EAAE,WAAW;AACrB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,OAAO,EAAE,UAAU;AACnB,IAAA,SAAS,EAAE,YAAY;AACvB,IAAA,KAAK,EAAE,QAAQ;AACf,IAAA,KAAK,EAAE,QAAQ;AACf,IAAA,KAAK,EAAE,QAAQ;AACf,IAAA,OAAO,EAAE,UAAU;AACnB,IAAA,QAAQ,EAAE,WAAW;AACrB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,aAAa,EAAE,eAAe;AAC9B,IAAA,WAAW,EAAE,aAAa;AAC1B,IAAA,WAAW,EAAE,aAAa;AAC1B,IAAA,UAAU,EAAE,aAAa;AACzB,IAAA,QAAQ,EAAE,WAAW;AACrB,IAAA,KAAK,EAAE,QAAQ;AACf,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,QAAQ,EAAE,WAAW;;AAGrB,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,GAAG,EAAE,UAAU;AACf,IAAA,QAAQ,EAAE,SAAS;AACnB,IAAA,KAAK,EAAE,aAAa;AACpB,IAAA,MAAM,EAAE,aAAa;AACrB,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,WAAW,EAAE,aAAa;AAC1B,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,cAAc,EAAE,iBAAiB;AACjC,IAAA,WAAW,EAAE,cAAc;AAC3B,IAAA,WAAW,EAAE,cAAc;AAC3B,IAAA,QAAQ,EAAE,WAAW;CACtB;AAED;AACA,MAAM,cAAc,GAAGA,KAAwE;AAmB/F;;AAEiD;AAEjD;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACG,SAAU,sBAAsB,CACpC,OAAA,GAAmC,EAAE,EAAA;AAErC,IAAA,MAAM,EACJ,OAAO,GAAG,SAAS,EACnB,YAAY,EACZ,cAAc,EACd,cAAc,GAAG,EAAE,EACnB,QAAQ,GACT,GAAG,OAAO;IAEX,MAAM,SAAS,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,cAAc,EAAE;AAEpD,IAAA,OAAO,CAAC,IAAY,EAAE,IAAY,KAAiC;;AAEjE,QAAA,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC;;QAGrC,MAAM,UAAU,GAAG,aAAa,KAAA,IAAA,IAAb,aAAa,KAAA,MAAA,GAAb,aAAa,GAC3B,CAAA,GAAA,EAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA,CAAE;AAExF,QAAA,MAAM,aAAa,GAAG,cAAc,CAAC,UAAU,CAAC;QAChD,IAAI,CAAC,aAAa,EAAE;YAClB,IAAI,QAAQ,EAAE;AACZ,gBAAA,OAAO,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAkB,CAAC;YACvG;AACA,YAAA,OAAO,SAAS;QAClB;AAEA,QAAA,MAAM,KAAK,GAAiB,EAAE,IAAI,EAAE,OAAO,EAAE;AAC7C,QAAA,IAAI,YAAY;AAAE,YAAA,KAAK,CAAC,YAAY,GAAG,YAAY;AACnD,QAAA,IAAI,cAAc;AAAE,YAAA,KAAK,CAAC,cAAc,GAAG,cAAc;QAEzD,OAAO,KAAK,CAAC,aAAa,CAAC,aAAa,EAAE,KAAK,CAAC;AAClD,IAAA,CAAC;AACH;AAEA;;AAEG;SACa,oBAAoB,GAAA;AAClC,IAAA,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC9B;;;;"}
|