ngxsmk-datepicker 3.0.4-beta.0 → 3.0.5-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 +12 -2
- package/MIGRATION.md +13 -1
- package/README.md +11 -10
- package/docs/IONIC_INTEGRATION.md +33 -24
- package/fesm2022/ngxsmk-datepicker.mjs +475 -23
- package/package.json +1 -1
- package/styles/ionic-integration.css +57 -3
- package/types/ngxsmk-datepicker.d.ts +38 -5
package/CHANGELOG.md
CHANGED
|
@@ -2,12 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
-
**Last updated:** August
|
|
5
|
+
**Last updated:** August 22, 2026 - **Current stable:** v3.0.5
|
|
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
|
+
## [3.0.5] - 2026-08-22
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **Model Context Protocol (MCP) Server (`@ngxsmk/datepicker-mcp`)**: Standalone MCP server in `mcp-server/` with standardized date intelligence tools (`parse_date`, `calculate_date_range`, `convert_timezone`, `get_holidays`, `validate_date_selection`) and resource endpoints (`datepicker://docs/api`, `datepicker://timezones`) over standard I/O (stdio).
|
|
15
|
+
- **Datepicker UI AI Assistant Widget**: Added `[enableAi]`, `[aiPlaceholder]`, and `[aiResolver]` inputs with `(aiPromptSubmitted)` output on `<ngxsmk-datepicker>` allowing natural language prompt-based date selection with custom asynchronous backend support and automatic fallback parsing.
|
|
16
|
+
- **Developer Workspace Configurations**: Integrated `.vscode/mcp.json` (Cursor IDE), `.gemini/mcp_config.json` (Antigravity/Gemini CLI), and complete documentation in `docs/MCP_INTEGRATION.md`.
|
|
17
|
+
|
|
18
|
+
### Fixed
|
|
19
|
+
|
|
20
|
+
- **Focus Loss on Keyboard Navigation via Shortcuts (Issue #313)**: Fixed issue where keyboard shortcut navigation (`PageUp`, `PageDown`, `Shift+PageUp`, `Shift+PageDown`, `Home`, `End`, cross-month arrow navigation, and letter shortcuts) caused focus loss due to calendar grid re-rendering without restoring DOM focus. Now automatically refocuses the target date cell, updates `focusedDate` with day-clamping and validity fallback, and forwards body-appended popover keydown events seamlessly ([#313](https://github.com/NGXSMK/ngxsmk-datepicker/issues/313)).
|
|
11
21
|
|
|
12
22
|
## [3.0.4] - 2026-08-18
|
|
13
23
|
|
package/MIGRATION.md
CHANGED
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
This document provides migration instructions for upgrading between major versions of ngxsmk-datepicker.
|
|
4
4
|
|
|
5
|
-
**Last updated:** August
|
|
5
|
+
**Last updated:** August 22, 2026 - **Current stable:** v3.0.5
|
|
6
6
|
|
|
7
7
|
## Table of Contents
|
|
8
8
|
|
|
9
|
+
- [v3.0.4 → v3.0.5](#v304---v305)
|
|
9
10
|
- [v3.0.3 → v3.0.4](#v303---v304)
|
|
10
11
|
- [v2.4.0 → v3.0.3](#v240---v303)
|
|
11
12
|
- [v2.2.15 → v2.3.1](#v2215---v231)
|
|
@@ -61,6 +62,17 @@ This document provides migration instructions for upgrading between major versio
|
|
|
61
62
|
- [v1.8.0 → v1.9.0](#v180---v190)
|
|
62
63
|
- [v1.7.0 → v1.8.0](#v170---v180)
|
|
63
64
|
|
|
65
|
+
## v3.0.4 → v3.0.5
|
|
66
|
+
|
|
67
|
+
### Changes
|
|
68
|
+
|
|
69
|
+
This release includes major AI & Model Context Protocol (MCP) integrations alongside bugfixes:
|
|
70
|
+
|
|
71
|
+
- **Model Context Protocol (MCP) Server (`@ngxsmk/datepicker-mcp`)**: Standalone MCP server in `mcp-server/` with standardized date intelligence tools (`parse_date`, `calculate_date_range`, `convert_timezone`, `get_holidays`, `validate_date_selection`), prompts (`schedule_meeting`, `plan_time_off`), and resources (`datepicker://docs/api`, `datepicker://timezones`).
|
|
72
|
+
- **Multi-LLM Native Adapters**: Native support for **Claude** (`--export-claude`), **Google Gemini** (`--export-gemini`), **OpenAI** (`--export-openai`), and **Cursor/Windsurf** (Stdio MCP).
|
|
73
|
+
- **Datepicker UI AI Assistant Widget**: Added `[enableAi]`, `[aiPlaceholder]`, `[aiSuggestions]`, `[showAiSuggestions]`, and `[aiResolver]` (Promise/Observable) inputs with `(aiPromptSubmitted)` output, async resolving micro-spinner (`isAiResolving`), screen reader announcements, and a `/` keyboard shortcut to focus the prompt bar.
|
|
74
|
+
- **Focus Retention on Keyboard Navigation (Issue #313)**: Fixed issue where keyboard shortcut navigation (`PageUp`, `PageDown`, `Shift+PageUp`, `Shift+PageDown`, `Home`, `End`, cross-month arrow navigation, and letter shortcuts) caused focus loss due to calendar grid re-rendering without restoring DOM focus. Now automatically refocuses the target date cell, updates `focusedDate` with day-clamping and validity fallback, and forwards body-appended popover keydown events.
|
|
75
|
+
|
|
64
76
|
## v3.0.3 → v3.0.4
|
|
65
77
|
|
|
66
78
|
### Changes
|
package/README.md
CHANGED
|
@@ -30,15 +30,15 @@
|
|
|
30
30
|
|
|
31
31
|
---
|
|
32
32
|
|
|
33
|
-
**Last updated:** August
|
|
33
|
+
**Last updated:** August 22, 2026 - **Current stable:** v3.0.5
|
|
34
34
|
|
|
35
35
|
### **Overview**
|
|
36
36
|
|
|
37
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.
|
|
38
38
|
|
|
39
|
-
> **Stable Release**: `v3.0.
|
|
39
|
+
> **Stable Release**: `v3.0.5` is the current stable release with compiled `fesm2022` output and type declarations.
|
|
40
40
|
>
|
|
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.
|
|
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.5** on npm.
|
|
42
42
|
|
|
43
43
|
---
|
|
44
44
|
|
|
@@ -89,6 +89,7 @@
|
|
|
89
89
|
- 🏨 **Availability Calendars**: Per-day prices, indicator dots, and classes via `[dayMetadata]`; server-driven blocked dates via `[asyncDateFilter]`.
|
|
90
90
|
- 🎛️ **Custom Action Bars**: `[calendarHeaderTemplate]` / `[calendarFooterTemplate]` slots with `clear()`/`close()` actions.
|
|
91
91
|
- 🛠️ **Plugin Architecture**: Extend functionality via hooks for rendering, validation, and shortcuts.
|
|
92
|
+
- 🤖 **Model Context Protocol (MCP) & AI Assistant**: Standalone MCP server (`@ngxsmk/datepicker-mcp`) with date intelligence tools, plus embedded UI AI prompt bar (`[enableAi]`). See [MCP Integration Guide](docs/MCP_INTEGRATION.md).
|
|
92
93
|
- 🧪 **Signal Forms Native**: Direct integration with Angular 21's new Signal Forms API.
|
|
93
94
|
- 🚀 **Zoneless Ready**: Optimized for the future of Angular—works perfectly without zone.js.
|
|
94
95
|
- ♿ **Full Accessibility**: WAI-ARIA compliant with extensive keyboard navigation support.
|
|
@@ -188,7 +189,7 @@ ng add ngxsmk-datepicker
|
|
|
188
189
|
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:
|
|
189
190
|
|
|
190
191
|
```bash
|
|
191
|
-
npm install ngxsmk-datepicker@3.0.
|
|
192
|
+
npm install ngxsmk-datepicker@3.0.5
|
|
192
193
|
```
|
|
193
194
|
|
|
194
195
|
### Alternative installation
|
|
@@ -197,12 +198,12 @@ You can install without npm using any of these methods (peer dependencies must s
|
|
|
197
198
|
|
|
198
199
|
| Method | Command |
|
|
199
200
|
|--------|--------|
|
|
200
|
-
| **Yarn** | `yarn add ngxsmk-datepicker@3.0.
|
|
201
|
-
| **pnpm** | `pnpm add ngxsmk-datepicker@3.0.
|
|
202
|
-
| **Bun** | `bun add ngxsmk-datepicker@3.0.
|
|
203
|
-
| **From Git** | `npm install github:NGXSMK/ngxsmk-datepicker#v3.0.
|
|
201
|
+
| **Yarn** | `yarn add ngxsmk-datepicker@3.0.5` |
|
|
202
|
+
| **pnpm** | `pnpm add ngxsmk-datepicker@3.0.5` |
|
|
203
|
+
| **Bun** | `bun add ngxsmk-datepicker@3.0.5` |
|
|
204
|
+
| **From Git** | `npm install github:NGXSMK/ngxsmk-datepicker#v3.0.5` (requires the repo to have built output or you build from source) |
|
|
204
205
|
| **Local path** | Build the library in the repo (`npx ng build ngxsmk-datepicker`), then `npm install /path/to/ngxsmk-datepicker/dist/ngxsmk-datepicker` |
|
|
205
|
-
| **CDN (ESM)** | Use [unpkg](https://unpkg.com/ngxsmk-datepicker@3.0.
|
|
206
|
+
| **CDN (ESM)** | Use [unpkg](https://unpkg.com/ngxsmk-datepicker@3.0.5/) or [jsDelivr](https://cdn.jsdelivr.net/npm/ngxsmk-datepicker@3.0.5/) in your bundler or import map; peer dependencies (Angular, etc.) must be installed in your app. |
|
|
206
207
|
|
|
207
208
|
For all options and caveats, see [docs/INSTALLATION.md](docs/INSTALLATION.md).
|
|
208
209
|
|
|
@@ -963,7 +964,7 @@ We welcome and appreciate contributions from the community! Whether it's reporti
|
|
|
963
964
|
|
|
964
965
|
## **📄 Changelog**
|
|
965
966
|
|
|
966
|
-
**Recent:** Use **v3.0.
|
|
967
|
+
**Recent:** Use **v3.0.5** 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.5**.
|
|
967
968
|
|
|
968
969
|
For the full list of changes, see [CHANGELOG.md](https://github.com/NGXSMK/ngxsmk-datepicker/blob/main/CHANGELOG.md).
|
|
969
970
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
# Ionic Framework Integration Guide
|
|
2
2
|
|
|
3
|
-
**Last updated:**
|
|
3
|
+
**Last updated:** August 22, 2026 - **Current stable:** v3.0.5
|
|
4
4
|
|
|
5
|
-
This guide provides step-by-step instructions for integrating ngxsmk-datepicker with Ionic Angular applications.
|
|
5
|
+
This guide provides step-by-step instructions for integrating `ngxsmk-datepicker` with modern **Ionic 7, 8, & 9+** and **Angular 17–21+** applications.
|
|
6
6
|
|
|
7
7
|
## Quick Start
|
|
8
8
|
|
|
@@ -26,55 +26,64 @@ Or import directly in your component:
|
|
|
26
26
|
import 'ngxsmk-datepicker/styles/ionic-integration.css';
|
|
27
27
|
```
|
|
28
28
|
|
|
29
|
-
### 3. Use
|
|
29
|
+
### 3. Use with Modern Standalone Ionic + Angular Signals
|
|
30
30
|
|
|
31
31
|
```typescript
|
|
32
|
-
import { Component } from '@angular/core';
|
|
32
|
+
import { Component, signal } from '@angular/core';
|
|
33
33
|
import { NgxsmkDatepickerComponent } from 'ngxsmk-datepicker';
|
|
34
|
-
import { IonContent, IonItem, IonLabel } from '@ionic/angular/standalone';
|
|
34
|
+
import { IonContent, IonItem, IonLabel, IonList } from '@ionic/angular/standalone';
|
|
35
35
|
|
|
36
36
|
@Component({
|
|
37
37
|
selector: 'app-datepicker',
|
|
38
38
|
standalone: true,
|
|
39
|
-
imports: [NgxsmkDatepickerComponent, IonContent, IonItem, IonLabel],
|
|
39
|
+
imports: [NgxsmkDatepickerComponent, IonContent, IonItem, IonLabel, IonList],
|
|
40
40
|
template: `
|
|
41
|
-
<ion-content>
|
|
42
|
-
<ion-
|
|
43
|
-
<ion-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
41
|
+
<ion-content [fullscreen]="true">
|
|
42
|
+
<ion-list [inset]="true">
|
|
43
|
+
<ion-item>
|
|
44
|
+
<ion-label position="stacked">Booking Date</ion-label>
|
|
45
|
+
<ngxsmk-datepicker
|
|
46
|
+
[(ngModel)]="selectedDate"
|
|
47
|
+
[inline]="true"
|
|
48
|
+
mode="single"
|
|
49
|
+
[locale]="'en-US'"
|
|
50
|
+
[enableAi]="true"
|
|
51
|
+
[showAiSuggestions]="true"
|
|
52
|
+
>
|
|
53
|
+
</ngxsmk-datepicker>
|
|
54
|
+
</ion-item>
|
|
55
|
+
</ion-list>
|
|
50
56
|
</ion-content>
|
|
51
57
|
`
|
|
52
58
|
})
|
|
53
|
-
export class DatepickerPage {
|
|
59
|
+
export class DatepickerPage {
|
|
60
|
+
selectedDate = signal<Date | null>(new Date());
|
|
61
|
+
}
|
|
54
62
|
```
|
|
55
63
|
|
|
56
|
-
## Configuration
|
|
64
|
+
## Configuration & Mobile Best Practices
|
|
57
65
|
|
|
58
66
|
### Disable Focus Trap (for Ionic Modals)
|
|
59
67
|
|
|
60
|
-
When using datepicker inside `ion-modal`, disable focus trapping to
|
|
68
|
+
When using datepicker inside `ion-modal`, disable focus trapping to prevent focus loops:
|
|
61
69
|
|
|
62
|
-
```
|
|
70
|
+
```html
|
|
63
71
|
<ngxsmk-datepicker
|
|
64
72
|
[inline]="true"
|
|
65
73
|
[disableFocusTrap]="true"
|
|
66
|
-
mode="single"
|
|
67
|
-
|
|
74
|
+
mode="single"
|
|
75
|
+
></ngxsmk-datepicker>
|
|
68
76
|
```
|
|
69
77
|
|
|
70
|
-
### Ionic
|
|
78
|
+
### Ionic 8 Dark Mode (`.ion-palette-dark`)
|
|
71
79
|
|
|
72
|
-
The integration
|
|
80
|
+
The integration stylesheet automatically detects Ionic 8's `.ion-palette-dark` and legacy `.ion-theme-dark`:
|
|
73
81
|
|
|
74
82
|
- `--ion-color-primary` → `--datepicker-primary-color`
|
|
75
83
|
- `--ion-background-color` → `--datepicker-background`
|
|
76
84
|
- `--ion-text-color` → `--datepicker-text-color`
|
|
77
85
|
- `--ion-border-color` → `--datepicker-border-color`
|
|
86
|
+
- `--ion-font-family` → `--datepicker-font-family`
|
|
78
87
|
|
|
79
88
|
## Usage Patterns
|
|
80
89
|
|