@nice2dev/icons 1.0.0

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 (132) hide show
  1. package/CHANGELOG.md +124 -0
  2. package/LICENSE +21 -0
  3. package/README.md +581 -0
  4. package/dist/cjs/NiceIconPicker.js +387 -0
  5. package/dist/cjs/NiceIconPicker.js.map +1 -0
  6. package/dist/cjs/NiceVectorEditor.js +675 -0
  7. package/dist/cjs/NiceVectorEditor.js.map +1 -0
  8. package/dist/cjs/animationControls.js +690 -0
  9. package/dist/cjs/animationControls.js.map +1 -0
  10. package/dist/cjs/createIcon.js +142 -0
  11. package/dist/cjs/createIcon.js.map +1 -0
  12. package/dist/cjs/figmaExport.js +288 -0
  13. package/dist/cjs/figmaExport.js.map +1 -0
  14. package/dist/cjs/icons/actions.js +257 -0
  15. package/dist/cjs/icons/actions.js.map +1 -0
  16. package/dist/cjs/icons/brand.js +128 -0
  17. package/dist/cjs/icons/brand.js.map +1 -0
  18. package/dist/cjs/icons/business.js +228 -0
  19. package/dist/cjs/icons/business.js.map +1 -0
  20. package/dist/cjs/icons/devtech.js +374 -0
  21. package/dist/cjs/icons/devtech.js.map +1 -0
  22. package/dist/cjs/icons/ecommerce.js +171 -0
  23. package/dist/cjs/icons/ecommerce.js.map +1 -0
  24. package/dist/cjs/icons/files.js +286 -0
  25. package/dist/cjs/icons/files.js.map +1 -0
  26. package/dist/cjs/icons/fintech.js +151 -0
  27. package/dist/cjs/icons/fintech.js.map +1 -0
  28. package/dist/cjs/icons/fun.js +124 -0
  29. package/dist/cjs/icons/fun.js.map +1 -0
  30. package/dist/cjs/icons/health.js +132 -0
  31. package/dist/cjs/icons/health.js.map +1 -0
  32. package/dist/cjs/icons/media.js +219 -0
  33. package/dist/cjs/icons/media.js.map +1 -0
  34. package/dist/cjs/icons/navigation.js +147 -0
  35. package/dist/cjs/icons/navigation.js.map +1 -0
  36. package/dist/cjs/icons/saas.js +141 -0
  37. package/dist/cjs/icons/saas.js.map +1 -0
  38. package/dist/cjs/icons/shapes.js +205 -0
  39. package/dist/cjs/icons/shapes.js.map +1 -0
  40. package/dist/cjs/icons/smarthome.js +141 -0
  41. package/dist/cjs/icons/smarthome.js.map +1 -0
  42. package/dist/cjs/icons/social.js +159 -0
  43. package/dist/cjs/icons/social.js.map +1 -0
  44. package/dist/cjs/icons/ui.js +262 -0
  45. package/dist/cjs/icons/ui.js.map +1 -0
  46. package/dist/cjs/icons/weather.js +187 -0
  47. package/dist/cjs/icons/weather.js.map +1 -0
  48. package/dist/cjs/index.js +362 -0
  49. package/dist/cjs/index.js.map +1 -0
  50. package/dist/cjs/nicetodev-icons.css +1 -0
  51. package/dist/cjs/smilAnimations.js +182 -0
  52. package/dist/cjs/smilAnimations.js.map +1 -0
  53. package/dist/cjs/types.js +47 -0
  54. package/dist/cjs/types.js.map +1 -0
  55. package/dist/esm/NiceIconPicker.js +385 -0
  56. package/dist/esm/NiceIconPicker.js.map +1 -0
  57. package/dist/esm/NiceVectorEditor.js +673 -0
  58. package/dist/esm/NiceVectorEditor.js.map +1 -0
  59. package/dist/esm/animationControls.js +680 -0
  60. package/dist/esm/animationControls.js.map +1 -0
  61. package/dist/esm/createIcon.js +140 -0
  62. package/dist/esm/createIcon.js.map +1 -0
  63. package/dist/esm/figmaExport.js +279 -0
  64. package/dist/esm/figmaExport.js.map +1 -0
  65. package/dist/esm/icons/actions.js +231 -0
  66. package/dist/esm/icons/actions.js.map +1 -0
  67. package/dist/esm/icons/brand.js +124 -0
  68. package/dist/esm/icons/brand.js.map +1 -0
  69. package/dist/esm/icons/business.js +209 -0
  70. package/dist/esm/icons/business.js.map +1 -0
  71. package/dist/esm/icons/devtech.js +342 -0
  72. package/dist/esm/icons/devtech.js.map +1 -0
  73. package/dist/esm/icons/ecommerce.js +154 -0
  74. package/dist/esm/icons/ecommerce.js.map +1 -0
  75. package/dist/esm/icons/files.js +254 -0
  76. package/dist/esm/icons/files.js.map +1 -0
  77. package/dist/esm/icons/fintech.js +136 -0
  78. package/dist/esm/icons/fintech.js.map +1 -0
  79. package/dist/esm/icons/fun.js +110 -0
  80. package/dist/esm/icons/fun.js.map +1 -0
  81. package/dist/esm/icons/health.js +118 -0
  82. package/dist/esm/icons/health.js.map +1 -0
  83. package/dist/esm/icons/media.js +195 -0
  84. package/dist/esm/icons/media.js.map +1 -0
  85. package/dist/esm/icons/navigation.js +132 -0
  86. package/dist/esm/icons/navigation.js.map +1 -0
  87. package/dist/esm/icons/saas.js +127 -0
  88. package/dist/esm/icons/saas.js.map +1 -0
  89. package/dist/esm/icons/shapes.js +182 -0
  90. package/dist/esm/icons/shapes.js.map +1 -0
  91. package/dist/esm/icons/smarthome.js +127 -0
  92. package/dist/esm/icons/smarthome.js.map +1 -0
  93. package/dist/esm/icons/social.js +150 -0
  94. package/dist/esm/icons/social.js.map +1 -0
  95. package/dist/esm/icons/ui.js +233 -0
  96. package/dist/esm/icons/ui.js.map +1 -0
  97. package/dist/esm/icons/weather.js +166 -0
  98. package/dist/esm/icons/weather.js.map +1 -0
  99. package/dist/esm/index.js +25 -0
  100. package/dist/esm/index.js.map +1 -0
  101. package/dist/esm/nicetodev-icons.css +1 -0
  102. package/dist/esm/smilAnimations.js +176 -0
  103. package/dist/esm/smilAnimations.js.map +1 -0
  104. package/dist/esm/types.js +44 -0
  105. package/dist/esm/types.js.map +1 -0
  106. package/dist/types/NiceIconPicker.d.ts +149 -0
  107. package/dist/types/NiceVectorEditor.d.ts +75 -0
  108. package/dist/types/animationControls.d.ts +307 -0
  109. package/dist/types/createIcon.d.ts +76 -0
  110. package/dist/types/figmaExport.d.ts +243 -0
  111. package/dist/types/icons/actions.d.ts +25 -0
  112. package/dist/types/icons/brand.d.ts +3 -0
  113. package/dist/types/icons/business.d.ts +25 -0
  114. package/dist/types/icons/devtech.d.ts +39 -0
  115. package/dist/types/icons/ecommerce.d.ts +16 -0
  116. package/dist/types/icons/files.d.ts +31 -0
  117. package/dist/types/icons/fintech.d.ts +14 -0
  118. package/dist/types/icons/fun.d.ts +13 -0
  119. package/dist/types/icons/health.d.ts +14 -0
  120. package/dist/types/icons/index.d.ts +17 -0
  121. package/dist/types/icons/media.d.ts +23 -0
  122. package/dist/types/icons/navigation.d.ts +14 -0
  123. package/dist/types/icons/saas.d.ts +13 -0
  124. package/dist/types/icons/shapes.d.ts +22 -0
  125. package/dist/types/icons/smarthome.d.ts +13 -0
  126. package/dist/types/icons/social.d.ts +18 -0
  127. package/dist/types/icons/ui.d.ts +28 -0
  128. package/dist/types/icons/weather.d.ts +20 -0
  129. package/dist/types/index.d.ts +69 -0
  130. package/dist/types/smilAnimations.d.ts +102 -0
  131. package/dist/types/types.d.ts +179 -0
  132. package/package.json +86 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,124 @@
