@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.
- package/dist/featherk-composables.es.js +1053 -1043
- package/dist/featherk-composables.es.js.map +1 -1
- package/dist/featherk-composables.umd.js +1 -1
- package/dist/featherk-composables.umd.js.map +1 -1
- package/docs/address/useUSAddress.md +8 -1
- package/docs/date/useMaskedDateInput.md +2 -0
- package/package.json +1 -1
|
@@ -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
|
|
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
|