ngxsmk-datepicker 3.0.1-beta.1 → 3.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,13 +2,33 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
- **Last updated:** July 11, 2026 - **Current stable:** v2.4.0
5
+ **Last updated:** July 29, 2026 - **Current stable:** v3.0.3
6
6
 
7
7
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
8
8
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
9
9
 
10
10
  ## [Unreleased]
11
11
 
12
+ ## [3.0.3] - 2026-07-29
13
+
14
+ ### Added
15
+
16
+ - **Option to disable responsive layout**: Added `[responsive]` input on `ngxsmk-datepicker` (and `responsive?: boolean` in `DatepickerConfig`), defaulting to `true`. When set to `false`, viewport-based `@media (max-width: ...)` overrides are disabled, enabling fixed-size inline/embedded usage without viewport width affecting layout ([#299](https://github.com/NGXSMK/ngxsmk-datepicker/issues/299)).
17
+ - **Adjacent Month Days (`[showOtherMonths]`)**: Added `[showOtherMonths]` input option to display trailing and leading days from adjacent months in the 6-row calendar grid.
18
+ - **Enhanced WCAG 1.3.1 Weekday Headers**: Added `role="columnheader"` and localized full day name `aria-label`s on weekday header cells for screen reader accessibility.
19
+ - **Range Selection ARIA Announcements**: Added dynamic ARIA live region announcements (`startDateSelected`) when selecting range start dates.
20
+
21
+ ### Fixed
22
+
23
+ - **Year & Period Selection Logic**: Fixed year mode full-range selection, range disablement for `minDate`/`maxDate`, auto-close behavior in period modes (`year`, `month`, `quarter`, `week`), and UI selection highlighting.
24
+ - **Date-Time Preservation on Selection**: Preserved existing time (hours/minutes) when selecting a new date in date+time mode ([#30181](https://github.com/angular/components/issues/30181)).
25
+ - **DST Hour Mapping**: Fixed Luxon / Intl timezone hour mapping edge cases during Daylight Saving Time (DST) spring-forward/fall-back transitions ([#31803](https://github.com/angular/components/issues/31803)).
26
+ - **iOS Safari Background Scroll Lock**: Added automatic body scroll lock (`.ngxsmk-scroll-locked`) when popover overlay is open on touch devices ([#14938](https://github.com/angular/components/issues/14938)).
27
+ - **External Reset Selection Clearing**: Ensured memoized cell selection highlights clear immediately when external form value resets to `null` while calendar is open ([#29877](https://github.com/angular/components/issues/29877)).
28
+ - **Responsive CSS overrides & specificity**: Dropped `!important` flags from responsive `@media` rules in `datepicker.css` and scoped them under `.ngxsmk-datepicker-wrapper:not(.ngxsmk-no-responsive)` ([#299](https://github.com/NGXSMK/ngxsmk-datepicker/issues/299)).
29
+
30
+ ## [3.0.2] - 2026-07-24
31
+
12
32
  ### Added
13
33
 
14
34
  - **`ng add ngxsmk-datepicker` schematic**: installs the package, adds the missing `luxon` peer
package/MIGRATION.md CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  This document provides migration instructions for upgrading between major versions of ngxsmk-datepicker.
4
4
 
5
- **Last updated:** July 11, 2026 - **Current stable:** v2.4.0
5
+ **Last updated:** July 29, 2026 - **Current stable:** v3.0.3
6
6
 
7
7
  ## Table of Contents
8
8
 
9
- - [v2.4.0 → next release](#v240---next-release)
9
+ - [v2.4.0 → v3.0.3](#v240---v302)
10
10
  - [v2.2.15 → v2.3.1](#v2215---v231)
11
11
  - [v2.2.7 → v2.2.11](#v227---v228)
12
12
  - [v2.2.6 → v2.2.7](#v226---v227)
@@ -60,7 +60,7 @@ This document provides migration instructions for upgrading between major versio
60
60
  - [v1.8.0 → v1.9.0](#v180---v190)
61
61
  - [v1.7.0 → v1.8.0](#v170---v180)
62
62
 
63
- ## v2.4.0 → next release
63
+ ## v2.4.0 → v3.0.3
64
64
 
65
65
  ### Changes
66
66
 
package/README.md CHANGED
@@ -28,15 +28,15 @@
28
28
 
29
29
  ---
30
30
 
31
- **Last updated:** July 24, 2026 - **Current stable:** v3.0.0
31
+ **Last updated:** July 29, 2026 - **Current stable:** v3.0.3
32
32
 
33
33
  ### **Overview**
34
34
 
35
35
  **ngxsmk-datepicker** is a high-performance, enterprise-ready date and range picker engineered for the modern Angular ecosystem (v17+). Built from the ground up with **Angular Signals**, it delivers a seamless, zoneless-ready experience for both desktop and mobile (Ionic) applications.
36
36
 
37
- > **Stable Release**: `v3.0.0` is the current stable release with compiled `fesm2022` output and type declarations.
37
+ > **Stable Release**: `v3.0.3` is the current stable release with compiled `fesm2022` output and type declarations.
38
38
  >
39
- > **Stable line**: v2.3.x includes side-by-side **`calendars`**, **natural language input**, searchable **timezone selection dropdown UI**, dynamic range presets, and warning range highlighting. Versions **2.0.10** and **2.0.11** were broken and have been **unpublished**; use **v2.1.1+** or current **v3.0.0** on npm.
39
+ > **Stable line**: v2.3.x includes side-by-side **`calendars`**, **natural language input**, searchable **timezone selection dropdown UI**, dynamic range presets, and warning range highlighting. Versions **2.0.10** and **2.0.11** were broken and have been **unpublished**; use **v2.1.1+** or current **v3.0.3** on npm.
40
40
 
41
41
  ---
42
42
 
@@ -78,6 +78,8 @@
78
78
  ### **Advanced Functionality**
79
79
 
80
80
  - 📅 **Google Calendar Sync**: Built-in support for seamlessly syncing and displaying events natively from Google Calendar.
81
+ - 🗓️ **Adjacent Month Days (`showOtherMonths`)**: Display trailing and leading days from adjacent months in the calendar grid.
82
+ - 📐 **Responsive Control (`[responsive]`)**: Disable viewport max-width responsive overrides for fixed-width container embedding (#299).
81
83
  - 🌐 **8-Language i18n**: Full localization for `en`, `de`, `es`, `sv`, `ko`, `zh`, `ja`, and `fr`.
82
84
  - 🔢 **ISO Week Numbers**: Optional week-number column via `[showWeekNumbers]`.
83
85
  - ⌨️ **Guided Input Masking**: `[inputMask]` auto-inserts separators as users type (e.g. `12` → `12/`).
@@ -91,16 +93,23 @@
91
93
 
92
94
  ## Why this library?
93
95
 
94
- Use **ngxsmk-datepicker** when you want a focused **date / range picker** with strong **mobile**, **i18n**, **timezone**, and **SSR** story on **Angular 17+**, without adopting a full Material UI stack. It is a **standalone** component with **Luxon** as the single date peer (plus Angular).
96
+ Use **ngxsmk-datepicker** when you want an enterprise-grade **date / range picker** with strong **mobile**, **i18n**, **timezone**, **Ionic**, and **SSR** support on **Angular 17–22+**, without adopting a heavy Material UI stack or legacy Day.js dependencies.
95
97
 
96
- | | ngxsmk-datepicker | Angular Material datepicker |
97
- | --- | --- | --- |
98
- | **Fit** | Picker-first; optional Material/CDK peers for overlays only | Part of Material; best when you already use Material forms & CDK |
99
- | **Peer deps** | Angular + **Luxon** | **@angular/material** + **@angular/cdk** |
100
- | **Forms** | Template-driven, Reactive Forms, Signals; **Signal Forms** (`[field]`) on Angular 21+ | Reactive + template-driven; integrates with Material form field |
101
- | **Stack** | Tree-shakable package aimed at picker scenarios | Broader design system and bundle footprint |
98
+ ### Feature Comparison Matrix
102
99
 
103
- This is **not** a drop-in replacement for every Material datepicker API; choose based on whether you need **Material’s form-field ecosystem** or a **standalone picker** you can theme and ship with **zoneless** / **SSR** setups. See the [live demo](https://ngxsmk.github.io/ngxsmk-datepicker/) and [COMPATIBILITY](https://github.com/NGXSMK/ngxsmk-datepicker/blob/main/projects/ngxsmk-datepicker/docs/COMPATIBILITY.md) for details.
100
+ | Feature / Capability | ngxsmk-datepicker | Angular Material datepicker | vlio20/angular-datepicker |
101
+ | --- | --- | --- | --- |
102
+ | **Angular 17–22+ Signals Engine** | ⚡ Native Signals (0% Zone.js) | ⚠️ RxJS / Legacy ChangeDetector | ❌ Legacy Angular 15-18 |
103
+ | **Standalone Component & Zero CDK** | ✅ Yes (Lightweight ~127KB) | ❌ Requires `@angular/material` + `@angular/cdk` | ⚠️ Requires legacy CDK |
104
+ | **Mobile & Touch (Ionic 7/8+)** | 📱 Built-in Touch & Safe Area Insets | ⚠️ Mobile UI requires custom CSS | ❌ Poor Mobile / iOS support |
105
+ | **Date-Time Preservation (#30181)** | ✅ Preserves hours/minutes on click | ❌ Resets time on date click | ❌ No native time preservation |
106
+ | **Adjacent Month Days (`showOtherMonths`)** | ✅ Built-in input | ⚠️ Not supported natively | ⚠️ Partial support |
107
+ | **Fixed Container Control (`[responsive]`)** | ✅ Built-in input (#299) | ❌ Not supported | ❌ Not supported |
108
+ | **Signal Forms Native (`[field]`)** | ✅ Built-in (Angular 21+) | ❌ Not supported | ❌ Not supported |
109
+ | **Google Calendar Sync & Multi-Calendars** | ✅ Built-in | ❌ Requires custom code | ❌ Not supported |
110
+ | **SSR / Hydration Safety** | ✅ 100% Guarded (`DOCUMENT`) | ⚠️ Requires CDK SSR overlays | ❌ Window access errors |
111
+
112
+ This is **not** a heavy UI framework; it is a **standalone datepicker** engineered for maximum performance, accessibility, and theming flexibility. See the [live demo](https://ngxsmk.github.io/ngxsmk-datepicker/) and [COMPATIBILITY](https://github.com/NGXSMK/ngxsmk-datepicker/blob/main/projects/ngxsmk-datepicker/docs/COMPATIBILITY.md) for details.
104
113
 
105
114
  ## **🌐 Discoverability**
106
115
 
@@ -177,7 +186,7 @@ ng add ngxsmk-datepicker
177
186
  The `ng add` schematic installs the package, adds the `luxon` peer dependency if it is missing, and prints a getting-started snippet. Plain npm works too:
178
187
 
179
188
  ```bash
180
- npm install ngxsmk-datepicker@3.0.0
189
+ npm install ngxsmk-datepicker@3.0.3
181
190
  ```
182
191
 
183
192
  ### Alternative installation
@@ -186,12 +195,12 @@ You can install without npm using any of these methods (peer dependencies must s
186
195
 
187
196
  | Method | Command |
188
197
  |--------|--------|
189
- | **Yarn** | `yarn add ngxsmk-datepicker@3.0.0` |
190
- | **pnpm** | `pnpm add ngxsmk-datepicker@3.0.0` |
191
- | **Bun** | `bun add ngxsmk-datepicker@3.0.0` |
192
- | **From Git** | `npm install github:NGXSMK/ngxsmk-datepicker#v3.0.0` (requires the repo to have built output or you build from source) |
198
+ | **Yarn** | `yarn add ngxsmk-datepicker@3.0.3` |
199
+ | **pnpm** | `pnpm add ngxsmk-datepicker@3.0.3` |
200
+ | **Bun** | `bun add ngxsmk-datepicker@3.0.3` |
201
+ | **From Git** | `npm install github:NGXSMK/ngxsmk-datepicker#v3.0.3` (requires the repo to have built output or you build from source) |
193
202
  | **Local path** | Build the library in the repo (`npx ng build ngxsmk-datepicker`), then `npm install /path/to/ngxsmk-datepicker/dist/ngxsmk-datepicker` |
194
- | **CDN (ESM)** | Use [unpkg](https://unpkg.com/ngxsmk-datepicker@3.0.0/) or [jsDelivr](https://cdn.jsdelivr.net/npm/ngxsmk-datepicker@3.0.0/) in your bundler or import map; peer dependencies (Angular, etc.) must be installed in your app. |
203
+ | **CDN (ESM)** | Use [unpkg](https://unpkg.com/ngxsmk-datepicker@3.0.3/) or [jsDelivr](https://cdn.jsdelivr.net/npm/ngxsmk-datepicker@3.0.3/) in your bundler or import map; peer dependencies (Angular, etc.) must be installed in your app. |
195
204
 
196
205
  For all options and caveats, see [docs/INSTALLATION.md](docs/INSTALLATION.md).
197
206
 
@@ -919,7 +928,7 @@ We welcome and appreciate contributions from the community! Whether it's reporti
919
928
 
920
929
  ## **📄 Changelog**
921
930
 
922
- **Recent:** Use **v3.0.0** on npm. The v2.3.x line adds side-by-side multi-calendar layouts, natural language typing, timezone selector UI dropdown, warning style selections, and strict TypeScript/AOT stability. Versions 2.0.10 and 2.0.11 are unpublished; use v2.1.1+ or **v3.0.0**.
931
+ **Recent:** Use **v3.0.3** on npm. The v2.3.x line adds side-by-side multi-calendar layouts, natural language typing, timezone selector UI dropdown, warning style selections, and strict TypeScript/AOT stability. Versions 2.0.10 and 2.0.11 are unpublished; use v2.1.1+ or **v3.0.3**.
923
932
 
924
933
  For the full list of changes, see [CHANGELOG.md](https://github.com/NGXSMK/ngxsmk-datepicker/blob/main/CHANGELOG.md).
925
934
 
package/docs/API.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  This document describes the stable public API of ngxsmk-datepicker with comprehensive real-world examples. APIs marked as **stable** are guaranteed to remain backward-compatible within the same major version. APIs marked as **experimental** may change in future releases.
4
4
 
5
- **Version**: 3.0.0+ (includes unreleased `main` additions) | **Last updated**: July 24, 2026
5
+ **Version**: 3.0.3+ (includes unreleased `main` additions) | **Last updated**: July 24, 2026
6
6
 
7
7
  ## Stable vs experimental
8
8
 
@@ -60,6 +60,8 @@ import { NgxsmkDatepickerComponent } from 'ngxsmk-datepicker';
60
60
  | `locale` | `string` | `'en-US'` | Stable | Locale for formatting | `locale="de-DE"` or `[locale]="'fr-FR'"` |
61
61
  | `theme` | `'light' \| 'dark'` | `'light'` | Stable | Color theme | `[theme]="'dark'"` |
62
62
  | `inline` | `boolean \| 'always' \| 'auto'` | `false` | Stable | Inline display mode | `[inline]="true"` or `inline="auto"` |
63
+ | `showOtherMonths` | `boolean` | `false` | Stable | Display trailing and leading days from adjacent months in the 6-row calendar grid | `[showOtherMonths]="true"` |
64
+ | `responsive` | `boolean` | `true` | Stable | Enable/disable viewport max-width responsive layout rules | `[responsive]="false"` |
63
65
  | `showTime` | `boolean` | `false` | Stable | Show time selection | `[showTime]="true"` |
64
66
  | `timeOnly` | `boolean` | `false` | Stable | Display time picker only (no calendar). Automatically enables `showTime`. | `[timeOnly]="true"` |
65
67
  | `allowTyping` | `boolean` | `false` | Stable | Enable manual typing in the input field. Required for native validation. | `[allowTyping]="true"` |
@@ -1,6 +1,6 @@
1
- # Version Compatibility Matrix
1
+ # Version Compatibility Matrix
2
2
 
3
- **Last updated:** July 24, 2026 - **Current stable:** v3.0.0
3
+ **Last updated:** July 29, 2026 - **Current stable:** v3.0.3
4
4
 
5
5
  This document provides comprehensive compatibility information for `ngxsmk-datepicker` across different Angular versions, Zone.js configurations, and SSR/CSR setups.
6
6
 
@@ -1,6 +1,6 @@
1
- # Integration Guides
1
+ # Integration Guides
2
2
 
3
- **Last updated:** July 24, 2026 - **Current stable:** v3.0.0
3
+ **Last updated:** July 29, 2026 - **Current stable:** v3.0.3
4
4
 
5
5
  This document provides integration examples for using ngxsmk-datepicker with popular frameworks and libraries.
6
6
 
@@ -1,6 +1,6 @@
1
- # Ionic Framework Integration Guide
1
+ # Ionic Framework Integration Guide
2
2
 
3
- **Last updated:** July 24, 2026 - **Current stable:** v3.0.0
3
+ **Last updated:** July 29, 2026 - **Current stable:** v3.0.3
4
4
 
5
5
  This guide provides step-by-step instructions for integrating ngxsmk-datepicker with Ionic Angular applications.
6
6
 
@@ -1,6 +1,6 @@
1
- # Locale Packs & i18n Contributor Guide
1
+ # Locale Packs & i18n Contributor Guide
2
2
 
3
- **Last updated:** July 24, 2026 - **Current stable:** v3.0.0
3
+ **Last updated:** July 29, 2026 - **Current stable:** v3.0.3
4
4
 
5
5
  Guide for adding locale support and contributing translations to ngxsmk-datepicker.
6
6
 
@@ -1,6 +1,6 @@
1
- # Plugin Architecture
1
+ # Plugin Architecture
2
2
 
3
- **Last updated:** July 24, 2026 - **Current stable:** v3.0.0
3
+ **Last updated:** July 29, 2026 - **Current stable:** v3.0.3
4
4
 
5
5
  ngxsmk-datepicker features a powerful **plugin architecture** that allows you to extend and customize the component's behavior without modifying its core code. This architecture is built on a **hook-based system** that provides extension points throughout the component's lifecycle.
6
6
 
@@ -1,6 +1,6 @@
1
- # Server-Side Rendering (SSR) Example
1
+ # Server-Side Rendering (SSR) Example
2
2
 
3
- **Last updated:** July 24, 2026 - **Current stable:** v3.0.0
3
+ **Last updated:** July 29, 2026 - **Current stable:** v3.0.3
4
4
 
5
5
  Complete example demonstrating ngxsmk-datepicker with Angular Universal (SSR).
6
6
 
@@ -1,6 +1,6 @@
1
- # Theme Tokens & CSS Custom Properties
1
+ # Theme Tokens & CSS Custom Properties
2
2
 
3
- **Last updated:** July 24, 2026 - **Current stable:** v3.0.0
3
+ **Last updated:** July 29, 2026 - **Current stable:** v3.0.3
4
4
 
5
5
  Complete reference for all CSS custom properties (CSS variables) available in ngxsmk-datepicker.
6
6
 
package/docs/TIMEZONE.md CHANGED
@@ -1,6 +1,6 @@
1
- # Timezone Support
1
+ # Timezone Support
2
2
 
3
- **Last updated:** July 24, 2026 - **Current stable:** v3.0.0
3
+ **Last updated:** July 29, 2026 - **Current stable:** v3.0.3
4
4
 
5
5
  ## Overview
6
6
 
@@ -1,6 +1,6 @@
1
- # Extension Points and Hooks
1
+ # Extension Points and Hooks
2
2
 
3
- **Last updated:** July 24, 2026 - **Current stable:** v3.0.0
3
+ **Last updated:** July 29, 2026 - **Current stable:** v3.0.3
4
4
 
5
5
  ngxsmk-datepicker provides comprehensive extension points through the `hooks` input, allowing you to customize rendering, validation, keyboard shortcuts, formatting, and event handling.
6
6
 
@@ -1,6 +1,6 @@
1
- # Signal Forms Integration
1
+ # Signal Forms Integration
2
2
 
3
- **Last updated:** July 24, 2026 - **Current stable:** v3.0.0
3
+ **Last updated:** July 29, 2026 - **Current stable:** v3.0.3
4
4
 
5
5
  This guide covers using ngxsmk-datepicker with Angular 21+ Signal Forms API.
6
6
 
package/docs/signals.md CHANGED
@@ -1,6 +1,6 @@
1
- # Signals Integration Guide
1
+ # Signals Integration Guide
2
2
 
3
- **Last updated:** July 24, 2026 - **Current stable:** v3.0.0
3
+ **Last updated:** July 29, 2026 - **Current stable:** v3.0.3
4
4
 
5
5
  ngxsmk-datepicker is fully compatible with Angular Signals, providing seamless integration with both traditional reactive forms and modern signal-based patterns.
6
6
 
package/docs/ssr.md CHANGED
@@ -1,6 +1,6 @@
1
- # Server-Side Rendering (SSR) Guide
1
+ # Server-Side Rendering (SSR) Guide
2
2
 
3
- **Last updated:** July 24, 2026 - **Current stable:** v3.0.0
3
+ **Last updated:** July 29, 2026 - **Current stable:** v3.0.3
4
4
 
5
5
  ngxsmk-datepicker is fully compatible with Angular Universal and server-side rendering. This guide covers SSR setup, best practices, and troubleshooting.
6
6