Releases: davidesantangelo/numla
Releases · davidesantangelo/numla
v1.4.0
Added
- Progressive Web App (PWA) Support:
- Numla is now installable on desktop and mobile.
- Offline support: The app works without an internet connection.
- Added
manifest.jsonfor app metadata and icons. - Added Service Worker (
sw.js) for caching assets. - Added "Install" capability in supported browsers.
v1.3.2
Fixed
- Line height synchronization in results display: Results now maintain proper vertical alignment with their corresponding input lines, especially for multi-line wrapped content
- Added
_measureLineHeights()method to accurately calculate the visual height of each input line - Results display now uses measured heights to ensure 1:1 visual correspondence with input lines
- Fixes misalignment issues that occurred when lines wrapped to multiple rows due to long content or narrow viewports
- Added
Changed
- Enhanced
renderResults()to apply dynamic height styling to result divs based on measured input line heights - Empty result lines now respect the same height constraints as content-filled lines for consistent spacing
v1.3.1
Performance
- Throttled Time Machine snapshots: Added 2-second minimum interval between saves to reduce localStorage churn, with automatic bypass for significant edits (15+ character changes)
- Smarter snapshot filtering: Skip duplicate content and reject edits smaller than 5 characters
- Auto-refresh currency rates: Force re-evaluation once live rates load so conversions update without requiring user input
Bug Fixes
- Fixed stale currency conversions not updating after rates loaded in background
- Prevented rapid-fire snapshots from identical or trivial text changes
v1.3.0
New Features
Time Machine
Never lose your work again! A brand new Time Machine feature that automatically saves snapshots of your notes as you type.
- Automatic snapshots — Saves versions as you make changes
- Full timestamps — See exactly when each version was created (date, time, and relative time)
- Full-screen preview — View the complete content before restoring with a clean, dedicated UI
- Keyboard navigation — Use
←→arrows to browse through versions - One-click restore — Instantly restore any previous version
- Word count display — See the word count for each snapshot
How to open:
- Press
⌘E(Mac) /Ctrl+E(Windows) - Or click the clock icon in the toolbar
UI Improvements
- Added Time Machine button to desktop toolbar with clock icon
- Added Time Machine button to mobile bottom bar
- New full-screen Time Machine panel with:
- Top bar showing version info and timestamp
- Scrollable content preview area
- Bottom timeline slider with keyboard hints
- Purple-themed restore button with glow effect
⌨️ New Keyboard Shortcuts
| Key | Action |
|---|---|
⌘E |
Open/Close Time Machine |
←/→ |
Navigate versions (in Time Machine) |
Documentation
- Updated README with Time Machine feature section
v1.2.1
Performance Improvements
Calculator Module (calculator.js)
- Pre-compiled regex patterns: Moved ~40 regex patterns to module-level constants to avoid recompilation on every calculation
- Format modifiers, currency patterns, scale patterns, percentage patterns, timezone patterns
- Cached formatters: Pre-instantiated
Intl.NumberFormatandIntl.DateTimeFormatobjects for number and date formatting - Extracted constants:
MAX_INPUT_LENGTHandMAX_LINESmoved to module scope
UI Module (ui.js)
- Pre-compiled highlighter patterns: Comment and variable assignment regex patterns cached at module level
- Optimized HTML escaping: Replaced 5 chained
.replace()calls with single regex + lookup map
v1.2.0: Add interactive onboarding tour with Driver.js
Added
-
Interactive Tour: Added an onboarding tour using Driver.js to guide new users through the app features
- Automatically starts on first visit
- Different step sequences for desktop (11 steps) and mobile (6 steps)
- Can be replayed anytime from the menu
-
More Menu: Replaced the GitHub icon with a modern dropdown menu
- New three-dot menu button with rounded corners
- Quick access to the interactive tour ("Quick Tour")
- Link to star the project on GitHub
- Keyboard shortcuts hint (⌘K Search · ⌘J New)
- Button changes style when menu is open
Dependencies
- Added
driver.js^1.4.0 for interactive tour functionality
v1.1.4
Added
-
CSS Unit Conversions: Full support for
px,pt,em, andremconversions16 px to pt→ 12 pt12 pt to px→ 16 px1 em to px→ 16 px2 rem to pt→ 24 pt
-
Math.js Integration Documentation: Comprehensive documentation for all math.js powered functions
- Statistics:
mean,median,std,variance,min,max,mode,sum - Combinatorics:
factorial/!,combinations,permutations,gcd,lcm,isPrime - Roots & Powers:
sqrt,cbrt,nthRoot,pow/^,exp - Logarithms:
log,log10,log2 - Trigonometry:
sin,cos,tan,asin,acos,atan - Rounding:
round,floor,ceil,abs,sign - Random:
random,randomInt - Constants:
pi,e,phi,tau
- Statistics:
Fixed
- CSS unit conversions now work correctly without interfering with volume units
- Volume units (
cu cm,cubic inches,cbm) no longer incorrectly convert to CSS units - Date parser no longer intercepts unit conversion expressions like
12 pt to px
v1.1.3
Performance Improvements
- Optimized tab rendering: Replaced O(n)
Array.find()lookups with O(1)Map.get()for faster tab bar rendering, especially noticeable with many notes open - Hoisted currency highlighting constants: Moved
HIGHLIGHT_CURRENCIESarray and regex to module scope, eliminating redundant object creation on every keystroke - Event delegation for results: Replaced per-item click listeners with a single delegated event handler on the results container, reducing memory allocations and preventing listener accumulation
Code Quality
- Reduced garbage collection pressure during typing and result rendering
- Improved memory efficiency when switching between notes
- Cleaner event listener management following modern JavaScript best practices
v1.1.2
Bug Fixes
- Currency Conversion: Fixed a bug where currency conversion syntax like
1 eur usdwas incorrectly interpreted as unit multiplication, resulting in squared units (e.g.,1.167 usd²). The calculator now correctly interpretsX CURRENCY1 CURRENCY2as a conversion request (X CURRENCY1 to CURRENCY2).
v1.1.1
UI/UX Improvements
- Enhanced Visibility: Increased contrast for text and icons in the top-right control bar to improve readability in both light and dark modes.
- Control Bar Styling: Updated the control bar border to be more defined and consistent.
- GitHub Button:
- Redesigned the GitHub repository link to be circular (
rounded-full). - Aligned height and styling with the main control bar for a cohesive look.
- Adjusted light mode appearance for better visual balance.
- Redesigned the GitHub repository link to be circular (
- Visual Polish: Refined separator lines and borders across the application interface.