1. v1.0.0 Latest release v1.0.0 ↗
    First stable release: production picker APIs and a complete package website
    • 📊Added analytics-ready range presets with sidebar and bottom layouts, active preset states, and optional Clear, Cancel, and Apply header actions.
    • 🌐Added injectable picker locales and exported locale, styling, preset, calendar adapter, and semantic class-name contracts for application-level customization.
    • 🧱Refactored picker state, popover disclosure, localization, and shared behavior into focused modules while preserving the public component surface.
    • 📅Hardened MemoryBsAdapter validation and ordinal date arithmetic across table boundaries, long months, and unsupported ranges.
    • Fixed uncontrolled typed-date commits and prevented disabled adjacent-month cells from receiving range highlighting or selection.
    • 🧪Expanded regression coverage to 177 passing tests across the adapter, single picker, range picker, locales, and dual-month behavior.
    • 📚Rebuilt the package website with responsive documentation, global keyboard search, contextual navigation, interactive demos, release notes, light-first theming, and accessible mobile controls.
  2. v0.3.0 commit d13ebf0 ↗
    Picker architecture, keyboard navigation, and flexible formatting
    • 🧩Refactored single and range pickers around shared state and utility modules, including the new pickerReducer, to reduce duplicated interaction logic.
    • ⌨️Added calendar-grid keyboard navigation and focus management with arrow keys, Enter/Space selection, focused-cell styling, and disabled-cell handling.
    • 📅Added configurable input formats through the exported DateFormat type, format-aware parsing, and generated native input patterns.
    • 🔄Improved controlled range synchronization and typed start/end date behavior, backed by new regression coverage.
    • Optimized MemoryBsAdapter.addDays by skipping whole years and months before processing the remaining days.
    • 🎨Reworked picker headers and design tokens for clearer responsive controls, focus states, and consistent dark-mode surfaces.
    • 🖥️Updated the live demo with selected single/range value readouts and rebuilt the browser UMD bundle for the release.
  3. v0.2.0 Breaking
    CSS externalized, bundle optimized, data flattened
    • ⚠️Breaking: CSS is no longer auto-injected. Add import 'bos-nepali-date/style' to your entry file. The UMD bundle now loads styles from a separate bos-nepali-date.css file.
    • 📦ESM bundle reduced from ~24 KB gzip to ~13 KB gzip by externalizing CSS (~46% savings on the JS bundle). CJS bundle similarly reduced.
    • Flattened bsMonthData from a Record to a compact readonly number[] array — smaller bundle and simpler offset-based access.
    • 🔧MemoryBsAdapter now accepts both flat arrays (preferred) and legacy Record-format year tables for backward compatibility.
    • 🧪Added 24 new unit tests for presets, onPanelChange, name prop, year range, and dual-month view. Total: 163 tests.
  4. v0.1.17
    Live demo & docs redesign
    • 🎨Redesigned docs site with DM Sans font, amber accent palette, and cleaner layout.
    • 🖥️Added live interactive demo on the homepage with language toggle and disable rules.
    • 📦Added UMD bundle for browser usage and live demos.
    • 🌙Dark mode toggle across all docs pages with system preference detection.
  5. v0.1.13
    Overflow-safe popover
    • Fix calendar popover clipping inside dialogs, drawers, cards, and other overflow-constrained containers.
    • 🔧Render the picker overlay through a portal and anchor it with viewport-aware fixed positioning.
    • 🔄Reposition the overlay on scroll and resize while keeping outside-click and keyboard dismissal behavior.
    • Added regression coverage for portaled popover rendering and outside-click handling.
  6. v0.1.11 Fix
    Font & popover sizing
    • 🔤Stop forcing Inter/system-ui as the default picker font — controls now inherit the host app font.
    • Fix incorrect Nepali glyph rendering on systems with problematic fallback fonts.
    • 📐Use a standard calendar popover width instead of stretching to the input width (adds --np-popover-min-width / --np-popover-max-width CSS variables).
  7. v0.1.9
    Optional input validation
    • ⚙️Make input pattern optional (inputPattern prop) — allows disabling native validation.
  8. v0.1.8
    Input pattern prop
    • Added inputPattern prop; set to false to remove native input pattern validation.
  9. v0.1.7
    Input styling & icon refresh
    • Added inputClassName for custom input styling.
    • 🔄Swapped caret for a calendar icon on the trigger button.
    • 📦Version bump for npm publish.
  10. v0.1.6 Feature
    Auto-injected CSS
    • 🎨Bundles now auto-inject CSS (no manual import needed).
    • 🔧Added tsup config to ensure styles are emitted as side effects.
  11. v0.1.1 Feature
    Localization & disable rules
    • 🌐Added localization (lang: 'en' | 'ne') with Nepali digits and labels.
    • Added disable rules — single date, date list, today, before/after.
    • ⌨️Input mask now normalizes Nepali digits and blocks non-numeric input.
    • 👁️Month/year selectors can be hidden while static labels still render.
    • Added Vitest + jsdom test suite with edge-case coverage.