ngxsmk-datepicker 2.2.3 → 2.2.6

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/README.md CHANGED
@@ -24,15 +24,15 @@
24
24
 
25
25
  ---
26
26
 
27
- **Last updated:** March 9, 2026 · **Current stable:** v2.2.3
27
+ **Last updated:** March 10, 2026 · **Current stable:** v2.2.6
28
28
 
29
29
  ### **Overview**
30
30
 
31
31
  **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.
32
32
 
33
- > **Stable Release**: `v2.2.3` is live! This release brings a **TypeScript Strictness Overhaul** (eliminating `any` types), **Cognitive Complexity & Linting Fixes** for Material integration, and improved **Test Coverage (~68.2%)**. It also fixes **appendToBody** popover positioning, datepicker-in-modal behavior, and touch interaction regressions. No breaking changes.
33
+ > **Stable Release**: `v2.2.6` is live! This release adds full **IANA Timezone Support** for "Today" calculation, resolves a critical bug where "Today" could become unselectable after late-day `minDate` initializations, and ensures high-performance date validation across all configurations.
34
34
  >
35
- > ⚠️ **Important**: Versions 2.0.10 and 2.0.11 are broken and have been unpublished. Please use v2.2.3 or later.
35
+ > ⚠️ **Important**: Versions 2.0.10 and 2.0.11 are broken and have been unpublished. Please use v2.2.6 or later.
36
36
 
37
37
  ---
38
38
 
@@ -590,7 +590,7 @@ The `locale` input controls all internationalization. It automatically formats m
590
590
 
591
591
  ### **Global Language Support**
592
592
 
593
- ngxsmk-datepicker v2.2.3 now features **full localization synchronization** for:
593
+ ngxsmk-datepicker v2.2.6 now features **full localization synchronization** for:
594
594
 
595
595
  - 🇺🇸 English (`en`)
596
596
  - 🇩🇪 German (`de`)
@@ -683,8 +683,11 @@ This library has been optimized for maximum performance:
683
683
 
684
684
  ## **🐛 Bug Fixes & Improvements**
685
685
 
686
- ### **Critical Updates in v2.2.3:**
686
+ ### **Critical Updates in v2.2.6:**
687
687
 
688
+ - ✅ **Timezone Support**: Added full support for IANA timezones in "Today" calculation.
689
+ - ✅ **Date Validation**: Fixed "Today" unselectable bug by normalizing `minDate` boundary checks.
690
+ - ✅ **Keyboard Shortcuts**: Updated "Today" selection shortcut to use timezone-aware calculation.
688
691
  - ✅ **Validation messages**: User-facing i18n strings for invalid date, min/max; `validationError` output and on-screen error display
689
692
  - ✅ **Calendar loading state**: Visual spinner + text and screen-reader announcement while calendar opens/generates
690
693
  - ✅ **Demo theme**: Light/dark theme toggle and system preference now correctly switch the demo UI
@@ -846,16 +849,16 @@ We welcome and appreciate contributions from the community! Whether it's reporti
846
849
 
