@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,337 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file tailwind-plugin.ts
|
|
3
|
+
* @description Tailwind CSS Plugin for @nice2dev/icons
|
|
4
|
+
*
|
|
5
|
+
* Enables Tailwind CSS utility classes directly on NiceToDev icons:
|
|
6
|
+
* <NtdHome className="text-blue-500 w-6 h-6 hover:text-blue-700" />
|
|
7
|
+
*
|
|
8
|
+
* @version 1.0.0
|
|
9
|
+
* @since 2026-03
|
|
10
|
+
* @license MIT
|
|
11
|
+
*/
|
|
12
|
+
const defaultSizes = {
|
|
13
|
+
xs: '0.75rem',
|
|
14
|
+
sm: '1rem',
|
|
15
|
+
md: '1.5rem',
|
|
16
|
+
lg: '2rem',
|
|
17
|
+
xl: '3rem',
|
|
18
|
+
'2xl': '4rem',
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Tailwind CSS Plugin for NiceToDev Icons
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* // tailwind.config.js
|
|
25
|
+
* import { ntdIconPlugin } from '@nice2dev/icons/tailwind';
|
|
26
|
+
*
|
|
27
|
+
* export default {
|
|
28
|
+
* plugins: [
|
|
29
|
+
* ntdIconPlugin({
|
|
30
|
+
* prefix: 'ntd-icon',
|
|
31
|
+
* animations: true,
|
|
32
|
+
* }),
|
|
33
|
+
* ],
|
|
34
|
+
* };
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* // Usage in components
|
|
38
|
+
* <NtdHome className="ntd-icon-md text-blue-500 hover:ntd-icon-bounce" />
|
|
39
|
+
* <NtdStar className="ntd-icon-lg ntd-icon-spin text-yellow-400" />
|
|
40
|
+
*/
|
|
41
|
+
const ntdIconPlugin = (options = {}) => {
|
|
42
|
+
const { prefix = 'ntd-icon', sizes = defaultSizes, animations = true, variantUtilities = true, } = options;
|
|
43
|
+
return function ({ addUtilities, addComponents, theme, matchUtilities }) {
|
|
44
|
+
// ─────────────────────────────────────────────────────────────────────
|
|
45
|
+
// SIZE UTILITIES
|
|
46
|
+
// ─────────────────────────────────────────────────────────────────────
|
|
47
|
+
const sizeUtilities = {};
|
|
48
|
+
Object.entries(sizes).forEach(([key, value]) => {
|
|
49
|
+
sizeUtilities[`.${prefix}-${key}`] = {
|
|
50
|
+
width: value,
|
|
51
|
+
height: value,
|
|
52
|
+
};
|
|
53
|
+
});
|
|
54
|
+
addUtilities(sizeUtilities);
|
|
55
|
+
// Dynamic sizing using Tailwind's spacing scale
|
|
56
|
+
matchUtilities({
|
|
57
|
+
[`${prefix}-size`]: (value) => ({
|
|
58
|
+
width: value,
|
|
59
|
+
height: value,
|
|
60
|
+
}),
|
|
61
|
+
}, { values: theme('spacing') });
|
|
62
|
+
// ─────────────────────────────────────────────────────────────────────
|
|
63
|
+
// COLOR UTILITIES (for SVG icons)
|
|
64
|
+
// ─────────────────────────────────────────────────────────────────────
|
|
65
|
+
const colorUtilities = {
|
|
66
|
+
// Primary color (main icon color)
|
|
67
|
+
[`.${prefix}-current`]: {
|
|
68
|
+
color: 'currentColor',
|
|
69
|
+
'--ntd-primary-color': 'currentColor',
|
|
70
|
+
},
|
|
71
|
+
// For duotone: secondary color
|
|
72
|
+
[`.${prefix}-secondary-current`]: {
|
|
73
|
+
'--ntd-secondary-color': 'currentColor',
|
|
74
|
+
},
|
|
75
|
+
// Opacity for secondary color in duotone
|
|
76
|
+
[`.${prefix}-secondary-opacity-25`]: {
|
|
77
|
+
'--ntd-secondary-opacity': '0.25',
|
|
78
|
+
},
|
|
79
|
+
[`.${prefix}-secondary-opacity-50`]: {
|
|
80
|
+
'--ntd-secondary-opacity': '0.5',
|
|
81
|
+
},
|
|
82
|
+
[`.${prefix}-secondary-opacity-75`]: {
|
|
83
|
+
'--ntd-secondary-opacity': '0.75',
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
addUtilities(colorUtilities);
|
|
87
|
+
// Dynamic color matching using Tailwind's color palette
|
|
88
|
+
matchUtilities({
|
|
89
|
+
[`${prefix}-primary`]: (value) => ({
|
|
90
|
+
'--ntd-primary-color': value,
|
|
91
|
+
}),
|
|
92
|
+
[`${prefix}-secondary`]: (value) => ({
|
|
93
|
+
'--ntd-secondary-color': value,
|
|
94
|
+
}),
|
|
95
|
+
}, { values: flattenColorPalette(theme('colors')) });
|
|
96
|
+
// ─────────────────────────────────────────────────────────────────────
|
|
97
|
+
// STROKE WIDTH UTILITIES
|
|
98
|
+
// ─────────────────────────────────────────────────────────────────────
|
|
99
|
+
const strokeUtilities = {
|
|
100
|
+
[`.${prefix}-stroke-thin`]: {
|
|
101
|
+
'--ntd-stroke-width': '1',
|
|
102
|
+
},
|
|
103
|
+
[`.${prefix}-stroke-normal`]: {
|
|
104
|
+
'--ntd-stroke-width': '1.5',
|
|
105
|
+
},
|
|
106
|
+
[`.${prefix}-stroke-medium`]: {
|
|
107
|
+
'--ntd-stroke-width': '2',
|
|
108
|
+
},
|
|
109
|
+
[`.${prefix}-stroke-thick`]: {
|
|
110
|
+
'--ntd-stroke-width': '2.5',
|
|
111
|
+
},
|
|
112
|
+
[`.${prefix}-stroke-bold`]: {
|
|
113
|
+
'--ntd-stroke-width': '3',
|
|
114
|
+
},
|
|
115
|
+
};
|
|
116
|
+
addUtilities(strokeUtilities);
|
|
117
|
+
matchUtilities({
|
|
118
|
+
[`${prefix}-stroke`]: (value) => ({
|
|
119
|
+
'--ntd-stroke-width': value,
|
|
120
|
+
}),
|
|
121
|
+
}, { values: { '0.5': '0.5', '1': '1', '1.5': '1.5', '2': '2', '2.5': '2.5', '3': '3' } });
|
|
122
|
+
// ─────────────────────────────────────────────────────────────────────
|
|
123
|
+
// VARIANT UTILITIES
|
|
124
|
+
// ─────────────────────────────────────────────────────────────────────
|
|
125
|
+
if (variantUtilities) {
|
|
126
|
+
const variantClasses = {
|
|
127
|
+
[`.${prefix}-solid`]: {
|
|
128
|
+
'--ntd-variant': 'solid',
|
|
129
|
+
},
|
|
130
|
+
[`.${prefix}-outline`]: {
|
|
131
|
+
'--ntd-variant': 'outline',
|
|
132
|
+
},
|
|
133
|
+
[`.${prefix}-duotone`]: {
|
|
134
|
+
'--ntd-variant': 'duotone',
|
|
135
|
+
},
|
|
136
|
+
[`.${prefix}-flat`]: {
|
|
137
|
+
'--ntd-variant': 'flat',
|
|
138
|
+
},
|
|
139
|
+
};
|
|
140
|
+
addUtilities(variantClasses);
|
|
141
|
+
}
|
|
142
|
+
// ─────────────────────────────────────────────────────────────────────
|
|
143
|
+
// ANIMATION UTILITIES
|
|
144
|
+
// ─────────────────────────────────────────────────────────────────────
|
|
145
|
+
if (animations) {
|
|
146
|
+
const animationUtilities = {
|
|
147
|
+
// Spin animation
|
|
148
|
+
[`.${prefix}-spin`]: {
|
|
149
|
+
animation: `${prefix}-spin 1s linear infinite`,
|
|
150
|
+
},
|
|
151
|
+
[`.${prefix}-spin-slow`]: {
|
|
152
|
+
animation: `${prefix}-spin 2s linear infinite`,
|
|
153
|
+
},
|
|
154
|
+
[`.${prefix}-spin-fast`]: {
|
|
155
|
+
animation: `${prefix}-spin 0.5s linear infinite`,
|
|
156
|
+
},
|
|
157
|
+
// Pulse animation
|
|
158
|
+
[`.${prefix}-pulse`]: {
|
|
159
|
+
animation: `${prefix}-pulse 2s ease-in-out infinite`,
|
|
160
|
+
},
|
|
161
|
+
// Bounce animation
|
|
162
|
+
[`.${prefix}-bounce`]: {
|
|
163
|
+
animation: `${prefix}-bounce 1s ease-in-out infinite`,
|
|
164
|
+
},
|
|
165
|
+
// Shake animation (for errors/alerts)
|
|
166
|
+
[`.${prefix}-shake`]: {
|
|
167
|
+
animation: `${prefix}-shake 0.5s ease-in-out`,
|
|
168
|
+
},
|
|
169
|
+
// Fade in
|
|
170
|
+
[`.${prefix}-fade-in`]: {
|
|
171
|
+
animation: `${prefix}-fade-in 0.3s ease-out`,
|
|
172
|
+
},
|
|
173
|
+
// Scale up
|
|
174
|
+
[`.${prefix}-scale-in`]: {
|
|
175
|
+
animation: `${prefix}-scale-in 0.2s ease-out`,
|
|
176
|
+
},
|
|
177
|
+
// Wiggle (for attention)
|
|
178
|
+
[`.${prefix}-wiggle`]: {
|
|
179
|
+
animation: `${prefix}-wiggle 0.5s ease-in-out`,
|
|
180
|
+
},
|
|
181
|
+
// Float (subtle up/down)
|
|
182
|
+
[`.${prefix}-float`]: {
|
|
183
|
+
animation: `${prefix}-float 3s ease-in-out infinite`,
|
|
184
|
+
},
|
|
185
|
+
// Glow effect
|
|
186
|
+
[`.${prefix}-glow`]: {
|
|
187
|
+
filter: 'drop-shadow(0 0 8px currentColor)',
|
|
188
|
+
animation: `${prefix}-glow 2s ease-in-out infinite alternate`,
|
|
189
|
+
},
|
|
190
|
+
};
|
|
191
|
+
addUtilities(animationUtilities);
|
|
192
|
+
// Keyframes for animations
|
|
193
|
+
addComponents({
|
|
194
|
+
[`@keyframes ${prefix}-spin`]: {
|
|
195
|
+
from: { transform: 'rotate(0deg)' },
|
|
196
|
+
to: { transform: 'rotate(360deg)' },
|
|
197
|
+
},
|
|
198
|
+
[`@keyframes ${prefix}-pulse`]: {
|
|
199
|
+
'0%, 100%': { opacity: '1' },
|
|
200
|
+
'50%': { opacity: '0.5' },
|
|
201
|
+
},
|
|
202
|
+
[`@keyframes ${prefix}-bounce`]: {
|
|
203
|
+
'0%, 100%': { transform: 'translateY(0)' },
|
|
204
|
+
'50%': { transform: 'translateY(-25%)' },
|
|
205
|
+
},
|
|
206
|
+
[`@keyframes ${prefix}-shake`]: {
|
|
207
|
+
'0%, 100%': { transform: 'translateX(0)' },
|
|
208
|
+
'10%, 30%, 50%, 70%, 90%': { transform: 'translateX(-4px)' },
|
|
209
|
+
'20%, 40%, 60%, 80%': { transform: 'translateX(4px)' },
|
|
210
|
+
},
|
|
211
|
+
[`@keyframes ${prefix}-fade-in`]: {
|
|
212
|
+
from: { opacity: '0' },
|
|
213
|
+
to: { opacity: '1' },
|
|
214
|
+
},
|
|
215
|
+
[`@keyframes ${prefix}-scale-in`]: {
|
|
216
|
+
from: { transform: 'scale(0.8)', opacity: '0' },
|
|
217
|
+
to: { transform: 'scale(1)', opacity: '1' },
|
|
218
|
+
},
|
|
219
|
+
[`@keyframes ${prefix}-wiggle`]: {
|
|
220
|
+
'0%, 100%': { transform: 'rotate(0deg)' },
|
|
221
|
+
'25%': { transform: 'rotate(-5deg)' },
|
|
222
|
+
'75%': { transform: 'rotate(5deg)' },
|
|
223
|
+
},
|
|
224
|
+
[`@keyframes ${prefix}-float`]: {
|
|
225
|
+
'0%, 100%': { transform: 'translateY(0)' },
|
|
226
|
+
'50%': { transform: 'translateY(-10%)' },
|
|
227
|
+
},
|
|
228
|
+
[`@keyframes ${prefix}-glow`]: {
|
|
229
|
+
from: { filter: 'drop-shadow(0 0 4px currentColor)' },
|
|
230
|
+
to: { filter: 'drop-shadow(0 0 12px currentColor)' },
|
|
231
|
+
},
|
|
232
|
+
});
|
|
233
|
+
// Hover animations
|
|
234
|
+
const hoverAnimations = {
|
|
235
|
+
[`.hover\\:${prefix}-bounce:hover`]: {
|
|
236
|
+
animation: `${prefix}-bounce 0.5s ease-in-out`,
|
|
237
|
+
},
|
|
238
|
+
[`.hover\\:${prefix}-shake:hover`]: {
|
|
239
|
+
animation: `${prefix}-shake 0.5s ease-in-out`,
|
|
240
|
+
},
|
|
241
|
+
[`.hover\\:${prefix}-wiggle:hover`]: {
|
|
242
|
+
animation: `${prefix}-wiggle 0.5s ease-in-out`,
|
|
243
|
+
},
|
|
244
|
+
[`.hover\\:${prefix}-scale:hover`]: {
|
|
245
|
+
transform: 'scale(1.1)',
|
|
246
|
+
transition: 'transform 0.2s ease-out',
|
|
247
|
+
},
|
|
248
|
+
[`.hover\\:${prefix}-glow:hover`]: {
|
|
249
|
+
filter: 'drop-shadow(0 0 8px currentColor)',
|
|
250
|
+
},
|
|
251
|
+
};
|
|
252
|
+
addUtilities(hoverAnimations);
|
|
253
|
+
}
|
|
254
|
+
// ─────────────────────────────────────────────────────────────────────
|
|
255
|
+
// TRANSITION UTILITIES
|
|
256
|
+
// ─────────────────────────────────────────────────────────────────────
|
|
257
|
+
const transitionUtilities = {
|
|
258
|
+
[`.${prefix}-transition`]: {
|
|
259
|
+
transition: 'all 0.2s ease-out',
|
|
260
|
+
},
|
|
261
|
+
[`.${prefix}-transition-fast`]: {
|
|
262
|
+
transition: 'all 0.1s ease-out',
|
|
263
|
+
},
|
|
264
|
+
[`.${prefix}-transition-slow`]: {
|
|
265
|
+
transition: 'all 0.3s ease-out',
|
|
266
|
+
},
|
|
267
|
+
[`.${prefix}-transition-colors`]: {
|
|
268
|
+
transition: 'color 0.2s ease-out, fill 0.2s ease-out, stroke 0.2s ease-out',
|
|
269
|
+
},
|
|
270
|
+
};
|
|
271
|
+
addUtilities(transitionUtilities);
|
|
272
|
+
// ─────────────────────────────────────────────────────────────────────
|
|
273
|
+
// ACCESSIBILITY UTILITIES
|
|
274
|
+
// ─────────────────────────────────────────────────────────────────────
|
|
275
|
+
const a11yUtilities = {
|
|
276
|
+
// Reduced motion support
|
|
277
|
+
[`@media (prefers-reduced-motion: reduce)`]: {
|
|
278
|
+
[`.${prefix}-spin, .${prefix}-spin-slow, .${prefix}-spin-fast, .${prefix}-pulse, .${prefix}-bounce, .${prefix}-shake, .${prefix}-wiggle, .${prefix}-float, .${prefix}-glow`]: {
|
|
279
|
+
animation: 'none !important',
|
|
280
|
+
},
|
|
281
|
+
},
|
|
282
|
+
// Focus visible outline
|
|
283
|
+
[`.${prefix}-focus-visible:focus-visible`]: {
|
|
284
|
+
outline: '2px solid currentColor',
|
|
285
|
+
outlineOffset: '2px',
|
|
286
|
+
},
|
|
287
|
+
// High contrast mode
|
|
288
|
+
[`@media (forced-colors: active)`]: {
|
|
289
|
+
[`.${prefix}-high-contrast`]: {
|
|
290
|
+
forcedColorAdjust: 'auto',
|
|
291
|
+
},
|
|
292
|
+
},
|
|
293
|
+
};
|
|
294
|
+
addComponents(a11yUtilities);
|
|
295
|
+
};
|
|
296
|
+
};
|
|
297
|
+
/**
|
|
298
|
+
* Helper to flatten color palette for matchUtilities
|
|
299
|
+
*/
|
|
300
|
+
function flattenColorPalette(colors) {
|
|
301
|
+
const result = {};
|
|
302
|
+
function flatten(obj, prefix = '') {
|
|
303
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
304
|
+
if (typeof value === 'string') {
|
|
305
|
+
result[prefix ? `${prefix}-${key}` : key] = value;
|
|
306
|
+
}
|
|
307
|
+
else if (typeof value === 'object' && value !== null) {
|
|
308
|
+
flatten(value, prefix ? `${prefix}-${key}` : key);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
flatten(colors);
|
|
313
|
+
return result;
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Preset for common icon configurations
|
|
317
|
+
*/
|
|
318
|
+
const ntdIconPreset = {
|
|
319
|
+
theme: {
|
|
320
|
+
extend: {
|
|
321
|
+
colors: {
|
|
322
|
+
'ntd': {
|
|
323
|
+
primary: '#3B82F6',
|
|
324
|
+
secondary: '#64748B',
|
|
325
|
+
accent: '#8B5CF6',
|
|
326
|
+
success: '#22C55E',
|
|
327
|
+
warning: '#F59E0B',
|
|
328
|
+
error: '#EF4444',
|
|
329
|
+
info: '#06B6D4',
|
|
330
|
+
},
|
|
331
|
+
},
|
|
332
|
+
},
|
|
333
|
+
},
|
|
334
|
+
};
|
|
335
|
+
|
|
336
|
+
export { ntdIconPlugin, ntdIconPreset };
|
|
337
|
+
//# sourceMappingURL=tailwind-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tailwind-plugin.js","sources":["../../src/tailwind-plugin.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/dist/esm/types.js
CHANGED
|
@@ -1,3 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default colors for semantic color variants.
|
|
3
|
+
* These are used when CSS variables are not defined.
|
|
4
|
+
*/
|
|
5
|
+
const SEMANTIC_COLOR_DEFAULTS = {
|
|
6
|
+
success: '#22c55e', // Green 500
|
|
7
|
+
warning: '#f59e0b', // Amber 500
|
|
8
|
+
error: '#ef4444', // Red 500
|
|
9
|
+
info: '#3b82f6', // Blue 500
|
|
10
|
+
muted: '#6b7280', // Gray 500
|
|
11
|
+
primary: '#6366f1', // Indigo 500
|
|
12
|
+
secondary: '#8b5cf6', // Violet 500
|
|
13
|
+
accent: '#ec4899', // Pink 500
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* CSS variable names for semantic colors.
|
|
17
|
+
* Define these in your CSS to customize icon colors globally.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```css
|
|
21
|
+
* :root {
|
|
22
|
+
* --ntd-icon-success: #10b981;
|
|
23
|
+
* --ntd-icon-error: #dc2626;
|
|
24
|
+
* }
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
const SEMANTIC_COLOR_VARS = {
|
|
28
|
+
success: '--ntd-icon-success',
|
|
29
|
+
warning: '--ntd-icon-warning',
|
|
30
|
+
error: '--ntd-icon-error',
|
|
31
|
+
info: '--ntd-icon-info',
|
|
32
|
+
muted: '--ntd-icon-muted',
|
|
33
|
+
primary: '--ntd-icon-primary',
|
|
34
|
+
secondary: '--ntd-icon-secondary',
|
|
35
|
+
accent: '--ntd-icon-accent',
|
|
36
|
+
};
|
|
1
37
|
/** Gradient preset color stops. */
|
|
2
38
|
const GRADIENT_PRESETS = {
|
|
3
39
|
sunset: ['#ff6b6b', '#feca57', '#ff9ff3'],
|
|
@@ -40,5 +76,5 @@ const SIZE_MAP = {
|
|
|
40
76
|
xxxl: 128,
|
|
41
77
|
};
|
|
42
78
|
|
|
43
|
-
export { GRADIENT_PRESETS, SIZE_MAP };
|
|
79
|
+
export { GRADIENT_PRESETS, SEMANTIC_COLOR_DEFAULTS, SEMANTIC_COLOR_VARS, SIZE_MAP };
|
|
44
80
|
//# sourceMappingURL=types.js.map
|
package/dist/esm/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../src/types.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../src/types.ts"],"sourcesContent":[null],"names":[],"mappings":"AAkNA;;;AAGG;AACI,MAAM,uBAAuB,GAAkC;IACpE,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,SAAS;IACpB,MAAM,EAAE,SAAS;;AAGnB;;;;;;;;;;;AAWG;AACI,MAAM,mBAAmB,GAAkC;AAChE,IAAA,OAAO,EAAE,oBAAoB;AAC7B,IAAA,OAAO,EAAE,oBAAoB;AAC7B,IAAA,KAAK,EAAE,kBAAkB;AACzB,IAAA,IAAI,EAAE,iBAAiB;AACvB,IAAA,KAAK,EAAE,kBAAkB;AACzB,IAAA,OAAO,EAAE,oBAAoB;AAC7B,IAAA,SAAS,EAAE,sBAAsB;AACjC,IAAA,MAAM,EAAE,mBAAmB;;AAG7B;AACO,MAAM,gBAAgB,GAA8C;AACzE,IAAA,MAAM,EAAS,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;AAChD,IAAA,KAAK,EAAU,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;AAChD,IAAA,MAAM,EAAS,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;AAChD,IAAA,IAAI,EAAW,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;AAChD,IAAA,GAAG,EAAY,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;AAChD,IAAA,IAAI,EAAW,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;AAChD,IAAA,IAAI,EAAW,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;AAChD,IAAA,aAAa,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;IAChD,MAAM,EAAS,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;AAC3D,IAAA,QAAQ,EAAO,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;AAChD,IAAA,KAAK,EAAU,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;AAChD,IAAA,KAAK,EAAU,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;;AAoLlD;;;;;;;;;;;;;;;AAeG;AACI,MAAM,QAAQ,GAA2B;AAC9C,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,KAAK,EAAE,EAAE;AACT,IAAA,GAAG,EAAE,EAAE;AACP,IAAA,IAAI,EAAE,GAAG;;;;;"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file variantProps.ts
|
|
3
|
+
* @description Discriminated unions and strict prop validation per icon variant.
|
|
4
|
+
*
|
|
5
|
+
* Provides narrowed prop types for each icon variant (solid, outline, duotone, flat,
|
|
6
|
+
* sharp, rounded, mini, 3d) with variant-specific required/optional props.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```tsx
|
|
10
|
+
* // Narrows to DuotoneIconProps — guarantees secondaryColor is accepted
|
|
11
|
+
* const props: VariantIconProps = {
|
|
12
|
+
* variant: 'duotone',
|
|
13
|
+
* primaryColor: '#3b82f6',
|
|
14
|
+
* secondaryColor: '#93c5fd',
|
|
15
|
+
* secondaryOpacity: 0.4,
|
|
16
|
+
* };
|
|
17
|
+
*
|
|
18
|
+
* // Type guard usage
|
|
19
|
+
* if (isDuotoneProps(props)) {
|
|
20
|
+
* props.secondaryColor; // string — narrowed
|
|
21
|
+
* }
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
/* ────────────────────────────────────────────────────────────────────────────
|
|
25
|
+
TYPE GUARDS
|
|
26
|
+
───────────────────────────────────────────────────────────────────────────── */
|
|
27
|
+
/** Narrows to `SolidIconProps` when `variant === 'solid'`. */
|
|
28
|
+
function isSolidProps(props) {
|
|
29
|
+
return props.variant === 'solid';
|
|
30
|
+
}
|
|
31
|
+
/** Narrows to `OutlineIconProps` when `variant === 'outline'`. */
|
|
32
|
+
function isOutlineProps(props) {
|
|
33
|
+
return props.variant === 'outline';
|
|
34
|
+
}
|
|
35
|
+
/** Narrows to `DuotoneIconProps` when `variant === 'duotone'`. */
|
|
36
|
+
function isDuotoneProps(props) {
|
|
37
|
+
return props.variant === 'duotone';
|
|
38
|
+
}
|
|
39
|
+
/** Narrows to `FlatIconProps` when `variant === 'flat'`. */
|
|
40
|
+
function isFlatProps(props) {
|
|
41
|
+
return props.variant === 'flat';
|
|
42
|
+
}
|
|
43
|
+
/** Narrows to `SharpIconProps` when `variant === 'sharp'`. */
|
|
44
|
+
function isSharpProps(props) {
|
|
45
|
+
return props.variant === 'sharp';
|
|
46
|
+
}
|
|
47
|
+
/** Narrows to `RoundedIconProps` when `variant === 'rounded'`. */
|
|
48
|
+
function isRoundedProps(props) {
|
|
49
|
+
return props.variant === 'rounded';
|
|
50
|
+
}
|
|
51
|
+
/** Narrows to `MiniIconProps` when `variant === 'mini'`. */
|
|
52
|
+
function isMiniProps(props) {
|
|
53
|
+
return props.variant === 'mini';
|
|
54
|
+
}
|
|
55
|
+
/** Narrows to `ThreeDIconProps` when `variant === '3d'`. */
|
|
56
|
+
function isThreeDProps(props) {
|
|
57
|
+
return props.variant === '3d';
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Converts a discriminated `VariantIconProps` into the general `NtdIconProps`.
|
|
61
|
+
* Useful when passing narrowed props to actual icon components.
|
|
62
|
+
*/
|
|
63
|
+
function toIconProps(props) {
|
|
64
|
+
return props;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export { isDuotoneProps, isFlatProps, isMiniProps, isOutlineProps, isRoundedProps, isSharpProps, isSolidProps, isThreeDProps, toIconProps };
|
|
68
|
+
//# sourceMappingURL=variantProps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variantProps.js","sources":["../../src/variantProps.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;AAsBG;AA0GH;;AAEgF;AAEhF;AACM,SAAU,YAAY,CAAC,KAAuB,EAAA;AAClD,IAAA,OAAO,KAAK,CAAC,OAAO,KAAK,OAAO;AAClC;AAEA;AACM,SAAU,cAAc,CAAC,KAAuB,EAAA;AACpD,IAAA,OAAO,KAAK,CAAC,OAAO,KAAK,SAAS;AACpC;AAEA;AACM,SAAU,cAAc,CAAC,KAAuB,EAAA;AACpD,IAAA,OAAO,KAAK,CAAC,OAAO,KAAK,SAAS;AACpC;AAEA;AACM,SAAU,WAAW,CAAC,KAAuB,EAAA;AACjD,IAAA,OAAO,KAAK,CAAC,OAAO,KAAK,MAAM;AACjC;AAEA;AACM,SAAU,YAAY,CAAC,KAAuB,EAAA;AAClD,IAAA,OAAO,KAAK,CAAC,OAAO,KAAK,OAAO;AAClC;AAEA;AACM,SAAU,cAAc,CAAC,KAAuB,EAAA;AACpD,IAAA,OAAO,KAAK,CAAC,OAAO,KAAK,SAAS;AACpC;AAEA;AACM,SAAU,WAAW,CAAC,KAAuB,EAAA;AACjD,IAAA,OAAO,KAAK,CAAC,OAAO,KAAK,MAAM;AACjC;AAEA;AACM,SAAU,aAAa,CAAC,KAAuB,EAAA;AACnD,IAAA,OAAO,KAAK,CAAC,OAAO,KAAK,IAAI;AAC/B;AAEA;;;AAGG;AACG,SAAU,WAAW,CAAC,KAAuB,EAAA;AACjD,IAAA,OAAO,KAAqB;AAC9B;;;;"}
|