@featherk/composables 0.9.6 → 0.9.8

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.
@@ -121,11 +121,18 @@ Optional feedback semantics are exposed separately from required validation:
121
121
  - `optionalPartialInvalid`: optional mode has some address input, but the address
122
122
  is not fully valid.
123
123
  - `optionalFeedbackActive`: optional partial-invalid state is currently eligible
124
- for UX messaging (after fieldset blur or failed submit attempt).
124
+ for UX messaging (after the fieldset is blurred following the latest address
125
+ edit, or after a failed submit attempt). This avoids showing partial-address
126
+ feedback immediately while the user is still editing inside the fieldset.
125
127
  - `optionalMissingRequiredFields`: optional mode is missing Address 1, City,
126
128
  and/or State while partial input exists.
127
129
  - `optionalZipInvalid`: optional mode has address input and ZIP is not exactly
128
130
  5 or 9 digits (including empty ZIP).
129
131
 
132
+ Address 2 is included when detecting whether optional address input exists, but
133
+ it is excluded from the completeness requirement. Entering only Address 2 is
134
+ therefore treated as a partial optional address after fieldset blur or failed
135
+ submit.
136
+
130
137
  If required toggles from `false` to `true`, validation remains dormant until the
131
138
  next submit or fieldset focusout.
@@ -160,12 +160,14 @@ Creates a controller for a masked single-date input.
160
160
  ## Behavior Details
161
161
 
162
162
  - **Mask and parsing**: Expects `00/00/0000`. Parsing requires the input to be complete (10 chars including slashes, 8 digits) and form a real calendar date (e.g., Feb 29 checks).
163
+ - **Minimum year**: The masked input supports four-digit years from `1000` onward. Dates earlier than `1000`, including zero-filled years such as `0001`, `0035`, and `0850`, are treated as invalid dates.
163
164
  - **Emission policy**: Emits `Date` only when the raw is complete, valid, and within `min`/`max`. Otherwise emits `null`. Empty input emits `null`.
164
165
  - **Min/Max validation**: If provided, dates outside bounds are considered invalid (`isValid=false`) and produce a range `validationMessage`.
165
166
  - **Steppers**: ArrowUp/ArrowDown and mouse wheel increment/decrement the focused part (`mm`, `dd`, `yyyy`) with wrapping (months and days). If raw is incomplete/invalid, steppers initialize to today, emit that date (if in range), and restore caret.
166
167
  - **Caret persistence**: After programmatic updates (including steppers), the caret is restored to the prior position to preserve typing flow.
167
168
  - **Space key**: The input consumes Space and calls `onShowCalendar` to open the DatePicker popup without inserting a space into `raw`.
168
169
  - **External sync**: When `externalValue` is set to a valid date, `raw` mirrors it (e.g., from a calendar selection). If external becomes null/invalid, `raw` is preserved to avoid clobbering in-progress text.
170
+ - **DatePicker bounds**: Kendo `DatePicker` has its own `min`/`max` range, with a default minimum of `01/01/1900`. When using the masked slot with historical dates before 1900, pass a matching `min` to `DatePicker`; otherwise the composable can accept the typed date while the popup calendar still displays a clamped or previous calendar value.
169
171
  - **Styling hook**: On mount, adds `fk-datepicker` class to the parent of the closest `.k-datepicker` element for theming. The composable also exposes `initStyling()` so consumers can re-run styling when needed (for example, after Kendo performs DOM updates). `initStyling()` is safe to call repeatedly — it is idempotent.
170
172
 
171
173
  ## Integration Patterns
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@featherk/composables",
3
- "version": "0.9.6",
3
+ "version": "0.9.8",
4
4
  "main": "dist/featherk-composables.umd.js",
5
5
  "module": "dist/featherk-composables.es.js",
6
6
  "types": "dist/index.d.ts",