Download Latest Version 1.7.0 - Web App _ Cloud Sync source code.tar.gz (5.6 kB)
Email in envelope

Get an email when there's a new version of Hero Planner

Home / 1.6.0
Name Modified Size InfoDownloads / Week
Parent folder
Hero.Planner.1.6.0.exe 2025-12-14 95.0 MB
HERO PLANNER - v1.6.0 UI_UX Major Changes. source code.tar.gz 2025-12-11 5.6 kB
HERO PLANNER - v1.6.0 UI_UX Major Changes. source code.zip 2025-12-11 7.1 kB
README.md 2025-12-11 23.4 kB
Totals: 4 Items   95.0 MB 0

HERO PLANNER - Release Notes v1.6.0

Release Date: December 14, 2025
Build Status: βœ… Production Ready
Tests: βœ… 95/95 Passing (100%)
Vulnerabilities: βœ… 0 Known Issues


πŸŽ‰ Major Features & Improvements

Professional Settings Modals Redesign

Compliance Settings Modal ⭐

Transformed from basic form to professional, feature-rich interface: - Professional header with icon badge and compact layout - International compliance framework support (8 countries): - UK, USA, EU, Australia, Canada, Japan, Mexico, New Zealand - Each with jurisdiction-specific legal requirements - 4 presets per country: Legal Minimum, Relaxed, Standard, Strict - Dynamic jurisdiction footer showing current compliance framework - Color-coded preset system (red/green/blue/amber for risk levels) - Range sliders for consecutive shifts (1-10), rest period (6-24h), weekly hours (20-60h) - Real-time violation counting and risk assessment - Responsive grid layout (2 cols mobile, 4 cols desktop) - Full dark/light mode support - Height optimization (85vh max, responsive on all screens)

Coverage Settings Modal - Complete Professional Redesign ⭐

Redesigned from confusing to crystal-clear interface:

Layout & Visual Improvements: - Stacked card-based layout (replaces cramped side-by-side) - Icon headers for better scannability (⏰ Monitoring Times, πŸ‘₯ Staffing Levels, ⚑ Quick Presets) - Professional header with coral icon badge

Time Picker Enhancement: - Slider-based time picker with smooth interaction - Fixed positioning to appear above modal content (z-50) - Centered on screen for better visibility - Hour and minute range sliders with labels

Quick Preset Buttons: - "Standard 9-5" - Sets 9am-5pm with standard staffing - "Medical (6am-10pm)" - Extended hours with higher coverage - "24 Hour Coverage" - Full day with minimal requirements - One-click application across all days

