ngxsmk-datepicker 2.2.0 → 2.2.2

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/docs/API.md CHANGED
@@ -2,7 +2,12 @@
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.0+ | **Last updated**: February 25, 2026
5
+ **Version**: 2.2.2+ | **Last updated**: March 3, 2026
6
+
7
+ ## Stable vs experimental
8
+
9
+ - **Stable**: All inputs/outputs in the reference tables below are stable unless marked **Experimental**. Stable APIs will not change in a breaking way within the same major version.
10
+ - **Experimental**: Marked in the tables; may change in minor releases. Use with awareness.
6
11
 
7
12
  ## Versioning Policy
8
13
 
@@ -40,7 +45,7 @@ import { NgxsmkDatepickerComponent } from 'ngxsmk-datepicker';
40
45
  | Input | Type | Default | Status | Description | Example |
41
46
  |-------|------|---------|--------|-------------|---------|
42
47
  | `mode` | `'single' \| 'range' \| 'multiple'` | `'single'` | Stable | Selection mode | `mode="single"` or `[mode]="'range'"` |
43
- | `value` | `DatepickerValue` | `null` | Stable | Current value (one-way binding) | `[value]="selectedDate"` |
48
+ | `value` | `DatepickerValue` | `null` | Stable | Current value (one-way binding). For two-way binding with a signal, use `[value]="dateSignal()"` and `(valueChange)="dateSignal.set($event)"`. | `[value]="selectedDate"` |
44
49
  | `field` | `SignalFormField \| SignalFormFieldConfig` | `null` | Stable | Signal form field (Angular 21+). Automatically tracks dirty state when using `[field]` binding. Supports direct signals, signals with properties, and resolution of nested signals. | `[field]="myForm.dateField"` |
45
50
  | `placeholder` | `string \| null` | `'Select Date'` or `'Select Time'` | Stable | Input placeholder text | `placeholder="Choose a date"` |
46
51
  | `inputId` | `string` | `''` | Stable | Custom ID for the input element | `inputId="my-date-input"` |
@@ -59,7 +64,7 @@ import { NgxsmkDatepickerComponent } from 'ngxsmk-datepicker';
59
64
  | `timeOnly` | `boolean` | `false` | Stable | Display time picker only (no calendar). Automatically enables `showTime`. | `[timeOnly]="true"` |
60
65
  | `allowTyping` | `boolean` | `false` | Stable | Enable manual typing in the input field. Required for native validation. | `[allowTyping]="true"` |
61
66
  | `displayFormat` | `string` | `null` | Stable | Custom date format string (e.g., 'MM/DD/YYYY'). | `displayFormat="DD.MM.YYYY"` |
62
- | `showCalendarButton` | `boolean` | `true` | Stable | Show/hide the calendar icon button. When `false`, users can still open calendar by clicking the input field. | `[showCalendarButton]="false"` |
67
+ | `showCalendarButton` | `boolean` | `false` | Stable | Show/hide the calendar icon button. When `false`, users can still open calendar by clicking the input field. | `[showCalendarButton]="true"` |
63
68
  | `minuteInterval` | `number` | `1` | Stable | Minute selection interval | `[minuteInterval]="15"` |
64
69
  | `showSeconds` | `boolean` | `false` | Stable | Show seconds in time selection | `[showSeconds]="true"` |
65
70
  | `secondInterval` | `number` | `1` | Stable | Second selection interval (e.g. 1, 5, 15) | `[secondInterval]="5"` |
@@ -2339,6 +2344,27 @@ export function getDaysInMonth(year: number, month: number): number;
2339
2344
  export function getFirstDayOfMonth(year: number, month: number): number;
2340
2345
  ```
2341
2346
 
2347
+ ## Virtual scrolling
2348
+
2349
+ Year and decade views use the internal `calculateVirtualScroll` utility and visible-index signals so that only visible items are rendered when year ranges are large (e.g. 100+ years). The main calendar grid uses lazy month rendering via `_visibleCalendarIndicesSignal`. For very large ranges, consider limiting `yearRange` for optimal performance.
2350
+
2351
+ ## Animation and reduced motion
2352
+
2353
+ Animation duration and transitions can be configured via `provideDatepickerConfig` or the global config. The component respects the `prefers-reduced-motion` media query when `animations.respectReducedMotion` is `true` (default): transitions are disabled for users who request reduced motion.
2354
+
2355
+ ```typescript
2356
+ import { provideDatepickerConfig, DEFAULT_ANIMATION_CONFIG } from 'ngxsmk-datepicker';
2357
+
2358
+ // In app config or providers
2359
+ provideDatepickerConfig({
2360
+ animations: {
2361
+ ...DEFAULT_ANIMATION_CONFIG,
2362
+ duration: 200,
2363
+ respectReducedMotion: true,
2364
+ },
2365
+ })
2366
+ ```
2367
+
2342
2368
  ## Keyboard Support
2343
2369
 
2344
2370
  The datepicker comes with comprehensive keyboard support:
@@ -1,6 +1,6 @@
1
1
  # Version Compatibility Matrix
2
2
 
3
- **Last updated:** February 25, 2026 · **Current stable:** v2.2.0
3
+ **Last updated:** March 3, 2026 · **Current stable:** v2.2.2
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