ngxsmk-datepicker 3.0.2 → 3.0.4-beta.0

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,51 @@
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:** August 18, 2026 - **Current stable:** v3.0.4
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.4] - 2026-08-18
13
+
14
+ ### Added
15
+
16
+ - **Built-in Angular Reactive Forms Validators**: Added type-safe Angular `ValidatorFn` utilities exported in the public API:
17
+ - `ngxsmkMinDateValidator(minDate)`: Validates single dates, ranges, and multiple date arrays against a minimum date.
18
+ - `ngxsmkMaxDateValidator(maxDate)`: Validates dates against a maximum date.
19
+ - `ngxsmkDateRangeValidator(options)`: Validates minimum/maximum range duration (`minDays`, `maxDays`) and complete range requirements (`requireBoth`).
20
+ - `ngxsmkBlockedDatesValidator(blocked)`: Validates that selected dates/ranges do not intersect blocked or blacklisted dates.
21
+ - **Built-in Range Presets UI (`[showPresets]`)**: Added `[showPresets]` input signal to display standard presets (*Today*, *Yesterday*, *Last 7 Days*, *Last 30 Days*, *This Month*, *Last Month*) when in range mode.
22
+ - **Datepicker Overlay Service**: Added and exported `DatepickerOverlayService` for automated viewport collision detection, auto-flipping, and responsive positioning.
23
+ - **Accessibility & Reduced Motion**: Enhanced `@media (prefers-reduced-motion: reduce)` across all popovers, drawers, and overlay panels; added `role="grid"` and `role="gridcell"` attributes on Year/Decade views; added visible month span announcements for multi-calendar navigation.
24
+
25
+ ### Fixed
26
+
27
+ - **Month & Year Select Sync on Clear (Issue #311)**: Fixed issue where clearing a date and re-opening the calendar or navigating months caused header dropdowns to desynchronize with the rendered days grid ([#311](https://github.com/NGXSMK/ngxsmk-datepicker/issues/311)).
28
+ - **Performance Optimization**: Implemented precomputed timestamp `Set<number>` lookups ($O(1)$) for disabled dates and parsed ranges, eliminating per-cell string parsing overhead during calendar grid rendering.
29
+
30
+ ## [3.0.3] - 2026-07-29
31
+
32
+ ### Added
33
+
34
+ - **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)).
35
+ - **Adjacent Month Days (`[showOtherMonths]`)**: Added `[showOtherMonths]` input option to display trailing and leading days from adjacent months in the 6-row calendar grid.
36
+ - **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.
37
+ - **Range Selection ARIA Announcements**: Added dynamic ARIA live region announcements (`startDateSelected`) when selecting range start dates.
38
+
39
+ ### Fixed
40
+
41
+ - **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.
42
+ - **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)).
43
+ - **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)).
44
+ - **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)).
45
+ - **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)).
46
+ - **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)).
47
+
48
+ ## [3.0.2] - 2026-07-24
49
+
12
50
  ### Added
13
51
 
14
52
  - **`ng add ngxsmk-datepicker` schematic**: installs the package, adds the missing `luxon` peer
package/MIGRATION.md CHANGED
@@ -2,11 +2,12 @@
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:** August 18, 2026 - **Current stable:** v3.0.4
6
6
 
7
7
  ## Table of Contents
8
8
 
