Skip to content

Releases: davidesantangelo/numla

v1.4.0

11 Dec 14:46

Choose a tag to compare

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.json for app metadata and icons.
    • Added Service Worker (sw.js) for caching assets.
    • Added "Install" capability in supported browsers.

v1.3.2

07 Dec 08:50

Choose a tag to compare

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

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

04 Dec 19:11

Choose a tag to compare

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

04 Dec 15:14

Choose a tag to compare

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

04 Dec 13:02

Choose a tag to compare

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.NumberFormat and Intl.DateTimeFormat objects for number and date formatting
  • Extracted constants: MAX_INPUT_LENGTH and MAX_LINES moved 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

04 Dec 10:40

Choose a tag to compare

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

04 Dec 10:16

Choose a tag to compare

Added

  • CSS Unit Conversions: Full support for px, pt, em, and rem conversions

    • 16 px to pt → 12 pt
    • 12 pt to px → 16 px
    • 1 em to px → 16 px
    • 2 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

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

04 Dec 08:16

Choose a tag to compare

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_CURRENCIES array 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

04 Dec 07:57

Choose a tag to compare

Bug Fixes

  • Currency Conversion: Fixed a bug where currency conversion syntax like 1 eur usd was incorrectly interpreted as unit multiplication, resulting in squared units (e.g., 1.167 usd²). The calculator now correctly interprets X CURRENCY1 CURRENCY2 as a conversion request (X CURRENCY1 to CURRENCY2).

v1.1.1

04 Dec 07:53

Choose a tag to compare

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.
  • Visual Polish: Refined separator lines and borders across the application interface.