@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.
Files changed (152) hide show
  1. package/CHANGELOG.md +169 -7
  2. package/README.md +247 -2
  3. package/bin/ntd-icons.mjs +732 -0
  4. package/dist/cjs/NtdIconBadge.js +375 -0
  5. package/dist/cjs/NtdIconBadge.js.map +1 -0
  6. package/dist/cjs/NtdIconMorph.js +386 -0
  7. package/dist/cjs/NtdIconMorph.js.map +1 -0
  8. package/dist/cjs/NtdStateMorph.js +177 -0
  9. package/dist/cjs/NtdStateMorph.js.map +1 -0
  10. package/dist/cjs/createIcon.js +51 -4
  11. package/dist/cjs/createIcon.js.map +1 -1
  12. package/dist/cjs/figmaSync.js +308 -0
  13. package/dist/cjs/figmaSync.js.map +1 -0
  14. package/dist/cjs/iconAnalytics.js +189 -0
  15. package/dist/cjs/iconAnalytics.js.map +1 -0
  16. package/dist/cjs/iconMetadata.js +523 -0
  17. package/dist/cjs/iconMetadata.js.map +1 -0
  18. package/dist/cjs/iconStyles.js +597 -0
  19. package/dist/cjs/iconStyles.js.map +1 -0
  20. package/dist/cjs/icons/accessibility.js +168 -0
  21. package/dist/cjs/icons/accessibility.js.map +1 -0
  22. package/dist/cjs/icons/ai.js +191 -0
  23. package/dist/cjs/icons/ai.js.map +1 -0
  24. package/dist/cjs/icons/brand.js +70 -0
  25. package/dist/cjs/icons/brand.js.map +1 -1
  26. package/dist/cjs/icons/education.js +212 -0
  27. package/dist/cjs/icons/education.js.map +1 -0
  28. package/dist/cjs/icons/food.js +198 -0
  29. package/dist/cjs/icons/food.js.map +1 -0
  30. package/dist/cjs/icons/gaming.js +191 -0
  31. package/dist/cjs/icons/gaming.js.map +1 -0
  32. package/dist/cjs/icons/index.js +520 -0
  33. package/dist/cjs/icons/index.js.map +1 -0
  34. package/dist/cjs/icons/legal.js +168 -0
  35. package/dist/cjs/icons/legal.js.map +1 -0
  36. package/dist/cjs/icons/realestate.js +212 -0
  37. package/dist/cjs/icons/realestate.js.map +1 -0
  38. package/dist/cjs/icons/science.js +201 -0
  39. package/dist/cjs/icons/science.js.map +1 -0
  40. package/dist/cjs/icons/sports.js +176 -0
  41. package/dist/cjs/icons/sports.js.map +1 -0
  42. package/dist/cjs/icons/sustainability.js +193 -0
  43. package/dist/cjs/icons/sustainability.js.map +1 -0
  44. package/dist/cjs/icons/travel.js +184 -0
  45. package/dist/cjs/icons/travel.js.map +1 -0
  46. package/dist/cjs/index.js +265 -2
  47. package/dist/cjs/index.js.map +1 -1
  48. package/dist/cjs/lottieIntegration.js +286 -0
  49. package/dist/cjs/lottieIntegration.js.map +1 -0
  50. package/dist/cjs/nicetodev-icons.css +1 -1
  51. package/dist/cjs/particleEffects.js +259 -0
  52. package/dist/cjs/particleEffects.js.map +1 -0
  53. package/dist/cjs/resolver.js +224 -0
  54. package/dist/cjs/resolver.js.map +1 -0
  55. package/dist/cjs/tailwind-plugin.js +340 -0
  56. package/dist/cjs/tailwind-plugin.js.map +1 -0
  57. package/dist/cjs/types.js +38 -0
  58. package/dist/cjs/types.js.map +1 -1
  59. package/dist/cjs/variantProps.js +78 -0
  60. package/dist/cjs/variantProps.js.map +1 -0
  61. package/dist/esm/NtdIconBadge.js +370 -0
  62. package/dist/esm/NtdIconBadge.js.map +1 -0
  63. package/dist/esm/NtdIconMorph.js +381 -0
  64. package/dist/esm/NtdIconMorph.js.map +1 -0
  65. package/dist/esm/NtdStateMorph.js +174 -0
  66. package/dist/esm/NtdStateMorph.js.map +1 -0
  67. package/dist/esm/createIcon.js +53 -6
  68. package/dist/esm/createIcon.js.map +1 -1
  69. package/dist/esm/figmaSync.js +304 -0
  70. package/dist/esm/figmaSync.js.map +1 -0
  71. package/dist/esm/iconAnalytics.js +185 -0
  72. package/dist/esm/iconAnalytics.js.map +1 -0
  73. package/dist/esm/iconMetadata.js +510 -0
  74. package/dist/esm/iconMetadata.js.map +1 -0
  75. package/dist/esm/iconStyles.js +585 -0
  76. package/dist/esm/iconStyles.js.map +1 -0
  77. package/dist/esm/icons/accessibility.js +153 -0
  78. package/dist/esm/icons/accessibility.js.map +1 -0
  79. package/dist/esm/icons/ai.js +174 -0
  80. package/dist/esm/icons/ai.js.map +1 -0
  81. package/dist/esm/icons/brand.js +67 -1
  82. package/dist/esm/icons/brand.js.map +1 -1
  83. package/dist/esm/icons/education.js +193 -0
  84. package/dist/esm/icons/education.js.map +1 -0
  85. package/dist/esm/icons/food.js +180 -0
  86. package/dist/esm/icons/food.js.map +1 -0
  87. package/dist/esm/icons/gaming.js +174 -0
  88. package/dist/esm/icons/gaming.js.map +1 -0
  89. package/dist/esm/icons/index.js +31 -0
  90. package/dist/esm/icons/index.js.map +1 -0
  91. package/dist/esm/icons/legal.js +153 -0
  92. package/dist/esm/icons/legal.js.map +1 -0
  93. package/dist/esm/icons/realestate.js +193 -0
  94. package/dist/esm/icons/realestate.js.map +1 -0
  95. package/dist/esm/icons/science.js +183 -0
  96. package/dist/esm/icons/science.js.map +1 -0
  97. package/dist/esm/icons/sports.js +160 -0
  98. package/dist/esm/icons/sports.js.map +1 -0
  99. package/dist/esm/icons/sustainability.js +176 -0
  100. package/dist/esm/icons/sustainability.js.map +1 -0
  101. package/dist/esm/icons/travel.js +167 -0
  102. package/dist/esm/icons/travel.js.map +1 -0
  103. package/dist/esm/index.js +27 -5
  104. package/dist/esm/index.js.map +1 -1
  105. package/dist/esm/lottieIntegration.js +282 -0
  106. package/dist/esm/lottieIntegration.js.map +1 -0
  107. package/dist/esm/nicetodev-icons.css +1 -1
  108. package/dist/esm/particleEffects.js +257 -0
  109. package/dist/esm/particleEffects.js.map +1 -0
  110. package/dist/esm/resolver.js +221 -0
  111. package/dist/esm/resolver.js.map +1 -0
  112. package/dist/esm/tailwind-plugin.js +337 -0
  113. package/dist/esm/tailwind-plugin.js.map +1 -0
  114. package/dist/esm/types.js +37 -1
  115. package/dist/esm/types.js.map +1 -1
  116. package/dist/esm/variantProps.js +68 -0
  117. package/dist/esm/variantProps.js.map +1 -0
  118. package/dist/types/NtdIconBadge.d.ts +209 -0
  119. package/dist/types/NtdIconMorph.d.ts +183 -0
  120. package/dist/types/NtdStateMorph.d.ts +100 -0
  121. package/dist/types/client.d.ts +27 -0
  122. package/dist/types/design-tokens.d.ts +281 -0
  123. package/dist/types/figmaSync.d.ts +135 -0
  124. package/dist/types/headless-ui.d.ts +462 -0
  125. package/dist/types/iconAnalytics.d.ts +131 -0
  126. package/dist/types/iconMetadata.d.ts +123 -0
  127. package/dist/types/iconStyles.d.ts +104 -0
  128. package/dist/types/icons/accessibility.d.ts +39 -0
  129. package/dist/types/icons/ai.d.ts +43 -0
  130. package/dist/types/icons/brand.d.ts +4 -0
  131. package/dist/types/icons/education.d.ts +47 -0
  132. package/dist/types/icons/food.d.ts +45 -0
  133. package/dist/types/icons/gaming.d.ts +42 -0
  134. package/dist/types/icons/index.d.ts +12 -1
  135. package/dist/types/icons/legal.d.ts +39 -0
  136. package/dist/types/icons/realestate.d.ts +47 -0
  137. package/dist/types/icons/science.d.ts +45 -0
  138. package/dist/types/icons/sports.d.ts +41 -0
  139. package/dist/types/icons/sustainability.d.ts +43 -0
  140. package/dist/types/icons/travel.d.ts +43 -0
  141. package/dist/types/index.d.ts +28 -6
  142. package/dist/types/lottieIntegration.d.ts +173 -0
  143. package/dist/types/micro-interactions.d.ts +146 -0
  144. package/dist/types/microInteractions.d.ts +174 -0
  145. package/dist/types/particleEffects.d.ts +69 -0
  146. package/dist/types/resolver.d.ts +58 -0
  147. package/dist/types/rsc.d.ts +159 -0
  148. package/dist/types/tailwind-plugin.d.ts +100 -0
  149. package/dist/types/types.d.ts +100 -0
  150. package/dist/types/utilities.d.ts +221 -0
  151. package/dist/types/variantProps.d.ts +122 -0
  152. 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
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../../src/types.ts"],"sourcesContent":[null],"names":[],"mappings":"AA2LA;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;;AAgGlD;;;;;;;;;;;;;;;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;;;;;"}
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;;;;"}