Skip to content

Commit 77315fc

Browse files
committed
Release v6.0.0 - Major feature expansion with slideshows and enhanced video support
- Complete slideshow system with navigation, thumbnails, auto-advance, keyboard nav, and touch support - Enhanced video support for HTML5 and iframe videos with responsive containers - Interactive documentation with modals for themes, animations, sizes, and button themes - Improved mobile/tablet support with responsive button sizing - 379 total tests (220 unit + 159 E2E) all passing - Comprehensive memory management and event cleanup improvements BREAKING CHANGES: - Media modals (images, videos, slideshows) now default to size: 'auto' instead of 'md' - Invalid themes return 'default' instead of false - Media modals default to noPadContent: true (no padding around content) - New slideshow and video API structure - See UPGRADE_GUIDE_V5_to_V6.md for migration details
1 parent f1e5ab3 commit 77315fc

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

73 files changed

+18314
-29108
lines changed

cursorrules renamed to .cursorrules

Lines changed: 33 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,15 @@
33
## Project Overview
44
jAlert is a jQuery plugin for creating modals, popups, lightboxes, and alerts. It's built with ES6+ and transpiled to ES5 for maximum browser compatibility.
55

6+
7+
## Chat responses
8+
Start each of your responses with: Yes, sir.
9+
610
## Build & Test Commands
7-
- Build: `npm run build`
11+
- Build: `npm run build` - only need to run this when changes are made to jAlert.js or jAlert.css
812
- Test: `npm test`
913
- E2E Tests: `npm run test:e2e`
14+
- Unit Tests: `npm run test:unit`
1015
- All Tests: `npm run test:all`
1116

1217
## Required Checks for Every Change
@@ -17,18 +22,27 @@ jAlert is a jQuery plugin for creating modals, popups, lightboxes, and alerts. I
1722
- Ensure all new features have proper test coverage
1823

1924
### 2. Documentation Requirements
20-
- Update index.html to maintain demos for each option
21-
- Document every setting and its default value
25+
- Update index.html to maintain documentation about features/options
26+
- Document every setting and its default value with the version where it was first introduced
27+
- Document discovered gotchas that would impact users
2228
- Update README.md for any development or release flow changes
2329

2430
### 3. Release Process
2531
- Rebuild the project before any release
26-
- Update CHANGELOG.md with new version details
27-
- Update README.md and index.html to reflect latest version
32+
- Rerun `test:all` and fix any issues
33+
- Add the new version to the changelog with any user-facing changes
34+
- Modify README.md as needed to reflect the latest - at a minimum, the npm button
35+
- Update index.html to reflect any changes to the options/features and the latest version content if it exists.
36+
- Bump the version in package.json
37+
- Commit
38+
- Push
39+
- Create tag
40+
- Create release on Github
41+
- NPM Publish
2842

2943
### 4. Compatibility & Quality
3044
- Maintain backwards compatibility with older versions
31-
- Ensure feature parity across versions
45+
- Ensure feature parody across versions
3246

3347
### 5. Accessibility & Mobile
3448
- Consider accessibility in all changes (ARIA attributes, keyboard navigation)
@@ -39,6 +53,9 @@ jAlert is a jQuery plugin for creating modals, popups, lightboxes, and alerts. I
3953
- Follow best practices and DRY principles
4054
- Make code extendable and extensible
4155
- Use consistent coding standards
56+
- Avoid hacks, arbitrary protections, and arbitrary values
57+
- Be concise and simple. Find the easiest path to a solution that will perform well
58+
- Optimize for performance when possible as long as the impact to maintainability isn't too high
4259

4360
### 7. User Experience
4461
- Provide all options for user control
@@ -50,15 +67,20 @@ jAlert is a jQuery plugin for creating modals, popups, lightboxes, and alerts. I
5067
- Main CSS: dist/jAlert.min.css
5168
- Source: src/jAlert.js, src/jAlert.css
5269
- Tests: tests/unit/, tests/e2e/, tests/visual/
70+
- Comprehensive demo: demo.html - used by tests
5371

5472
## Dependencies
5573
- jQuery >= 3.7.0 (peer dependency)
5674
- Node >= 14.0.0
5775
- NPM >= 6.0.0
5876

5977
## Browser Support
60-
- IE11+ (ES5 compatible)
61-
- Chrome 60+
62-
- Firefox 55+
63-
- Safari 12+
64-
- Edge 79+
78+
Minimum browser versions that should fully support this plugin:
79+
- Chrome: 30+
80+
- Firefox: 28+
81+
- Safari: 7+
82+
- Edge: 12+
83+
- Opera: 17+
84+
- Internet Explorer: 11 (with jQuery polyfills, but MutationObserver support is limited)
85+
Note:
86+
- IE10 and below are not fully supported due to missing ES5 features and MutationObserver.

CHANGELOG.md

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,84 @@
22

33
All notable changes to jAlert will be documented in this file.
44