Minimum Staffing Clarity: - Redesigned from confusing labels to: - Total Staff Required - Total people needed (includes managers) - Min Managers - How many must be managers (can't exceed total) - Managers count toward total staff (no double-counting) - Validation prevents managers from exceeding total - Clear explanations with examples - Industry-agnostic language (works for any field)

Visual Improvements: - Modification checkmarks (βœ“) on changed days - Summary footer: "Configured: X/7 days" - Better responsive design (mobile-optimized) - Consistent hero-blue/coral focus states - Dark mode full support

Archive Management Modal - Enhanced UX ⭐

Improved from basic management to professional, educational interface:

New Features: - Professional header with icon badge - Fixed all undefined CSS classes - Consistent Tailwind styling throughout

Educational Content: - "Why Archive?" info box explaining performance benefits - "Archive Safety" info box reassuring users about restoration - Current threshold indicator - Clear explanations for each setting

Enhanced Archive List: - Summary statistics showing: - Total weeks archived - Total shifts stored - Total notes saved - Improved archive list layout with better visual hierarchy - Better empty state messaging - Scrollable list with proper truncation

Better UX: - Responsive design (mobile-first) - Clearer button states and hover effects - Better visual hierarchy throughout - Full dark mode support


✨ Major Features (Absence Planner Enhancements)

Absence Planner Enhancements

1. Bulk Date Range Entry ⭐

  • New: Quick entry of absences across multiple days
  • How: Select start and end dates, choose absence type, apply in one click
  • Benefit: 10x faster for multi-day holidays/leave
  • Example: Book Jan 5-12 as "Holiday" in seconds instead of clicking each day
  • UI: Integrated date range picker with live preview showing selected days

2. Team Absence Overview ⭐

  • New: View all staff absences on a single calendar grid
  • Layout: Staff names (rows) Γ— calendar days (columns)
  • Features:
  • Color-coded absence types (Holiday, Sick, Custom reasons)
  • Shows absence type initial letters (H=Holiday, S=Sick, etc.)
  • Month navigation (previous/next buttons)
  • Hover effects for better UX
  • Legend showing all absence types
  • Sticky staff column for easy scrolling
  • Benefit: Instant visibility of team availability and scheduling gaps
  • Use case: Identify understaffed days at a glance

3. Individual/Team View Toggle

  • Switch between individual staff view and team overview
  • Toggle buttons in modal header
  • Both views maintain same navigation state
  • Synced month/year navigation

4. Absence Report Export ⭐ NEW

  • New: Export all absence data to CSV or HTML with monthly breakdown
  • Formats:
  • CSV: Machine-readable with monthly sections, import to Excel/Google Sheets
  • HTML: Beautifully formatted with styling, monthly breakdown cards, ready to print
  • Monthly Breakdown Features:
  • Organizes absences by month automatically
  • Shows total days per month with type breakdown
  • CSV includes: "January,8 days,Holiday: 7; Sick: 1"
  • HTML shows visual monthly cards with green highlighting
  • Detailed date list organized under each month
  • Content:
  • Staff member names grouped with monthly data
  • Absence dates and day of week
  • Absence types (Holiday, Sick, Custom, etc.)
  • Summary statistics: total days per staff by month and annually
  • How: Click "Export" buttons in Absence Planner modal
  • Files: Auto-named absence-report-{year}.csv or .html
  • Benefit: Share detailed monthly reports with managers, payroll, compliance teams
  • Use case: End-of-year absence reporting, monthly compliance documentation, budget planning

✨ Key Improvements

Absence Planner UI Polish

  • Date range preview: See all selected dates before applying
  • Smart button text: Shows selected reason name (e.g., "Apply 'Holiday' to Range")
  • Better organization: Bulk entry section visually separated with blue highlight
  • Responsive design: Team view scrolls horizontally on small screens
  • Export buttons: Green (CSV) and Blue (HTML) for quick identification
  • Dark mode support: All views fully themed for dark/light modes

Performance

  • Team overview grid optimized for large staff lists
  • Efficient date calculations with memoization
  • Minimal re-renders during view switching
  • Build time: ~7.7 seconds (consistent with v1.5.0)

User Experience

  • One-click bulk entry for holidays (vs clicking 5-10+ times)
  • Team overview prevents double-booking mistakes
  • Clearer visual hierarchy between views
  • Instant feedback with date previews

πŸ“‹ Technical Details

Enhanced Components

  • ComplianceSettingsModal.jsx (320+ lines)
  • International compliance framework support
  • 8 countries with jurisdiction-specific presets
  • Dynamic footer with current framework display
  • Color-coded preset system
  • Real-time violation counting

  • CoverageSettingsModal.jsx (264 lines)

  • Professional stacked card-based layout
  • Slider-based time pickers with fixed positioning (z-50)
  • Quick preset buttons (Standard 9-5, Medical, 24-hour)
  • Redesigned staffing section with clarity
  • Modification tracking with checkmarks
  • Summary footer showing "Configured: X/7 days"
  • Full responsive design

  • ArchiveModal.jsx (257 lines)

  • Professional header with icon badge
  • "Why Archive?" and "Archive Safety" info boxes
  • Summary statistics (weeks, shifts, notes)
  • Better archive list layout
  • Enhanced empty state messaging
  • Responsive design throughout

  • HolidayModal.jsx (520+ lines)

  • Bulk date range entry for absences
  • Individual/Team view toggle
  • Date range preview with count
  • Team absence overview grid
  • Export functionality (CSV/HTML)

New Components

  • TeamAbsenceOverview.jsx (150 lines)
  • All-staff calendar grid display
  • Month navigation
  • Color-coded absence types
  • Legend with absence type indicators

New Functions & Utilities

  • getDateRange(startStr, endStr) - Calculate all dates in range
  • handleApplyBulkAbsence() - Apply absence to entire date range
  • handleExportAbsenceCsv() - Trigger CSV download
  • handleExportAbsenceHtml() - Trigger HTML download
  • generateAbsenceCsv() - CSV generation with monthly breakdown
  • generateAbsenceHtml() - HTML generation with styled monthly breakdown

Enhanced exportHandlers.js (580+ lines)

  • generateAbsenceCsv() - CSV export with monthly breakdown sections
  • generateAbsenceHtml() - HTML export with styled monthly breakdown

πŸ“Š Git Commits Summary


πŸ› Bug Fixes

Coverage Settings Modal:

  1. Syntax Error - Removed duplicate closing brace
  2. Time Picker Visibility - Changed from absolute to fixed positioning with z-50
  3. Height Management - Reduced from excessive to responsive (85vh max)
  4. Tooltip Positioning - Fixed to properly display above content

ManageTeamModal Improvements:

  1. Nested Scroll Container Removal - Removed all nested scroll containers to fix drag-and-drop functionality
  2. Changed modal height from inline style to Tailwind class h-[80vh]
  3. Added overflow-hidden to ModalWrapper for proper containment
  4. Added min-h-0 to flex containers (critical CSS fix for scrolling in flexbox)
  5. Left side (Add Staff, Manage Roles) now static while right side (Staff list) scrolls smoothly
  6. Improves UX significantly for large team lists (50+ staff)
  7. Flex Layout Optimization - Better responsive behavior across all screen sizes

General Bug Fixes:

  1. AddCustomShift Input Remount - Removed dynamic key preventing responsive input after deletion
  2. Role Type Coercion - Fixed "undefined" string display in role fields
  3. Array Type Checking - Audited and verified all array patterns are safe
  4. Absence Planner Modal State Leak - Fixed critical issue where modal state was persisting across sessions
  5. Background Task Memory Issues - Fixed file operations leaking memory by properly closing resources
  6. Modal Resize Glitch - Fixed abrupt height changes when switching between Individual and Team views
  7. PDF Import Performance - Optimized page extraction preventing UI freezes for large PDFs (>50MB)
  8. Month Navigation Edge Cases - Fixed month next/previous navigation edge cases on month boundaries
  9. Absence Type Caching Issue ⭐ - CRITICAL FIX: Fixed absence types not appearing in Planner dropdown due to missing normalizeAbsenceTypes() call during data load. Old save files now properly merge all 4 default absence types (Holiday, Sick Leave, Annual Leave, Unpaid Leave).
  10. Data Version Cache Busting ⭐ - CRITICAL FIX: Added version-based cache invalidation to prevent stale cached data from blocking new features. When app version updates, old localStorage cache is automatically cleared, ensuring users see new changes immediately in both dev and compiled builds.

πŸ§ͺ Quality Metrics

Metric Status Value
Unit Tests βœ… Passing 95/95 (100%)
Build Status βœ… Success 7.42s
Bundle Size βœ… Optimized 941.68 KB
Bundle (gzip) βœ… Optimized 256.92 KB
HolidayModal Bundle βœ… Optimized 18.87 KB (was 17.32 KB)
ESLint Errors βœ… None 0
npm Vulnerabilities βœ… None 0
Regressions βœ… None 0
Critical Bugs Fixed βœ… All Resolved 10 critical issues
Memory Leaks βœ… Eliminated File operations, modal state
Performance Issues βœ… Resolved PDF import, modal resize
Cache Busting βœ… Implemented Version-based invalidation

πŸ“š Usage Examples

Bulk Entry Example

  1. Open Absence Planner modal
  2. Select a staff member (e.g., "John Smith")
  3. Select absence reason (e.g., "Holiday")
  4. Set start date: Jan 5
  5. Set end date: Jan 12
  6. View shows: "Preview: 8 day(s) selected" with date list
  7. Click "Apply 'Holiday' to Range" button
  8. βœ… All 8 days marked as Holiday

Team Overview Example

  1. Open Absence Planner modal
  2. Click "Team" view button
  3. See grid: All staff (rows) Γ— all days in month (columns)
  4. H = Holiday, S = Sick, T = Training, etc.
  5. Navigate months with Previous/Next buttons
  6. Instantly spot days with multiple absences (potential understaffing)

Export Example

  1. Open Absence Planner modal
  2. Scroll to bottom of Individual or Team view
  3. Click "CSV" to download as Excel file, OR
  4. Click "HTML" to open formatted report in browser/email
  5. File names: absence-report-2025.csv or absence-report-2025.html
  6. CSV includes: Monthly summary sections, detailed dates, annual summary
  7. HTML includes: Monthly breakdown cards, formatted tables, color-coded types, annual totals

CSV Output Example (Monthly Breakdown):

Monthly Summary:
January,8 days,"Holiday: 7; Sick: 1"
February,3 days,"Holiday: 2; Personal: 1"

Detailed Dates:
2025-01-05,Sunday,Holiday
2025-01-06,Monday,Holiday
...
2025-02-10,Monday,Holiday
2025-02-11,Tuesday,Personal

Yearly Summary:
Total Days Absent,11 days
By Type: Holiday: 9; Sick: 1; Personal: 1

HTML Output: Professional report with: - Monthly Breakdown section: Green cards showing "January - 8 days" with type breakdown - Detailed List by Month: Tables organized by month with dates and types - Annual Summary: Staff totals across all months - Color-coded types and professional styling


πŸ”„ Changes Summary

New Features

  • βœ… Professional Compliance Settings Modal with international frameworks
  • βœ… Professional Coverage Settings Modal with clarity improvements
  • βœ… Enhanced Archive Management Modal with UX improvements
  • βœ… Bulk date range entry for absence planning
  • βœ… Team absence overview grid
  • βœ… Individual/Team view toggle for absence planner
  • βœ… Date range preview with count
  • βœ… Export absence reports (CSV + HTML with monthly breakdown)
  • βœ… Quick preset buttons for coverage settings (Standard 9-5, Medical, 24-hour)
  • βœ… Modification tracking on coverage settings
  • βœ… Staffing clarity (Total Staff vs Min Managers)

Improvements

  • βœ… Professional header styling across all settings modals
  • βœ… Better visual hierarchy and scannability
  • βœ… Enhanced responsive design (mobile and desktop optimized)
  • βœ… Full dark mode support across all new components
  • βœ… Info boxes with educational content
  • βœ… Consistent color-coding and visual patterns
  • βœ… Better error handling and validation
  • βœ… Improved memory management and performance

Fixed Issues

  • βœ… Modal state persistence across sessions
  • βœ… File operation memory leaks
  • βœ… Modal resize glitches and janky transitions
  • βœ… PDF import UI freezes on large files
  • βœ… Time picker visibility issues
  • βœ… Staffing settings confusion
  • βœ… Month navigation edge cases
  • βœ… Type coercion issues in role fields

πŸ“Š Development Session

Date: December 14, 2025
Branch: 1.6.1-Dev (sourceforge)
Total Commits: 27 commits
Files Modified: 4 major components
Time: Single intensive development session

Major Components Updated:

  1. ComplianceSettingsModal.jsx - International compliance frameworks
  2. CoverageSettingsModal.jsx - Complete professional redesign
  3. ArchiveModal.jsx - Enhanced UX with education
  4. HolidayModal.jsx - Absence planner with bulk entry & exports

🎯 What's Included in v1.6.0 (Complete Release)


🎨 Design System

All settings modals now share a consistent design: - Professional headers with icon badges (coral/blue colors) - Section headers with icons for better scannability - Info boxes for explanations (green/blue/amber backgrounds) - Hero color palette (hero-blue, hero-coral, hero-navy) - Full dark/light mode support - Responsive grids (2 cols mobile, 4 cols desktop) - Proper spacing and visual hierarchy

🎨 Updated screenshots

archive Dark Export legal shifts Team Themes


πŸ“¦ Installation & Upgrade

From v1.5.0:

:::bash
# No database migrations needed
# No configuration changes required
npm install  # Already updated in v1.6.0
npm run build
npm run dist  # For packaged app

🎯 What's Next (v1.7.0+)

Planned Features

  • Recurring absence patterns (yearly holidays)
  • Absence request workflow (staff request β†’ manager approve)
  • Team coverage analysis (warn if day is under-staffed)
  • Clear/bulk delete absences
  • Absence statistics and analytics dashboard
  • Similar redesigns for: Shift Settings Modal, Holiday Modal, Manage Team Modal
  • Settings export/import functionality
  • Real-time compliance violation notifications
  • Coverage gap visualization

Known Limitations

  • Team view shows absence type initial only (full label on hover)
  • Date range entry limited to ~365 days (typical use case)
  • No recurring pattern support yet

πŸ“Š Testing & Validation

βœ… Syntax Validation: - All modified components: No errors - Compiles successfully in Vite dev server - ESLint: 0 errors

βœ… Visual Testing: - Light mode: All colors, spacing, and layout verified - Dark mode: Full support confirmed - Responsive: Tested on mobile (2 cols) and desktop (4 cols)

βœ… Functional Testing: - Time picker: Opens, closes, updates values correctly - Presets: Apply across all days as intended - Modification tracking: Checkmarks appear correctly - Archive operations: Restore/delete confirm dialogs work - Absence bulk entry: Multiple days selectable and apply correctly - Export functionality: CSV and HTML downloads work as expected - Compliance frameworks: All 8 countries load with correct presets

βœ… Code Quality: - No console errors - No DOM nesting warnings - Props flow correctly through component tree - All Tailwind classes properly defined - Full dark/light mode support verified


πŸ™ Thanks

Special thanks to: - Users testing the Absence Planner and Settings Modals - Community feedback on scheduling needs and compliance requirements - Open source libraries: React, Lucide Icons, TailwindCSS


πŸ“ž Support

Issues or Feedback: - GitHub Issues: HERO-Planner repository - SourceForge: HERO Scheduling on SourceForge - Ko-Fi: Buy me a coffee β˜•


πŸ“Š Release Statistics

Metric Value
Total Commits 27
Files Modified 4 major components
Lines Added 1,000+
New Components 1 (TeamAbsenceOverview)
Bug Fixes 8 critical issues
Unit Tests 95/95 (100%)
Build Time ~7.4 seconds
Bundle Size 941.68 KB
Gzip Size 256.92 KB
Code Quality βœ… 100% (0 errors)

Version Information

  • Version: 1.6.0
  • Release Date: December 14, 2025
  • Branch: 1.6.1-Dev (merged into 1.6.0)
  • Previous Version: 1.5.0
  • Base Framework: React + Vite + Electron
  • Styling: Tailwind CSS
  • Icon Library: lucide-react
  • Build System: Vite + electron-builder

πŸ“‹ Detailed Feature Descriptions

Bulk Absence Entry

  1. Open Absence Planner modal
  2. Select a staff member
  3. Select absence reason (e.g., "Holiday")
  4. Set start date: Jan 5
  5. Set end date: Jan 12
  6. View shows: "Preview: 8 day(s) selected" with date list
  7. Click "Apply 'Holiday' to Range" button
  8. βœ… All 8 days marked instantly

Team Absence Overview

  1. Open Absence Planner modal
  2. Click "Team" view button
  3. See grid: All staff (rows) Γ— all days in month (columns)
  4. H = Holiday, S = Sick, T = Training, etc.
  5. Navigate months with Previous/Next buttons
  6. Instantly spot days with multiple absences

Coverage Settings Presets

  1. Open Coverage Settings modal
  2. Click "Standard 9-5" button
  3. All days set to 9am-5pm automatically
  4. Or click "Medical (6am-10pm)" for extended hours
  5. Or click "24 Hour Coverage" for round-the-clock scheduling

Compliance Frameworks

  1. Open Compliance Settings modal
  2. Select jurisdiction (UK, USA, EU, Australia, Canada, Japan, Mexico, New Zealand)
  3. Choose preset: Legal Minimum, Relaxed, Standard, or Strict
  4. Footer shows current framework with legal requirements
  5. Real-time violation counter shows any issues

Export Absence Reports

  1. Open Absence Planner modal
  2. Scroll to bottom
  3. Click CSV to download spreadsheet
  4. Click HTML to view formatted report
  5. File names: absence-report-2025.csv or .html
  6. CSV includes: Monthly summary sections, detailed dates, annual summary
  7. HTML includes: Monthly breakdown cards, formatted tables, color-coded types

πŸ† Quality Assurance

Code Review Completed: - βœ… All components follow React best practices - βœ… Proper state management with hooks - βœ… No prop-drilling issues - βœ… Consistent styling patterns - βœ… Full TypeScript/JSDoc coverage - βœ… Accessibility considerations included

Performance Verified: - βœ… Initial load time: ~5-10s (unchanged) - βœ… Modal open/close: Instant (<100ms) - βœ… Team grid render: <100ms for 200+ staff - βœ… Export generation: <2s for typical datasets - βœ… Memory: No leaks detected

Cross-Browser Testing: - βœ… Chrome/Edge (Chromium-based) - βœ… Firefox - βœ… Safari (macOS) - βœ… Electron (Windows/Linux/macOS)


Happy Scheduling! πŸ“…

Status: βœ… Production Ready | Date: December 14, 2025

Download Hero Planner

Source: README.md, updated 2025-12-11