847
850
  For a full list of changes, please refer to the [CHANGELOG.md](https://github.com/NGXSMK/ngxsmk-datepicker/blob/main/CHANGELOG.md) file.
848
851
 
849
- ### **v2.2.3** (Current Stable)
852
+ ### **v2.2.6** (Current Stable)
850
853
 
851
- - 🎉 **Version Update**: Updated to version 2.2.3.
854
+ - 🎉 **Version Update**: Updated to version 2.2.6.
852
855
  - ✨ **Key Updates**: Optimized loading times, refined mobile header layout, and improved dropdown accessibility.
853
856
  - ✅ **Stable Release**: Full synchronization of header components with `ViewEncapsulation.None`.
854
857
 
855
858
  ### **v1.9.24**
856
859
 
857
860
  - 🎉 **Version Update**: Updated to version 1.9.24
858
- - ✅ **Stable Release**: Version 2.2.3 is the current stable version
861
+ - ✅ **Stable Release**: Version 2.2.6 is the current stable version
859
862
 
860
863
  ### **v1.9.23**
861
864
 
@@ -1311,3 +1314,4 @@ If you find this library helpful, please consider:
1311
1314
  - 💡 **Suggesting** new features
1312
1315
  - 🤝 **Contributing** code improvements
1313
1316
  - 📢 **Sharing** with the community
1317
+
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**: 2.2.3+ | **Last updated**: March 9, 2026
5
+ **Version**: 2.2.6+ | **Last updated**: March 10, 2026
6
6
 
7
7
  ## Stable vs experimental
8
8
 
@@ -2403,3 +2403,4 @@ For questions about the API:
2403
2403
  - Check the [README.md](../../README.md) for usage examples
2404
2404
  - Review the [documentation](./) for detailed guides
2405
2405
  - Open an issue on GitHub for questions
2406
+
@@ -1,6 +1,6 @@
1
1
  # Version Compatibility Matrix
2
2
 
3
- **Last updated:** March 9, 2026 · **Current stable:** v2.2.3
3
+ **Last updated:** March 10, 2026 · **Current stable:** v2.2.6
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
 
@@ -440,3 +440,4 @@ npm list @angular/core @angular/common @angular/forms
440
440
  ### Issue: Translations not working in SSR
441
441
  **Solution**: Translations work in SSR. Ensure locale is explicitly set if auto-detection fails on server.
442
442
 
443
+
@@ -1,6 +1,6 @@
1
1
  # Integration Guides
2
2
 
3
- **Last updated:** March 9, 2026 · **Current stable:** v2.2.3
3
+ **Last updated:** March 10, 2026 · **Current stable:** v2.2.6
4
4
 
5
5
  This document provides integration examples for using ngxsmk-datepicker with popular frameworks and libraries.
6
6
 
@@ -699,3 +699,4 @@ See the demo app **Integrations** page for a full "Datepicker in a modal" exampl
699
699
  - [Theme Guide](./THEME-TOKENS.md)
700
700
  - [Locale Guide](./LOCALE-GUIDE.md)
701
701
 
702
+
@@ -1,6 +1,6 @@
1
1
  # Ionic Framework Integration Guide
2
2
 
3
- **Last updated:** March 9, 2026 · **Current stable:** v2.2.3
3
+ **Last updated:** March 10, 2026 · **Current stable:** v2.2.6
4
4
 
5
5
  This guide provides step-by-step instructions for integrating ngxsmk-datepicker with Ionic Angular applications.
6
6
 
@@ -224,3 +224,4 @@ export class DatepickerPage {
224
224
  - [Ionic Theming](https://ionicframework.com/docs/theming/basics)
225
225
  - [Capacitor Keyboard Plugin](https://capacitorjs.com/docs/apis/keyboard)
226
226
 
227
+
@@ -1,6 +1,6 @@
1
1
  # Ionic Integration Testing Guide
2
2
 
3
- **Last updated:** March 9, 2026 · **Current stable:** v2.2.3
3
+ **Last updated:** March 10, 2026 · **Current stable:** v2.2.6
4
4
 
5
5
  This document provides comprehensive testing instructions for verifying ngxsmk-datepicker compatibility with Ionic Framework.
6
6
 
@@ -144,3 +144,4 @@ jobs:
144
144
  3. **Test in your Ionic app** with real use cases
145
145
  4. **Report issues** with detailed information
146
146
 
147
+
@@ -1,6 +1,6 @@
1
1
  # Locale Packs & i18n Contributor Guide
2
2
 
3
- **Last updated:** March 9, 2026 · **Current stable:** v2.2.3
3
+ **Last updated:** March 10, 2026 · **Current stable:** v2.2.6
4
4
 
5
5
  Guide for adding locale support and contributing translations to ngxsmk-datepicker.
6
6
 
@@ -296,3 +296,4 @@ If you encounter issues with a specific locale or want to contribute improvement
296
296
 
297
297
  **Thank you for contributing to ngxsmk-datepicker's internationalization!**
298
298
 
299
+
@@ -1,6 +1,6 @@
1
1
  # Plugin Architecture
2
2
 
3
- **Last updated:** March 9, 2026 · **Current stable:** v2.2.3
3
+ **Last updated:** March 10, 2026 · **Current stable:** v2.2.6
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
 
@@ -926,3 +926,4 @@ The plugin architecture in ngxsmk-datepicker provides:
926
926
 
927
927
  For more examples and detailed hook documentation, see [Extension Points Guide](./extension-points.md).
928
928
 
929
+
package/docs/SEO.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # SEO Optimization Guide
2
2
 
3
- **Last updated:** March 9, 2026 · **Current stable:** v2.2.3
3
+ **Last updated:** March 10, 2026 · **Current stable:** v2.2.6
4
4
 
5
5
  This document outlines the SEO optimizations implemented for ngxsmk-datepicker to improve search engine visibility and discoverability.
6
6
 
@@ -210,3 +210,4 @@ ngxsmk-datepicker has been optimized for search engines with comprehensive meta
210
210
  - [Twitter Cards](https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/abouts-cards)
211
211
  - [Web.dev SEO Guide](https://web.dev/learn/seo/)
212
212
 
213
+
@@ -1,6 +1,6 @@
1
1
  # Server-Side Rendering (SSR) Example
2
2
 
3
- **Last updated:** March 9, 2026 · **Current stable:** v2.2.3
3
+ **Last updated:** March 10, 2026 · **Current stable:** v2.2.6
4
4
 
5
5
  Complete example demonstrating ngxsmk-datepicker with Angular Universal (SSR).
6
6
 
@@ -423,3 +423,4 @@ test('datepicker works after SSR hydration', async ({ page }) => {
423
423
  - [SSR Best Practices](https://angular.io/guide/universal#best-practices)
424
424
  - [Platform Detection](https://angular.io/api/common/isPlatformBrowser)
425
425
 
426
+
@@ -1,6 +1,6 @@
1
1
  # Theme Tokens & CSS Custom Properties
2
2
 
3
- **Last updated:** March 9, 2026 · **Current stable:** v2.2.3
3
+ **Last updated:** March 10, 2026 · **Current stable:** v2.2.6
4
4
 
5
5
  Complete reference for all CSS custom properties (CSS variables) available in ngxsmk-datepicker.
6
6
 
@@ -320,3 +320,4 @@ CSS custom properties are supported in all modern browsers:
320
320
 
321
321
  For older browsers, consider using a CSS custom properties polyfill or provide fallback values.
322
322
 
323
+
package/docs/TIMEZONE.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Timezone Support
2
2
 
3
- **Last updated:** March 9, 2026 · **Current stable:** v2.2.3
3
+ **Last updated:** March 10, 2026 · **Current stable:** v2.2.6
4
4
 
5
5
  ## Overview
6
6
 
@@ -291,3 +291,4 @@ if (isValidTimezone('America/New_York')) {
291
291
  - For advanced operations, consider date-fns-tz or Luxon
292
292
  - Always send UTC timestamps to servers/APIs
293
293
 
294
+
@@ -1,6 +1,6 @@
1
1
  # Extension Points and Hooks
2
2
 
3
- **Last updated:** March 9, 2026 · **Current stable:** v2.2.3
3
+ **Last updated:** March 10, 2026 · **Current stable:** v2.2.6
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
 
@@ -415,3 +415,4 @@ import {
415
415
  } from 'ngxsmk-datepicker';
416
416
  ```
417
417
 
418
+
@@ -1,6 +1,6 @@
1
1
  # Signal Forms Integration
2
2
 
3
- **Last updated:** March 9, 2026 · **Current stable:** v2.2.3
3
+ **Last updated:** March 10, 2026 · **Current stable:** v2.2.6
4
4
 
5
5
  This guide covers using ngxsmk-datepicker with Angular 21+ Signal Forms API.
6
6
 
@@ -596,3 +596,4 @@ If `form().dirty()` returns `false` after selecting a date:
596
596
 
597
597
  4. **Check dev console warnings**: In development mode, the datepicker logs warnings if it falls back to direct signal mutation, which may not track dirty state correctly.
598
598
 
599
+
package/docs/signals.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Signals Integration Guide
2
2
 
3
- **Last updated:** March 9, 2026 · **Current stable:** v2.2.3
3
+ **Last updated:** March 10, 2026 · **Current stable:** v2.2.6
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
 
@@ -262,3 +262,4 @@ dateSignal = signal<DatepickerValue>(null);
262
262
 
263
263
  The datepicker supports both patterns simultaneously, so you can migrate gradually.
264
264
 
265
+
package/docs/ssr.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Server-Side Rendering (SSR) Guide
2
2
 
3
- **Last updated:** March 9, 2026 · **Current stable:** v2.2.3
3
+ **Last updated:** March 10, 2026 · **Current stable:** v2.2.6
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
 
@@ -301,3 +301,4 @@ export class SSRExampleComponent {
301
301
  - [Angular SSR Documentation](https://angular.dev/guide/ssr)
302
302
  - [Platform Detection](https://angular.dev/api/common/isPlatformBrowser)
303
303
 
304
+
package/package.json CHANGED
@@ -1,86 +1,86 @@
1
- {
2
- "name": "ngxsmk-datepicker",
3
- "version": "2.2.3",
4
- "author": {
5
- "name": "Sachin Dilshan",
6
- "url": "https://www.linkedin.com/in/sachindilshan/"
7
- },
8
- "peerDependencies": {
9
- "@angular/common": ">=17.0.0 <24.0.0",
10
- "@angular/core": ">=17.0.0 <24.0.0",
11
- "@angular/forms": ">=17.0.0 <24.0.0",
12
- "luxon": "^3.0.0"
13
- },
14
- "peerDependenciesMeta": {
15
- "zone.js": {
16
- "optional": true
17
- },
18
- "@angular/material": {
19
- "optional": true
20
- },
21
- "@angular/cdk": {
22
- "optional": true
23
- }
24
- },
25
- "dependencies": {
26
- "tslib": "^2.3.0"
27
- },
28
- "main": "fesm2022/ngxsmk-datepicker.mjs",
29
- "module": "fesm2022/ngxsmk-datepicker.mjs",
30
- "es2022": "fesm2022/ngxsmk-datepicker.mjs",
31
- "types": "types/ngxsmk-datepicker.d.ts",
32
- "typings": "types/ngxsmk-datepicker.d.ts",
33
- "homepage": "https://github.com/NGXSMK/ngxsmk-datepicker#readme",
34
- "repository": {
35
- "type": "git",
36
- "url": "git+https://github.com/NGXSMK/ngxsmk-datepicker.git"
37
- },
38
- "bugs": {
39
- "url": "https://github.com/NGXSMK/ngxsmk-datepicker/issues"
40
- },
41
- "sideEffects": false,
42
- "files": [
43
- "fesm2022/**/*.mjs",
44
- "**/*.d.ts",
45
- "**/*.metadata.json",
46
- "README.md",
47
- "LICENSE",
48
- "CHANGELOG.md",
49
- "MIGRATION.md",
50
- "docs/*.md",
51
- "!docs/**/*.png",
52
- "!docs/**/*.jpg",
53
- "!docs/**/*.gif",
54
- "styles/**/*.css"
55
- ],
56
- "keywords": [
57
- "angular",
58
- "datepicker",
59
- "date-range-picker",
60
- "calendar",
61
- "standalone-component",
62
- "angular-17",
63
- "angular-18",
64
- "angular-19",
65
- "angular-20",
66
- "angular-21",
67
- "typescript",
68
- "date-selection",
69
- "i18n",
70
- "localization"
71
- ],
72
- "optimization": {
73
- "treeShaking": true,
74
- "sideEffects": false,
75
- "usedExports": true
76
- },
77
- "engines": {
78
- "node": ">=20.19.0 || >=22.12.0",
79
- "npm": ">=10.0.0"
80
- },
81
- "exports": {
82
- "./styles/*": {
83
- "default": "./styles/*"
84
- }
85
- }
1
+ {
2
+ "name": "ngxsmk-datepicker",
3
+ "version": "2.2.6",
4
+ "author": {
5
+ "name": "Sachin Dilshan",
6
+ "url": "https://www.linkedin.com/in/sachindilshan/"
7
+ },
8
+ "peerDependencies": {
9
+ "@angular/common": ">=17.0.0 <24.0.0",
10
+ "@angular/core": ">=17.0.0 <24.0.0",
11
+ "@angular/forms": ">=17.0.0 <24.0.0",
12
+ "luxon": "^3.0.0"
13
+ },
14
+ "peerDependenciesMeta": {
15
+ "zone.js": {
16
+ "optional": true
17
+ },
18
+ "@angular/material": {
19
+ "optional": true
20
+ },
21
+ "@angular/cdk": {
22
+ "optional": true
23
+ }
24
+ },
25
+ "dependencies": {
26
+ "tslib": "^2.3.0"
27
+ },
28
+ "main": "fesm2022/ngxsmk-datepicker.mjs",
29
+ "module": "fesm2022/ngxsmk-datepicker.mjs",
30
+ "es2022": "fesm2022/ngxsmk-datepicker.mjs",
31
+ "types": "types/ngxsmk-datepicker.d.ts",
32
+ "typings": "types/ngxsmk-datepicker.d.ts",
33
+ "homepage": "https://github.com/NGXSMK/ngxsmk-datepicker#readme",
34
+ "repository": {
35
+ "type": "git",
36
+ "url": "git+https://github.com/NGXSMK/ngxsmk-datepicker.git"
37
+ },
38
+ "bugs": {
39
+ "url": "https://github.com/NGXSMK/ngxsmk-datepicker/issues"
40
+ },
41
+ "sideEffects": false,
42
+ "files": [
43
+ "fesm2022/**/*.mjs",
44
+ "**/*.d.ts",
45
+ "**/*.metadata.json",
46
+ "README.md",
47
+ "LICENSE",
48
+ "CHANGELOG.md",
49
+ "MIGRATION.md",
50
+ "docs/*.md",
51
+ "!docs/**/*.png",
52
+ "!docs/**/*.jpg",
53
+ "!docs/**/*.gif",
54
+ "styles/**/*.css"
55
+ ],
56
+ "keywords": [
57
+ "angular",
58
+ "datepicker",
59
+ "date-range-picker",
60
+ "calendar",
61
+ "standalone-component",
62
+ "angular-17",
63
+ "angular-18",
64
+ "angular-19",
65
+ "angular-20",
66
+ "angular-21",
67
+ "typescript",
68
+ "date-selection",
69
+ "i18n",
70
+ "localization"
71
+ ],
72
+ "optimization": {
73
+ "treeShaking": true,
74
+ "sideEffects": false,
75
+ "usedExports": true
76
+ },
77
+ "engines": {
78
+ "node": ">=20.19.0 || >=22.12.0",
79
+ "npm": ">=10.0.0"
80
+ },
81
+ "exports": {
82
+ "./styles/*": {
83
+ "default": "./styles/*"
84
+ }
85
+ }
86
86
  }