5+
## [6.0.0] - 2025-07-03
6+
7+
### 🚀 Major Release - Complete Feature Overhaul
8+
9+
jAlert 6.0.0 represents a massive expansion with a complete slideshow system, enhanced video support, and comprehensive media handling capabilities. This release introduces significant new features while maintaining backward compatibility where possible.
10+
11+
### ✨ New Features
12+
13+
- **🎠 Complete Slideshow System**: Revolutionary slideshow functionality with advanced features
14+
- **Image Navigation**: Next/previous arrows, dot navigation, and number counters
15+
- **Video Support**: HTML5 videos and YouTube/Vimeo iframes within slideshows
16+
- **Thumbnail Navigation**: Drag-scrollable thumbnails with top/bottom positioning
17+
- **Auto-advance**: Configurable intervals with pause-on-hover functionality
18+
- **Keyboard Navigation**: Arrow key support with proper event cleanup
19+
- **Responsive Sizing**: Contain and cover modes for optimal image display
20+
- **Advanced Callbacks**: `onSlideChange`, `onBeforeSlideChange`, `onSlideshowEnd`, `onSlideshowLoop`, `onContentLoad`
21+
- **Loop Control**: Configurable looping with end-of-slideshow detection
22+
- **Preloading**: Background image preloading for faster navigation
23+
- **Touch Support**: Swipe gestures and touch-friendly controls for mobile devices
24+
25+
- **🎥 Enhanced Video Support**: Comprehensive HTML5 video and iframe handling
26+
- **HTML5 Video**: Full support for all video attributes (controls, autoplay, loop, mute, etc.)
27+
- **Responsive Containers**: Proper aspect ratio handling with fallback defaults
28+
- **Video Configuration**: Direct video object properties for complete video configuration
29+
- **Error Handling**: Robust loading and error states with graceful fallbacks
30+
- **Utility Functions**: `createHTML5Video()`, `createVideoContainer()`, `setupVideoEventHandlers()`
31+
- **YouTube/Vimeo**: Enhanced iframe support with responsive containers
32+
33+
- **🖼️ Improved Media Handling**: Enhanced image and iframe support
34+
- **Auto-sizing**: Intelligent sizing for images, videos, and slideshows
35+
- **Responsive Design**: Better mobile and tablet support
36+
- **Error States**: Improved error handling and user feedback
37+
- **Loader Positioning**: Better loading indicators and positioning
38+
39+
### 🔧 Technical Improvements
40+
41+
- **Performance**: Optimized slideshow rendering and video loading
42+
- **Memory Management**: Comprehensive event cleanup and timer management
43+
- **Error Handling**: Robust validation and fallback mechanisms
44+
- **Accessibility**: Enhanced ARIA attributes and keyboard navigation
45+
- **Mobile Support**: Touch-friendly controls and responsive layouts
46+
47+
### 🐛 Bug Fixes
48+
49+
- **Button Alias**: Fixed missing `buttons` alias for `btns` option - now both `buttons` and `btns` work identically
50+
- Added proper alias handling so `buttons: [...]` gets converted to `btns: [...]` internally
51+
- Updated unit tests to verify alias functionality works correctly
52+
- **Responsive Video**: Fixed extreme aspect ratio issues (450% padding-bottom)
53+
- **Event Cleanup**: Proper cleanup of slideshow timers and event handlers
54+
- **Theme Validation**: Invalid themes now return 'default' instead of false
55+
- **Size Defaults**: Media modals now default to 'auto' size for better UX
56+
- **Memory Leaks**: Comprehensive cleanup of MutationObserver and event listeners
57+
- **Button Sizing**: Enlarged buttons on all screen sizes for better touch interaction (8px 14px padding on desktop, 8px 10px on mobile)
58+
59+
### 📚 Documentation
60+
61+
- **Comprehensive API Documentation**: Complete slideshow and video API reference
62+
- **Interactive Demos**: 16 comprehensive demo sections with 200+ examples
63+
- **Test Coverage**: 205 unit tests, 153 E2E tests, and visual regression tests
64+
- **Migration Guide**: Detailed upgrade instructions for existing users
65+
66+
### 🔄 Breaking Changes
67+
68+
- **Default Size Behavior**: Media modals (images, videos, slideshows) now default to `size: 'auto'`
69+
- **Theme Validation**: Invalid themes now return `'default'` instead of `false`
70+
- **Slideshow API**: New slideshow system with different options structure
71+
- **Video API**: Direct video object properties for HTML5 video configuration
72+
- **Default Padding Behavior**: All modals now default to `noPadContent: true` (no padding around content)
73+
74+
### Added
75+
- Video modals and slideshows now support an optional `embedType` property (`'iframe'` for YouTube/Vimeo, `'html5'` for direct video files). If not set, jAlert will auto-detect based on the video URL. If you set the wrong type, it will use what you specify.
76+
77+
### ✨ New Features
78+
79+
- **New Orange and Dark Orange Themes**: Added `orange` (bright, readable on light backgrounds) and `dark_orange` (deep orange, white text) themes for alerts and buttons. The `warningAlert` shortcut now uses the orange theme by default. If you want the old yellow warning, use `theme: 'yellow'`.
80+
81+
---
82+
583
## [5.0.5] - 2025-06-27
684