1
+ # Changelog
2
+
3
+ All notable changes to `@nice2dev/icons` will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [1.0.0] - 2026-03-17
9
+
10
+ ### Added
11
+
12
+ #### Icon Library
13
+ - **350+ icons** across 21 categories (UI, Navigation, Media, Communication, Commerce, Files, Weather, Social, Arrows, Shapes, Devices, Finance, Health, Food, Travel, Sports, Animals, E-commerce, Fintech, SaaS, SmartHome)
14
+ - **DevTech Logo Icons:** Vite, Bun, Deno, Tauri, Svelte, Next.js, Astro, Qwik, SolidJS
15
+
16
+ #### Icon Variants
17
+ - `solid` — Filled icon shapes
18
+ - `outline` — Stroked paths only
19
+ - `duotone` — Two-tone rendering with background layer
20
+ - `flat` — Badge-style with colored background
21
+ - `sharp` — Solid with sharp corners (no rounded edges)
22
+ - `rounded` — Solid with extra-rounded corners
23
+ - `mini` — Compact, optimized for small sizes (12-16px)
24
+ - `3d` — Pseudo-3D with SVG filter shadows and highlights
25
+
26
+ #### Multi-Color System
27
+ - `primaryColor`, `secondaryColor`, `accentColor` props
28
+ - Per-color opacity controls (`primaryOpacity`, `secondaryOpacity`, `accentOpacity`)
29
+
30
+ #### Gradient Fills
31
+ - 12 gradient presets: `sunset`, `ocean`, `aurora`, `fire`, `forest`, `candy`, `steel`, `royal`, `neon`, `earth`, `ice`, `lava`
32
+ - Linear and radial gradient types
33
+ - Configurable gradient angle
34
+ - Gradient animations: `shift`, `spin`, `pulse`
35
+
36
+ #### CSS Animations
37
+ - **65+ CSS animations** organized in categories:
38
+ - Core transforms: spin, pulse, bounce, shake, float, flip, glow, wiggle, rubber, swing, tada, heartbeat
39
+ - Entrances: fade-in, slide-up/down/left/right, drop, rise, roll-in, materialize, vortex, meteor, scale-in, signature, draw-sequence, reveal, unfold, assemble, draw
40
+ - Exits: scale-out, fold, dissolve
41
+ - Organic: breathe, drift, orbit, sway, tilt, rock, pendulum, levitate, flap, skate
42
+ - Energetic: jello, pop, squeeze, crush, stretch, stomp, snap, twist, dash, surge
43
+ - Effects: flash, blink, flicker, vibrate, tremble, glitch, neon, earthquake
44
+ - Complex: wobble, spiral, warp, morph, zoom-pulse, ripple, radar
45
+ - Dramatic: ping, implode, explode, scatter, rotate-x, draw-loop
46
+
47
+ #### SMIL Animations (SVG-native)
48
+ - **25 SMIL animation types** as CSS alternative:
49
+ - spin, pulse, bounce, shake, float, flip, wiggle, heartbeat
50
+ - scale-pulse, grow, shrink, rubber, pop, fade, blink, glow
51
+ - slide-x, slide-y, orbit, wave, draw, draw-reverse, color-shift
52
+ - `SmilAnimationWrapper` component
53
+ - `generateSmilAnimation` utility function
54
+ - Configurable duration, easing, repeat count, delay
55
+
56
+ #### Animation Controls
57
+ - `AnimationController` component with play/pause/reset/goToStep
58
+ - `InteractiveIcon` component with trigger support:
59
+ - `hover` — animate on mouse enter/leave
60
+ - `click` — animate on click
61
+ - `focus` — animate on focus/blur
62
+ - `visible` — animate when scrolled into view (IntersectionObserver)
63
+ - Animation sequences (chain multiple animations)
64
+ - Preset sequences: attention, success, error, loading, celebrate, notification, gentle, reveal
65
+ - Preset interactions: hoverBounce, hoverPulse, hoverSpin, clickPop, clickTada, visibleFadeIn, visibleBounce
66
+
67
+ #### NiceIconPicker Component
68
+ - Searchable dropdown with category tabs
69
+ - Grid preview with configurable icon size
70
+ - Controlled selection (`value`/`onChange`)
71
+ - Multi-select mode (`multiSelect`, `values`, `onChangeMulti`)
72
+ - Maximum selection limit (`maxSelections`)
73
+ - Virtualization for 1000+ icons
74
+ - Favorites with localStorage persistence
75
+ - History of recently used icons
76
+ - **Drag & drop** to external applications (SVG data, JSON metadata)
77
+ - Keyboard navigation (Escape to close)
78
+ - Click-outside dismissal
79
+ - Clearable selection
80
+ - Imperative handle for programmatic control
81
+
82
+ #### Figma/Sketch Export
83
+ - `exportIconToSvgString()` — clean SVG string for Figma import
84
+ - `exportIconToDataUrl()` — base64 data URL
85
+ - `downloadIconAsSvg()` — browser download as SVG
86
+ - `downloadIconAsPng()` — browser download as PNG (with scale support)
87
+ - `copyIconToClipboard()` — copy SVG to clipboard
88
+ - `batchExportIcons()` — export multiple icons at once
89
+ - `generateFigmaPluginManifest()` — JSON manifest for Figma plugins
90
+ - Figma-compatible type definitions (FigmaVectorPath, FigmaIconFrame, etc.)
91
+
92
+ #### NiceVectorEditor Component
93
+ - Simple vector editor for creating custom icons
94
+ - Layer management (vector, text, image layers)
95
+ - SVG export functionality
96
+
97
+ #### Developer Experience
98
+ - `createIcon()` factory function for custom icons
99
+ - Full TypeScript with strict mode
100
+ - TSDoc documentation for all public APIs
101
+ - Zero runtime dependencies (React as peer)
102
+ - Rollup build (CJS + ESM bundles)
103
+ - Vitest for unit testing
104
+ - Storybook for documentation
105
+
106
+ ### Technical Details
107
+
108
+ - **Package name:** `@nice2dev/icons`
109
+ - **Peer dependencies:** React 18+
110
+ - **Bundle formats:** CommonJS (`dist/cjs`), ESM (`dist/esm`)
111
+ - **TypeScript:** Strict mode enabled
112
+ - **CSS:** BEM-style classes with CSS custom properties for theming
113
+
114
+ ---
115
+
116
+ ## [Unreleased]
117
+
118
+ ### Planned
119
+ - Figma / Sketch export plugin
120
+ - PNG sprite-sheet generation
121
+ - Icon font generation (TTF/WOFF2)
122
+ - Rollup plugin for tree-shaking analysis
123
+ - CDN standalone build
124
+ - Visual regression testing (Chromatic/Percy)
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 NiceToDev
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.