kerfjs 5.0.0-beta.21 → 5.0.0-beta.23
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 +18 -0
- package/ai/manifest.json +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
- Fixed `kerf-ui-doctor` and `kerf-ui-analyze` recursive discovery so nested
|
|
10
|
+
`.claude/worktrees` checkouts are excluded from source diagnostics, doctor
|
|
11
|
+
cache inputs, TypeScript, and ESLint.
|
|
9
12
|
- Added `npx kerfjs setup` and the `kerfjs/setup` automation API for safe,
|
|
10
13
|
AI-first initialization and migration of core and UI projects. The command
|
|
11
14
|
provides bounded dry-run diffs, explicit per-conflict keep/Kerf choices,
|
|
@@ -51,6 +54,21 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
|
51
54
|
- Tightened the `@kerfjs/ui` Web Awesome theme's form fields to the Kerf content-item inset — a 1px border with 8px inside it (`--wa-form-control-border-width` / `--wa-form-control-padding-block` / `--wa-form-control-padding-inline` now follow `--kui-layout-item-border-width` / `--kui-layout-item-padding`), replacing Web Awesome's larger default pad, so fields land at the standard ~40px height and 9px value inset. Each field's top label is now inset by that same border + padding (9px) so it aligns with the value inside the field, and is styled exactly like a `ListHeader` label — uppercase, xs, weight 650, quiet foreground (`::part(form-control-label)` across Input/Number Input/Textarea/Select/Checkbox Group/Radio Group/Color Picker/Known Date/Time Input, plus the Slider's `::part(label)`). Inline Checkbox/Switch labels keep their sentence case.
|
|
52
55
|
- Added overflow controls to `@kerfjs/ui`'s `ToolbarText`: `wrap` (flow onto multiple lines instead of a single line), `ellipsis` (show the trailing … at the truncation, or hard-clip when false), and `maxLines` (cap wrapped text to N lines, ellipsizing past it). The default is unchanged — one line, ellipsized when it does not fit. `maxLines` takes effect only with `wrap`. Driven by `data-wrap` / `data-ellipsis` / `data-max-lines` attributes plus a `--kui-toolbar-text-max-lines` var; no new public classes. The UX catalog gains ellipsis/wrap/capped examples.
|
|
53
56
|
- Fixed a `@kerfjs/ui` `TokenSearchField` bug where selecting all content and pressing Delete (or Backspace) left a stray newline in the field. A `contenteditable` host inserts a bogus `<br>` when emptied that way in every engine — it renders as a newline and `readTokenSearchField` read it back as a space. `wireTokenSearchFields` now strips that line break after any delete input and, when the field is otherwise empty, restores the canonical empty text span and places the caret in it so typing resumes cleanly. Also clears any leftover chips in the select-all case. Regression-tested in unit (happy-dom) and across all three browser engines.
|
|
57
|
+
- Hardened that full `TokenSearchField` deletion for platform-specific selection
|
|
58
|
+
ranges whose endpoints sit inside the first and last text spans instead of at
|
|
59
|
+
the editor boundary—or whose cloned Linux range omits an atomic chip entirely.
|
|
60
|
+
Full logical text-and-token selection is recognized from its value, while an
|
|
61
|
+
explicit Ctrl/Cmd+A intent survives only until the next delete and is
|
|
62
|
+
consumed by that delete even when the browser omits `beforeinput`, and is
|
|
63
|
+
retained across a controlled editor replacement before or after
|
|
64
|
+
`beforeinput`. It is captured before propagation can be stopped and
|
|
65
|
+
invalidated by selection-moving keys, pointer input, blur, or another edit.
|
|
66
|
+
The explicit shortcut-to-delete transition is handled deterministically:
|
|
67
|
+
the helper prevents the unreliable mixed-contenteditable native mutation,
|
|
68
|
+
canonicalizes the empty editor, and emits the corresponding bubbling input
|
|
69
|
+
event so controlled application state clears before it can restore a chip.
|
|
70
|
+
A browser can no longer preserve a controlled chip merely because its range
|
|
71
|
+
shape or native deletion timing differs.
|
|
54
72
|
- Added a `horizontalOnly` prop to `@kerfjs/ui`'s `ListInsetText`. When true it keeps the horizontal geometry (8px inline margin, 1px left/right border, 8px left/right padding — so the text edge still lands at the 17px inset) but drops the vertical margin, border, and padding, for tight text layout that still aligns with bordered items. It applies a `kui-list-inset-text--horizontal` modifier class; the default (vertical box space intact) is unchanged. The UX catalog gains a horizontal-only example.
|
|
55
73
|
- Fixed a WCAG AA color-contrast failure on `@kerfjs/ui`'s selected list rows. The selected `ListItem` and `ListActionRow` used the brand accent (`brand-on-quiet`, `#1e6ef4`) for their text, which resolved to only **3.77:1** over the selected `brand-fill-normal` background (`#d6ecff`) — below the 4.5:1 minimum for normal text (flagged by axe downstream). Both now use the normal neutral foreground over the brand-tinted fill, so selection is carried by the fill and border while the text stays readable in light and dark themes. Computed-ratio browser tests pin both selected rows at ≥4.5:1 in both themes across all three engines.
|
|
56
74
|
- Fixed the same brand-accent contrast failure on `@kerfjs/ui`'s info `StateBanner` tone and `Select`'s current option, where the blue is a semantic (not a selection cue), so the text stays blue rather than going neutral: a new darker `--kui-color-brand-on-fill` token (`#1a5dcf` light; the compliant `#8acbff` in dark) replaces `brand-on-quiet` for brand text placed directly on a brand fill. The info banner (was 4.15:1) now clears ~5.4:1 and the current Select option (was 3.77:1) ~4.9:1. Computed-ratio browser assertions guard both.
|
package/ai/manifest.json
CHANGED
package/package.json
CHANGED