9
- - [v2.4.0 → next release](#v240---next-release)
9
+ - [v3.0.3 → v3.0.4](#v303---v304)
10
+ - [v2.4.0 → v3.0.3](#v240---v303)
10
11
  - [v2.2.15 → v2.3.1](#v2215---v231)
11
12
  - [v2.2.7 → v2.2.11](#v227---v228)
12
13
  - [v2.2.6 → v2.2.7](#v226---v227)
@@ -60,7 +61,18 @@ This document provides migration instructions for upgrading between major versio
60
61
  - [v1.8.0 → v1.9.0](#v180---v190)
61
62
  - [v1.7.0 → v1.8.0](#v170---v180)
62
63
 
63
- ## v2.4.0 → next release
64
+ ## v3.0.3 → v3.0.4
65
+
66
+ ### Changes
67
+
68
+ All new functionality is backwards-compatible and opt-in:
69
+ - **Built-in Reactive Forms Validators**: Added type-safe validators `ngxsmkMinDateValidator`, `ngxsmkMaxDateValidator`, `ngxsmkDateRangeValidator`, and `ngxsmkBlockedDatesValidator` in `@ngxsmk/datepicker` public API.
70
+ - **Built-in Range Presets (`[showPresets]`)**: Standard preset ranges for range picker mode (*Today*, *Yesterday*, *Last 7 Days*, *Last 30 Days*, *This Month*, *Last Month*).
71
+ - **Performance**: Precomputed lookup Set for disabled dates and parsed ranges, eliminating per-cell string parsing during calendar grid rendering.
72
+ - **Accessibility**: Reduced-motion styles across all overlay/drawer surfaces, and ARIA grid attributes for year/decade views.
73
+ - **Bug Fix**: Fixed Issue #311 (Month/year dropdowns desynchronize after clear).
74
+
75
+ ## v2.4.0 → v3.0.3
64
76
 
65
77
  ### Changes
66
78
 
package/README.md CHANGED
@@ -11,16 +11,18 @@
11
11
  ### _The Gold Standard for Premium Angular Calendar Selection_
12
12
 
13
13
  [![npm version](https://img.shields.io/npm/v/ngxsmk-datepicker.svg?style=flat-square&color=6d28d9)](https://www.npmjs.com/package/ngxsmk-datepicker)
14
+ [![npm downloads](https://img.shields.io/npm/dm/ngxsmk-datepicker.svg?style=flat-square)](https://www.npmjs.com/package/ngxsmk-datepicker)
14
15
  [![CI](https://img.shields.io/github/actions/workflow/status/NGXSMK/ngxsmk-datepicker/ci.yml?branch=main&label=CI&style=flat-square)](https://github.com/NGXSMK/ngxsmk-datepicker/actions/workflows/ci.yml)
15
16
  [![Angular](https://img.shields.io/badge/Angular-17%2B-DD0031.svg?style=flat-square&logo=angular)](https://angular.io/)
16
17
  [![License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](https://github.com/NGXSMK/ngxsmk-datepicker/blob/main/LICENSE)
18
+ [![WhatsApp Channel](https://img.shields.io/badge/WhatsApp-Channel-25D366?style=flat-square&logo=whatsapp&logoColor=white)](https://whatsapp.com/channel/0029Vb8PWpz1XquUOnGPUM2p)
17
19
  [![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-toozuuu-orange?style=flat-square&logo=buy-me-a-coffee)](https://buymeacoffee.com/toozuuu)
18
20
  [![Bundle Size](https://img.shields.io/badge/bundle-~127KB-success.svg?style=flat-square)](https://bundlephobia.com/package/ngxsmk-datepicker)
19
21
  [![Zoneless](https://img.shields.io/badge/Zoneless-Ready-blueviolet.svg?style=flat-square)](https://angular.dev/guide/zoneless)
20
22
 
21
23
  **`npm i ngxsmk-datepicker`**
22
24
 
23
- [Live demo](https://ngxsmk.github.io/ngxsmk-datepicker/) • [StackBlitz (repo)](https://stackblitz.com/github/NGXSMK/ngxsmk-datepicker) • [API docs](https://github.com/NGXSMK/ngxsmk-datepicker/blob/main/projects/ngxsmk-datepicker/docs/API.md) • [Issues](https://github.com/NGXSMK/ngxsmk-datepicker/issues) • [Buy me a coffee](https://buymeacoffee.com/toozuuu)
25
+ [Live demo](https://ngxsmk.github.io/ngxsmk-datepicker/) • [WhatsApp Channel](https://whatsapp.com/channel/0029Vb8PWpz1XquUOnGPUM2p) • [StackBlitz (repo)](https://stackblitz.com/github/NGXSMK/ngxsmk-datepicker) • [API docs](https://github.com/NGXSMK/ngxsmk-datepicker/blob/main/projects/ngxsmk-datepicker/docs/API.md) • [Issues](https://github.com/NGXSMK/ngxsmk-datepicker/issues) • [Buy me a coffee](https://buymeacoffee.com/toozuuu)
24
26
 
25
27
  *StackBlitz:* after it boots, run `npm install` then `npm start` in the terminal to serve the demo app (`demo-app`).
26
28
 
@@ -28,15 +30,15 @@
28
30
 
29
31
  ---
30
32
 
31
- **Last updated:** July 24, 2026 - **Current stable:** v3.0.0
33
+ **Last updated:** August 18, 2026 - **Current stable:** v3.0.4
32
34
 
33
35
  ### **Overview**
34
36
 
35
37
  **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
38
 
37
- > **Stable Release**: `v3.0.0` is the current stable release with compiled `fesm2022` output and type declarations.
39
+ > **Stable Release**: `v3.0.4` is the current stable release with compiled `fesm2022` output and type declarations.
38
40
  >
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.
41
+ > **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.4** on npm.
40
42
 
41
43
  ---
42
44
 
@@ -78,6 +80,8 @@
78
80
  ### **Advanced Functionality**
79
81
 
80
82
  - 📅 **Google Calendar Sync**: Built-in support for seamlessly syncing and displaying events natively from Google Calendar.
83
+ - 🗓️ **Adjacent Month Days (`showOtherMonths`)**: Display trailing and leading days from adjacent months in the calendar grid.
84
+ - 📐 **Responsive Control (`[responsive]`)**: Disable viewport max-width responsive overrides for fixed-width container embedding (#299).
81
85
  - 🌐 **8-Language i18n**: Full localization for `en`, `de`, `es`, `sv`, `ko`, `zh`, `ja`, and `fr`.
82
86
  - 🔢 **ISO Week Numbers**: Optional week-number column via `[showWeekNumbers]`.
83
87
  - ⌨️ **Guided Input Masking**: `[inputMask]` auto-inserts separators as users type (e.g. `12` → `12/`).
@@ -91,16 +95,23 @@
91
95
 
92
96
  ## Why this library?
93
97
 
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).
98
+ 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
99
 
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 |
100
+ ### Feature Comparison Matrix
102
101
 
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.
102
+ | Feature / Capability | ngxsmk-datepicker | Angular Material datepicker | vlio20/angular-datepicker |
103
+ | --- | --- | --- | --- |
104
+ | **Angular 17–22+ Signals Engine** | ⚡ Native Signals (0% Zone.js) | ⚠️ RxJS / Legacy ChangeDetector | ❌ Legacy Angular 15-18 |
105
+ | **Standalone Component & Zero CDK** | ✅ Yes (Lightweight ~127KB) | ❌ Requires `@angular/material` + `@angular/cdk` | ⚠️ Requires legacy CDK |
106
+ | **Mobile & Touch (Ionic 7/8+)** | 📱 Built-in Touch & Safe Area Insets | ⚠️ Mobile UI requires custom CSS | ❌ Poor Mobile / iOS support |
107
+ | **Date-Time Preservation (#30181)** | ✅ Preserves hours/minutes on click | ❌ Resets time on date click | ❌ No native time preservation |
108
+ | **Adjacent Month Days (`showOtherMonths`)** | ✅ Built-in input | ⚠️ Not supported natively | ⚠️ Partial support |
109
+ | **Fixed Container Control (`[responsive]`)** | ✅ Built-in input (#299) | ❌ Not supported | ❌ Not supported |
110
+ | **Signal Forms Native (`[field]`)** | ✅ Built-in (Angular 21+) | ❌ Not supported | ❌ Not supported |
111
+ | **Google Calendar Sync & Multi-Calendars** | ✅ Built-in | ❌ Requires custom code | ❌ Not supported |
112
+ | **SSR / Hydration Safety** | ✅ 100% Guarded (`DOCUMENT`) | ⚠️ Requires CDK SSR overlays | ❌ Window access errors |
113
+
114
+ 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
115
 
105
116
  ## **🌐 Discoverability**
106
117
 
@@ -177,7 +188,7 @@ ng add ngxsmk-datepicker
177
188
  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
189
 
179
190
  ```bash
180
- npm install ngxsmk-datepicker@3.0.0
191
+ npm install ngxsmk-datepicker@3.0.4
181
192
  ```
182
193
 
183
194
  ### Alternative installation
@@ -186,12 +197,12 @@ You can install without npm using any of these methods (peer dependencies must s
186
197
 
187
198
  | Method | Command |
188
199
  |--------|--------|
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) |
200
+ | **Yarn** | `yarn add ngxsmk-datepicker@3.0.4` |
201
+ | **pnpm** | `pnpm add ngxsmk-datepicker@3.0.4` |
202
+ | **Bun** | `bun add ngxsmk-datepicker@3.0.4` |
203
+ | **From Git** | `npm install github:NGXSMK/ngxsmk-datepicker#v3.0.4` (requires the repo to have built output or you build from source) |
193
204
  | **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. |
205
+ | **CDN (ESM)** | Use [unpkg](https://unpkg.com/ngxsmk-datepicker@3.0.4/) or [jsDelivr](https://cdn.jsdelivr.net/npm/ngxsmk-datepicker@3.0.4/) in your bundler or import map; peer dependencies (Angular, etc.) must be installed in your app. |
195
206
 
196
207
  For all options and caveats, see [docs/INSTALLATION.md](docs/INSTALLATION.md).
197
208
 
@@ -531,6 +542,38 @@ By default, the datepicker input is `readonly` to prevent invalid date strings a
531
542
  2. **Custom Validation Logic:**
532
543
  If you prefer the readonly behavior, ensure your form submission handler explicitly checks `form.invalid` before proceeding, as the browser won't stop the submit button click.
533
544
 
545
+ ### **Built-in Reactive Forms Validators**
546
+
547
+ `ngxsmk-datepicker` exports convenient, type-safe Angular `ValidatorFn` functions for standard form validation:
548
+
549
+ ```typescript
550
+ import { FormControl, FormGroup } from '@angular/forms';
551
+ import {
552
+ ngxsmkMinDateValidator,
553
+ ngxsmkMaxDateValidator,
554
+ ngxsmkDateRangeValidator,
555
+ ngxsmkBlockedDatesValidator
556
+ } from 'ngxsmk-datepicker';
557
+
558
+ const form = new FormGroup({
559
+ // Minimum date validator (Date, string, or dynamic factory)
560
+ arrivalDate: new FormControl(null, [ngxsmkMinDateValidator(new Date())]),
561
+
562
+ // Maximum date validator
563
+ departureDate: new FormControl(null, [ngxsmkMaxDateValidator(new Date(2026, 11, 31))]),
564
+
565
+ // Range validation: requires both dates, 2 to 14 days duration
566
+ tripRange: new FormControl(null, [
567
+ ngxsmkDateRangeValidator({ minDays: 2, maxDays: 14, requireBoth: true })
568
+ ]),
569
+
570
+ // Disallow weekends or specific blackout dates
571
+ bookingDate: new FormControl(null, [
572
+ ngxsmkBlockedDatesValidator((d: Date) => d.getDay() === 0 || d.getDay() === 6)
573
+ ]),
574
+ });
575
+ ```
576
+
534
577
  ## **⚙️ API Reference**
535
578
 
536
579
  ### **Inputs**
@@ -541,7 +584,8 @@ By default, the datepicker input is `readonly` to prevent invalid date strings a
541
584
  | inline | boolean \| 'always' \| 'auto' | false | Controls the display mode. `true` or `'always'` for inline, `'auto'` for responsive. |
542
585
  | locale | string | navigator.language | Sets the locale for language and regional formatting (e.g., 'en-US', 'de-DE'). |
543
586
  | theme | 'light' \| 'dark' | 'light' | The color theme. |
544
- | showRanges | boolean | true | If true, displays the predefined ranges panel when in 'range' mode. |
587
+ | showRanges | boolean | true | If true, displays custom predefined ranges panel when in 'range' mode. |
588
+ | showPresets | boolean | false | If true, displays standard quick presets (*Today*, *Yesterday*, *Last 7 Days*, *This Month*, etc.). |
545
589
  | minDate | DateInput | null | The earliest selectable date. |
546
590
  | maxDate | DateInput | null | The latest selectable date. |
547
591
  | isInvalidDate | (date: Date) => boolean | () => false | A function to programmatically disable specific dates. |
@@ -919,7 +963,7 @@ We welcome and appreciate contributions from the community! Whether it's reporti
919
963
 
920
964
  ## **📄 Changelog**
921
965
 
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**.
966
+ **Recent:** Use **v3.0.4** 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.4**.
923
967
 
924
968
  For the full list of changes, see [CHANGELOG.md](https://github.com/NGXSMK/ngxsmk-datepicker/blob/main/CHANGELOG.md).
925
969
 
@@ -951,15 +995,20 @@ The hosted **[live demo](https://ngxsmk.github.io/ngxsmk-datepicker/)** build sh
951
995
 
952
996
  - 📧 Email: [sachindilshan040@gmail.com](mailto:sachindilshan040@gmail.com)
953
997
  - 🐙 GitHub: [@toozuuu](https://github.com/toozuuu)
998
+ - 💬 WhatsApp Channel: [NGXSMK Channel](https://whatsapp.com/channel/0029Vb8PWpz1XquUOnGPUM2p)
954
999
  - 📦 NPM: [ngxsmk-datepicker](https://www.npmjs.com/package/ngxsmk-datepicker)
955
1000
  - 🌐 Website: [sachindilshan.com](https://www.sachindilshan.com/)
956
1001
  - 💼 LinkedIn: [sachindilshan](https://www.linkedin.com/in/sachindilshan/)
957
1002
 
958
- ## **⭐ Support**
1003
+ ## **⭐ Community & Support**
1004
+
1005
+ Stay connected and receive updates, release announcements, and tips via our official WhatsApp Channel:
1006
+ 👉 **[Join WhatsApp Channel](https://whatsapp.com/channel/0029Vb8PWpz1XquUOnGPUM2p)**
959
1007
 
960
1008
  If you find this library helpful, please consider:
961
1009
 
962
1010
  - ⭐ **Starring** the repository
1011
+ - 💬 **Joining** our [WhatsApp Channel](https://whatsapp.com/channel/0029Vb8PWpz1XquUOnGPUM2p)
963
1012
  - 🐛 **Reporting** bugs and issues
964
1013
  - 💡 **Suggesting** new features
965
1014
  - 🤝 **Contributing** code improvements
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