@mgonza02/goal-image-gallery 1.0.5 โ 1.0.7
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 +261 -0
- package/README.md +14 -0
- package/lib/GoalImageGallery.js +1 -1
- package/lib/hooks/use-image-gallery.js +1 -1
- package/lib/styles/styled-components.js +3 -3
- package/package.json +2 -1
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to the GoalImageGallery project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [1.0.7] - 2025-07-14
|
|
9
|
+
### ๐งน Bug fix
|
|
10
|
+
- Fixed an issue with clipboard support detection in the `use-image-gallery` hook.
|
|
11
|
+
- Updated the `GoalImageGallery` component to ensure clipboard support is correctly passed as a prop.
|
|
12
|
+
- Removed unused clipboard support prop from the component to avoid confusion.
|
|
13
|
+
- Ensured consistent handling of clipboard support across all components.
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
## [1.0.6] - 2025-07-11
|
|
19
|
+
|
|
20
|
+
### ๐งน Optimization & Cleanup
|
|
21
|
+
- **Major Package Cleanup**: Removed 13 unused dependencies (73% reduction in devDependencies)
|
|
22
|
+
- **Removed ESLint Dependencies**: Eliminated `eslint`, `eslint-plugin-react`, `eslint-plugin-react-hooks`, `eslint-config-prettier`, `eslint-plugin-prettier`
|
|
23
|
+
- **Removed Testing Dependencies**: Eliminated `jest`, `@testing-library/jest-dom` (no test files exist)
|
|
24
|
+
- **Removed Build Tools**: Eliminated `@babel/eslint-parser`, `@babel/plugin-proposal-private-property-in-object`, `babel-preset-react-app`, `http-proxy-middleware`, `typescript`, `web-vitals`
|
|
25
|
+
- **Configuration Cleanup**: Removed `eslint.config.js` file
|
|
26
|
+
- **Script Optimization**: Streamlined npm scripts, removed unused test and lint commands
|
|
27
|
+
|
|
28
|
+
### ๐ Performance Improvements
|
|
29
|
+
- **Faster Installation**: ~50MB reduction in node_modules size
|
|
30
|
+
- **Reduced Bundle Size**: Eliminated unused dependencies
|
|
31
|
+
- **Build Performance**: Streamlined build process with essential packages only
|
|
32
|
+
- **Security**: Reduced vulnerability surface by removing unused packages
|
|
33
|
+
|
|
34
|
+
### ๐ง Technical Changes
|
|
35
|
+
- **Simplified Build**: Retained only essential build tools (`@babel/cli`, `@babel/core`, `@babel/preset-env`, `@babel/preset-react`, `prettier`)
|
|
36
|
+
- **Validation Process**: Updated validation to only check code formatting
|
|
37
|
+
- **Package Structure**: Maintained all core functionality while optimizing dependencies
|
|
38
|
+
|
|
39
|
+
### ๐ Documentation
|
|
40
|
+
- **Package Cleanup Summary**: Added detailed documentation of dependency cleanup process
|
|
41
|
+
- **Maintenance Guide**: Included recommendations for future package management
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## [1.0.5] - 2025-07-11
|
|
46
|
+
|
|
47
|
+
### ๐งน Initial Package Review
|
|
48
|
+
- **Dependency Analysis**: Comprehensive review of all packages for usage optimization
|
|
49
|
+
- **Build System**: Verified build process integrity after dependency changes
|
|
50
|
+
- **Code Quality**: Maintained formatting standards with Prettier
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## [1.0.4] - 2025-07-11
|
|
55
|
+
|
|
56
|
+
### ๐ Documentation Overhaul
|
|
57
|
+
- **Comprehensive README**: Complete rewrite with 600+ lines of detailed documentation
|
|
58
|
+
- **Implementation Guide**: New 1000+ line comprehensive implementation guide
|
|
59
|
+
- **Enhanced JSDoc**: Added 200+ lines of detailed component documentation
|
|
60
|
+
- **Usage Examples**: 50+ practical code examples for various use cases
|
|
61
|
+
|
|
62
|
+
### ๐จ Component Documentation
|
|
63
|
+
- **Props Reference**: Complete props documentation with types and examples
|
|
64
|
+
- **API Integration**: Examples for REST, GraphQL, and Firebase integration
|
|
65
|
+
- **Customization Guide**: Detailed slot system and custom component documentation
|
|
66
|
+
- **Performance Guide**: Optimization techniques and best practices
|
|
67
|
+
|
|
68
|
+
### ๐ง Technical Documentation
|
|
69
|
+
- **TypeScript Support**: Enhanced type definitions and examples
|
|
70
|
+
- **Testing Guide**: Unit and integration testing examples
|
|
71
|
+
- **Deployment Guide**: Build and deployment configurations
|
|
72
|
+
- **Troubleshooting**: Common issues and solutions
|
|
73
|
+
|
|
74
|
+
### ๐ Developer Experience
|
|
75
|
+
- **Quick Reference**: Updated quick reference guide with better organization
|
|
76
|
+
- **Multiple Guides**: Separate guides for different use cases and skill levels
|
|
77
|
+
- **Code Examples**: Real-world, production-ready examples
|
|
78
|
+
- **Best Practices**: Industry-standard patterns and recommendations
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## [1.0.3] - 2025-07-11
|
|
83
|
+
|
|
84
|
+
### ๐ NPM Publication & Scoped Package
|
|
85
|
+
- **Scoped Package**: Migrated to `@mgonza02/goal-image-gallery` for npm publication
|
|
86
|
+
- **Public Access**: Added `publishConfig` for public npm publishing
|
|
87
|
+
- **Package Metadata**: Enhanced description and keywords for better discoverability
|
|
88
|
+
- **Distribution**: Successfully published to npm registry
|
|
89
|
+
|
|
90
|
+
### ๐ง Build System
|
|
91
|
+
- **TypeScript Definitions**: Updated TypeScript definitions for new slot/slotProps features
|
|
92
|
+
- **Build Process**: Verified and optimized build pipeline
|
|
93
|
+
- **Package Files**: Organized package file structure for distribution
|
|
94
|
+
|
|
95
|
+
### ๐ Documentation Updates
|
|
96
|
+
- **Installation Guide**: Updated documentation with new package name
|
|
97
|
+
- **Usage Examples**: Added examples using the new scoped package
|
|
98
|
+
- **Migration Guide**: Provided migration instructions for existing users
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## [1.0.2] - 2025-07-11
|
|
103
|
+
|
|
104
|
+
### ๐จ UI/UX Enhancements
|
|
105
|
+
- **Slot System**: Implemented flexible slot system for custom components
|
|
106
|
+
- **Custom Image Selector**: Added support for custom image selector components
|
|
107
|
+
- **Enhanced Customization**: Improved component customization capabilities
|
|
108
|
+
- **SlotProps Support**: Added slotProps for passing custom props to slot components
|
|
109
|
+
|
|
110
|
+
### ๐ง Technical Improvements
|
|
111
|
+
- **Component Architecture**: Enhanced modular component design
|
|
112
|
+
- **Props Interface**: Expanded props interface for better flexibility
|
|
113
|
+
- **Type Safety**: Improved TypeScript support for slot system
|
|
114
|
+
- **API Consistency**: Standardized API patterns across components
|
|
115
|
+
|
|
116
|
+
### ๐ Documentation
|
|
117
|
+
- **Slot Documentation**: Added comprehensive slot system documentation
|
|
118
|
+
- **Customization Examples**: Provided practical customization examples
|
|
119
|
+
- **Advanced Usage**: Enhanced advanced usage documentation
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## [1.0.1] - 2025-07-11
|
|
124
|
+
|
|
125
|
+
### ๐ Bug Fixes & Stability
|
|
126
|
+
- **Build Issues**: Fixed Babel and ESLint configuration issues
|
|
127
|
+
- **Component Stability**: Resolved component rendering issues
|
|
128
|
+
- **Error Handling**: Improved error handling and user feedback
|
|
129
|
+
- **Performance**: Optimized component re-rendering
|
|
130
|
+
|
|
131
|
+
### ๐ง Technical Fixes
|
|
132
|
+
- **ESLint Configuration**: Fixed ESLint 9+ compatibility issues
|
|
133
|
+
- **Build Pipeline**: Resolved compilation issues
|
|
134
|
+
- **Dependencies**: Fixed peer dependency warnings
|
|
135
|
+
- **Module Resolution**: Improved module import/export handling
|
|
136
|
+
|
|
137
|
+
### ๐ Documentation
|
|
138
|
+
- **README Updates**: Enhanced README with better examples
|
|
139
|
+
- **API Documentation**: Improved API documentation clarity
|
|
140
|
+
- **Migration Guide**: Added migration instructions
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## [1.0.0] - 2025-07-11
|
|
145
|
+
|
|
146
|
+
### ๐ Initial Release
|
|
147
|
+
|
|
148
|
+
### ๐ผ๏ธ Core Features
|
|
149
|
+
- **Multi-Method Upload**: File selection, drag & drop, clipboard paste, and URL loading
|
|
150
|
+
- **Responsive Design**: Mobile-first, touch-friendly interface with Material Design 3
|
|
151
|
+
- **Advanced Image Viewer**: Full-screen modal with zoom controls (0.5x to 3x)
|
|
152
|
+
- **Keyboard Navigation**: Complete keyboard support with accessibility features
|
|
153
|
+
- **Image Management**: Upload, view, download, and delete capabilities
|
|
154
|
+
|
|
155
|
+
### ๐จ User Interface
|
|
156
|
+
- **Material-UI Integration**: Seamless integration with Material-UI components
|
|
157
|
+
- **Responsive Grid**: Adaptive grid layout for all screen sizes
|
|
158
|
+
- **Smooth Animations**: Hover effects, transitions, and loading states
|
|
159
|
+
- **Dark/Light Theme**: Automatic theme detection and support
|
|
160
|
+
- **Loading States**: Progress indicators and skeleton animations
|
|
161
|
+
|
|
162
|
+
### ๐ Image Viewer
|
|
163
|
+
- **Full-Screen Modal**: Immersive image viewing experience
|
|
164
|
+
- **Zoom Controls**: Smooth zoom transitions with mouse wheel support
|
|
165
|
+
- **Navigation**: Previous/next navigation with keyboard shortcuts
|
|
166
|
+
- **Download Support**: Direct image download functionality
|
|
167
|
+
- **Image Information**: Metadata display and image details
|
|
168
|
+
|
|
169
|
+
### โฟ Accessibility
|
|
170
|
+
- **WCAG 2.1 AA Compliance**: Full accessibility standard compliance
|
|
171
|
+
- **Keyboard Navigation**: Complete keyboard support for all features
|
|
172
|
+
- **Screen Reader Support**: Optimized for assistive technologies
|
|
173
|
+
- **ARIA Labels**: Proper accessibility labels and roles
|
|
174
|
+
- **Focus Management**: Intelligent focus handling and visual indicators
|
|
175
|
+
|
|
176
|
+
### ๐ ๏ธ Customization
|
|
177
|
+
- **Flexible Props**: Extensive configuration options
|
|
178
|
+
- **Custom Components**: Support for custom image selectors and components
|
|
179
|
+
- **Styling Options**: Material-UI theme integration and custom styling
|
|
180
|
+
- **Event Handlers**: Comprehensive callback system for custom logic
|
|
181
|
+
- **Permission System**: Fine-grained permission control
|
|
182
|
+
|
|
183
|
+
### ๐ฑ Mobile Support
|
|
184
|
+
- **Touch Gestures**: Swipe, pinch-to-zoom, and tap interactions
|
|
185
|
+
- **Mobile Optimization**: Optimized layouts and interactions for mobile devices
|
|
186
|
+
- **Camera Integration**: Direct camera access on mobile devices
|
|
187
|
+
- **Responsive Breakpoints**: Intelligent breakpoint handling
|
|
188
|
+
- **Performance**: Optimized for mobile performance and battery life
|
|
189
|
+
|
|
190
|
+
### ๐ง Technical Features
|
|
191
|
+
- **TypeScript Support**: Full TypeScript definitions and examples
|
|
192
|
+
- **Hook Architecture**: Reusable custom hooks for complex logic
|
|
193
|
+
- **Error Handling**: Comprehensive error handling and user feedback
|
|
194
|
+
- **Performance Optimized**: Lazy loading, efficient rendering, and memory management
|
|
195
|
+
- **Browser Support**: Modern browsers with graceful degradation
|
|
196
|
+
|
|
197
|
+
### ๐ Documentation
|
|
198
|
+
- **Comprehensive Guides**: Detailed documentation for all features
|
|
199
|
+
- **Code Examples**: Practical, copy-paste ready examples
|
|
200
|
+
- **API Reference**: Complete API documentation
|
|
201
|
+
- **Best Practices**: Industry-standard patterns and recommendations
|
|
202
|
+
- **Migration Guide**: Upgrade and migration instructions
|
|
203
|
+
|
|
204
|
+
### ๐ Development Experience
|
|
205
|
+
- **Modern Build System**: Babel-based build pipeline
|
|
206
|
+
- **Code Quality**: Prettier integration for consistent formatting
|
|
207
|
+
- **Modular Architecture**: Clean, maintainable component structure
|
|
208
|
+
- **Testing Ready**: Prepared for comprehensive testing implementation
|
|
209
|
+
- **Developer Tools**: Enhanced development and debugging experience
|
|
210
|
+
|
|
211
|
+
### ๐ Integration
|
|
212
|
+
- **REST API**: Examples and patterns for REST API integration
|
|
213
|
+
- **GraphQL**: GraphQL integration examples and best practices
|
|
214
|
+
- **Firebase**: Firebase Storage integration examples
|
|
215
|
+
- **Custom APIs**: Flexible API integration patterns
|
|
216
|
+
- **Authentication**: Support for various authentication methods
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## Installation
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
npm install @mgonza02/goal-image-gallery
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
## Basic Usage
|
|
227
|
+
|
|
228
|
+
```jsx
|
|
229
|
+
import { GoalImageGallery } from '@mgonza02/goal-image-gallery';
|
|
230
|
+
|
|
231
|
+
function App() {
|
|
232
|
+
return (
|
|
233
|
+
<GoalImageGallery
|
|
234
|
+
imageCodes={['img1', 'img2', 'img3']}
|
|
235
|
+
canEdit={true}
|
|
236
|
+
multiple={true}
|
|
237
|
+
showImageInfo={true}
|
|
238
|
+
allowDownload={true}
|
|
239
|
+
/>
|
|
240
|
+
);
|
|
241
|
+
}
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
## Links
|
|
245
|
+
|
|
246
|
+
- [NPM Package](https://www.npmjs.com/package/@mgonza02/goal-image-gallery)
|
|
247
|
+
- [GitHub Repository](https://github.com/mgonza02/goal-image-gallery)
|
|
248
|
+
- [Documentation](https://github.com/mgonza02/goal-image-gallery#readme)
|
|
249
|
+
- [Issues](https://github.com/mgonza02/goal-image-gallery/issues)
|
|
250
|
+
|
|
251
|
+
## License
|
|
252
|
+
|
|
253
|
+
MIT License - see [LICENSE](LICENSE) file for details.
|
|
254
|
+
|
|
255
|
+
## Contributing
|
|
256
|
+
|
|
257
|
+
Contributions are welcome! Please read our contributing guidelines and submit pull requests to our GitHub repository.
|
|
258
|
+
|
|
259
|
+
## Support
|
|
260
|
+
|
|
261
|
+
For questions, issues, or feature requests, please use the GitHub Issues page or contact the Goal Team.
|
package/README.md
CHANGED
|
@@ -1099,6 +1099,20 @@ When contributing to this component:
|
|
|
1099
1099
|
3. Update documentation
|
|
1100
1100
|
4. Test accessibility features
|
|
1101
1101
|
5. Verify mobile responsiveness
|
|
1102
|
+
6. Update [CHANGELOG.md](CHANGELOG.md) with your changes
|
|
1103
|
+
|
|
1104
|
+
## Version History & Changelog
|
|
1105
|
+
|
|
1106
|
+
For detailed information about changes, new features, and updates across versions, see [CHANGELOG.md](CHANGELOG.md).
|
|
1107
|
+
|
|
1108
|
+
### Recent Updates
|
|
1109
|
+
- **v1.0.6**: Major package cleanup and optimization
|
|
1110
|
+
- **v1.0.5**: Initial package review and dependency analysis
|
|
1111
|
+
- **v1.0.4**: Comprehensive documentation overhaul
|
|
1112
|
+
- **v1.0.3**: NPM publication and scoped package setup
|
|
1113
|
+
- **v1.0.2**: Slot system implementation and UI enhancements
|
|
1114
|
+
- **v1.0.1**: Bug fixes and stability improvements
|
|
1115
|
+
- **v1.0.0**: Initial release with core features
|
|
1102
1116
|
|
|
1103
1117
|
## License
|
|
1104
1118
|
|
package/lib/GoalImageGallery.js
CHANGED
|
@@ -378,7 +378,7 @@ const GoalImageGallery = _ref => {
|
|
|
378
378
|
allowDownload: allowDownload,
|
|
379
379
|
showImageInfo: showImageInfo,
|
|
380
380
|
loading: loading,
|
|
381
|
-
clipboardSupported: clipboardSupported,
|
|
381
|
+
clipboardSupported: !!clipboardSupported,
|
|
382
382
|
getImageUrl: getImageUrl,
|
|
383
383
|
noImageUrl: noImageUrl,
|
|
384
384
|
onImageClick: handleOpenImage,
|
|
@@ -185,7 +185,7 @@ export const useImageZoom = (getImageUrl, imageList) => {
|
|
|
185
185
|
export const useClipboard = (updatable, selectingImage, onPasteImage) => {
|
|
186
186
|
const [clipboardSupported, setClipboardSupported] = useState(false);
|
|
187
187
|
useEffect(() => {
|
|
188
|
-
setClipboardSupported(navigator.clipboard);
|
|
188
|
+
setClipboardSupported(!!navigator.clipboard);
|
|
189
189
|
}, []);
|
|
190
190
|
useEffect(() => {
|
|
191
191
|
const handlePaste = async event => {
|
|
@@ -70,10 +70,10 @@ export const StyledModalContainer = styled(Box)(_ref3 => {
|
|
|
70
70
|
isMobile
|
|
71
71
|
} = _ref3;
|
|
72
72
|
return {
|
|
73
|
-
top:
|
|
74
|
-
left:
|
|
73
|
+
top: '50%',
|
|
74
|
+
left: '50%',
|
|
75
|
+
transform: 'translate(-50%, -50%) !important',
|
|
75
76
|
position: 'absolute',
|
|
76
|
-
transform: 'translate(-50%, -50%)',
|
|
77
77
|
width: isMobile ? '95vw' : '90vw',
|
|
78
78
|
maxWidth: 1200,
|
|
79
79
|
height: isMobile ? '95vh' : '90vh',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mgonza02/goal-image-gallery",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.7",
|
|
4
4
|
"description": "Advanced, accessible, and highly customizable React image gallery component with multi-method upload, responsive design, and extensive TypeScript support",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib/index.js",
|
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
"files": [
|
|
34
34
|
"lib/",
|
|
35
35
|
"README.md",
|
|
36
|
+
"CHANGELOG.md",
|
|
36
37
|
"QUICK_REFERENCE.md",
|
|
37
38
|
"MIGRATION.md",
|
|
38
39
|
"IMPLEMENTATION_GUIDE.md",
|