785
### 🛡️ Bug Fixes & Stability Improvements

README.md

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,43 @@
11
[![Join the chat at https://gitter.im/jAlert/Lobby](https://badges.gitter.im/jAlert/Lobby.svg)](https://gitter.im/jAlert/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
22
![License](https://img.shields.io/badge/License-MIT-blue.svg)
33
![Build](https://img.shields.io/badge/Build-Passing-green.svg)
4-
[![npm](https://img.shields.io/badge/NPM-v5.0.5-blue.svg)](https://npmjs.com/package/jAlert)
4+
[![npm](https://img.shields.io/badge/NPM-v6.0.0-blue.svg)](https://npmjs.com/package/jAlert)
55

66
# jAlert - The Ultimate jQuery Modal & Lightbox Plugin
77

8-
**🚀 Version 5.0.5 - Enhanced Stability!** A powerful, lightweight jQuery plugin for creating stunning modals, popups, lightboxes, and image slideshows. Perfect for modern web applications that need beautiful, accessible, and responsive dialogs.
9-
108
## ✨ Why Choose jAlert?
119

1210
**🎯 Perfect for jQuery Sites** - If you're already using jQuery, jAlert integrates seamlessly without adding bulky dependencies. No need to learn new frameworks or rewrite existing code.
1311

14-
**Lightning Fast** - Lightweight and optimized for performance. No bloat, just pure functionality.
12+
**Zero Config** - Include JS/CSS and add a modal immediately, no complicated setup.
1513

1614
**🎨 Beautiful by Default** - 12 built-in themes with smooth animations. Your modals will look professional out of the box.
1715

1816
**📱 Responsive Design** - Works perfectly on desktop, tablet, and mobile with touch-friendly controls and swipe gestures.
1917

2018
**♿ Basic Accessibility** - Keyboard navigation, screen reader support, and ARIA attributes for better usability.
2119

22-
**🔄 Backward Compatible** - Upgrading from older versions? Your existing code will work without changes.
23-
2420
## 🎯 When to Use jAlert
2521

2622
- **Simple Modal Needs** - Quick alerts, confirmations, or information dialogs
27-
- **Image Galleries** - Lightbox slideshows with navigation controls
23+
- **Image & Video Galleries** - Lightbox slideshows with navigation controls
2824
- **Content Previews** - Show videos, iframes, or AJAX content in modals
2925
- **Form Dialogs** - Login forms, contact forms, or any interactive content
3026
- **jQuery Projects** - Perfect addition to existing jQuery-based websites
3127
- **Quick Prototypes** - Get beautiful modals running in minutes, not hours
3228

29+
## Browser Compatibility
30+
31+
Minimum browser versions that should fully support this plugin:
32+
- Chrome: 30+
33+
- Firefox: 28+
34+
- Safari: 7+
35+
- Edge: 12+
36+
- Opera: 17+
37+
- Internet Explorer: 11 (with jQuery polyfills, but MutationObserver support is limited)
38+
39+
**Note:** IE10 and below are not fully supported due to missing ES5 features and MutationObserver.
40+
3341
## 🚀 Quick Start
3442

3543
### Installation
@@ -58,7 +66,11 @@ $.jAlert({
5866
// Image lightbox
5967
$.jAlert({
6068
image: 'path/to/image.jpg',
61-
title: 'Beautiful Image'
69+
});
70+
71+
// Video lightbox
72+
$.jAlert({
73+
video: 'https://embed.youtube.com/my-video',
6274
});
6375

6476
// Slideshow gallery
@@ -87,7 +99,7 @@ $.jAlert({
8799
- **AJAX** - Load dynamic content
88100

89101
### 🎭 **Beautiful Themes**
90-
12 built-in themes: `default`, `green`, `red`, `blue`, `yellow`, `brown`, `gray`, `black`, and dark variants.
102+
14 built-in themes: `default`, `green`, `red`, `blue`, `yellow`, `orange`, `brown`, `gray`, `black`, and dark variants (`dark_green`, `dark_red`, `dark_blue`, `dark_gray`, `dark_orange`).
91103

92104
### ⌨️ **Keyboard & Accessibility**
93105
- Full keyboard navigation (ESC, arrow keys)
@@ -114,7 +126,7 @@ $.jAlert({
114126
## 🔧 Requirements
115127

116128
- **jQuery 3.7.0+** (peer dependency)
117-
- **Modern browsers** (Chrome 60+, Firefox 55+, Safari 12+, Edge 79+, IE11+)
129+
- **Modern browsers** (see browser compatibility below)
118130

119131
## 🛠️ Development
120132

File renamed without changes.

0 commit comments

Comments
 (0)