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 +39 -1
- package/MIGRATION.md +15 -3
- package/README.md +70 -21
- package/docs/API.md +3 -1
- package/docs/COMPATIBILITY.md +2 -2
- package/docs/INTEGRATION.md +2 -2
- package/docs/IONIC_INTEGRATION.md +2 -2
- package/docs/LOCALE-GUIDE.md +2 -2
- package/docs/PLUGIN-ARCHITECTURE.md +2 -2
- package/docs/SSR-EXAMPLE.md +2 -2
- package/docs/THEME-TOKENS.md +2 -2
- package/docs/TIMEZONE.md +2 -2
- package/docs/extension-points.md +2 -2
- package/docs/signal-forms.md +2 -2
- package/docs/signals.md +2 -2
- package/docs/ssr.md +2 -2
- package/fesm2022/ngxsmk-datepicker.mjs +743 -136
- package/package.json +1 -1
- package/types/ngxsmk-datepicker.d.ts +152 -7
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:**
|
|
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:**
|
|
5
|
+
**Last updated:** August 18, 2026 - **Current stable:** v3.0.4
|
|
6
6
|
|
|
7
7
|
## Table of Contents
|
|
8
8
|
|
|
9
|
-
- [
|
|
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
|
-
##
|
|
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
|
[](https://www.npmjs.com/package/ngxsmk-datepicker)
|
|
14
|
+
[](https://www.npmjs.com/package/ngxsmk-datepicker)
|
|
14
15
|
[](https://github.com/NGXSMK/ngxsmk-datepicker/actions/workflows/ci.yml)
|
|
15
16
|
[](https://angular.io/)
|
|
16
17
|
[](https://github.com/NGXSMK/ngxsmk-datepicker/blob/main/LICENSE)
|
|
18
|
+
[](https://whatsapp.com/channel/0029Vb8PWpz1XquUOnGPUM2p)
|
|
17
19
|
[](https://buymeacoffee.com/toozuuu)
|
|
18
20
|
[](https://bundlephobia.com/package/ngxsmk-datepicker)
|
|
19
21
|
[](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:**
|
|
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.
|
|
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.
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
190
|
-
| **pnpm** | `pnpm add ngxsmk-datepicker@3.0.
|
|
191
|
-
| **Bun** | `bun add ngxsmk-datepicker@3.0.
|
|
192
|
-
| **From Git** | `npm install github:NGXSMK/ngxsmk-datepicker#v3.0.
|
|
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.
|
|
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
|
|
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.
|
|
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.
|
|
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"` |
|
package/docs/COMPATIBILITY.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# Version Compatibility Matrix
|
|
1
|
+
# Version Compatibility Matrix
|
|
2
2
|
|
|
3
|
-
**Last updated:** July
|
|
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
|
|
package/docs/INTEGRATION.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# Integration Guides
|
|
1
|
+
# Integration Guides
|
|
2
2
|
|
|
3
|
-
**Last updated:** July
|
|
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
|
|
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
|
|
package/docs/LOCALE-GUIDE.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# Locale Packs & i18n Contributor Guide
|
|
1
|
+
# Locale Packs & i18n Contributor Guide
|
|
2
2
|
|
|
3
|
-
**Last updated:** July
|
|
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
|
|
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
|
|
package/docs/SSR-EXAMPLE.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# Server-Side Rendering (SSR) Example
|
|
1
|
+
# Server-Side Rendering (SSR) Example
|
|
2
2
|
|
|
3
|
-
**Last updated:** July
|
|
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
|
|
package/docs/THEME-TOKENS.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# Theme Tokens & CSS Custom Properties
|
|
1
|
+
# Theme Tokens & CSS Custom Properties
|
|
2
2
|
|
|
3
|
-
**Last updated:** July
|
|
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
package/docs/extension-points.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# Extension Points and Hooks
|
|
1
|
+
# Extension Points and Hooks
|
|
2
2
|
|
|
3
|
-
**Last updated:** July
|
|
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
|
|
package/docs/signal-forms.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# Signal Forms Integration
|
|
1
|
+
# Signal Forms Integration
|
|
2
2
|
|
|
3
|
-
**Last updated:** July
|
|
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
|
|
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
|
|
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
|
|