v1.1.0: integration-feedback release
Bugs from real-product integration: - Meter/LEDFader clamp geometry below breadth 14 (no negative SVG rects) - mixColors falls back to CSS color-mix() so theme tokens can be var()/oklch() - type-in editing fires a real edit gesture (Start/onChange/End, source 'edit') - ScrubField Enter/Escape no longer double-commit or commit-on-revert via blur - disabled dims the whole control uniformly, data-disabled on the wrapper New capabilities: - commitMode 'release': drags preview, emit once on pointer-up, Esc discards - Meter accepts value=[l, r, ...]; theme zoneGood/zoneWarn/zoneHot defaults - XYPad per-axis invert + detents; Fader valuePosition top|end|none - LED skins: unit labels, uncapped displayDecimals, aria-valuetext defaults New components: IndicatorLamp, SegmentSwitch, ScrubField, MeterBridge, PushButton led='dot'. Docs: change-contract table, recipes, gallery cards.
This commit is contained in:
parent
b3eaa604c2
commit
d8b7b55505
31 changed files with 1471 additions and 223 deletions
|
|
@ -1,5 +1,47 @@
|
|||
# Changelog
|
||||
|
||||
## 1.1.0 — 2026-07-13
|
||||
|
||||
Integration-feedback release — everything in here came from wiring dreamknob into a
|
||||
real product.
|
||||
|
||||
### New components
|
||||
- `IndicatorLamp` — pressable LED lamp (`role="switch"`), toggle/momentary, `blink`
|
||||
(reduced-motion aware), `readOnly` status-light mode
|
||||
- `SegmentSwitch` — hardware-styled segmented selector (radiogroup, roving focus,
|
||||
arrow/Home/End keys, LED tick)
|
||||
- `ScrubField` — After-Effects-style numeric field: label scrubbing (Shift = fine),
|
||||
draft typing (Enter commits, Esc reverts), arrow steps, wheel; `role="spinbutton"`
|
||||
- `MeterBridge` — labeled multi-strip meter block with per-channel peak-hold text
|
||||
- `PushButton` gains `led="dot"` — corner-dot LED that scales down for small
|
||||
icon-only toggles (`led` now `boolean | 'strip' | 'dot'`)
|
||||
|
||||
### New capabilities
|
||||
- `commitMode="release"` — drags preview visually but emit a single `onChange` on
|
||||
pointer-up; Esc discards the preview (expensive parameters)
|
||||
- `Meter` accepts `value={[l, r, ...]}` for multi-channel bars with a shared clip LED
|
||||
- Theme gains `zoneGood` / `zoneWarn` / `zoneHot`; `Meter`, `MeterBridge` and
|
||||
`LEDFader` default their zones from the theme
|
||||
- `XYPad` axes accept `invert` and per-axis `detents`; arrow keys follow the visual
|
||||
direction on inverted axes
|
||||
- `Fader` gains `valuePosition: 'top' | 'end' | 'none'` — `'end'` renders one-line
|
||||
inspector rows with a stable readout width
|
||||
- `LEDKnob` / `LEDFader` / `Meter` gain `unit`; `displayDecimals` is no longer capped
|
||||
- Skins without visible readouts now default `aria-valuetext` from `format`/`unit`
|
||||
(`SteppedKnob` announces position names)
|
||||
|
||||
### Fixes
|
||||
- `Meter` clamps geometry below `breadth` 14 — no negative-dimension SVG rects on
|
||||
thin strips
|
||||
- `mixColors` falls back to CSS `color-mix()` for non-hex inputs, so theme tokens can
|
||||
be `var(--x)` / `oklch()` without breaking gradients and glows
|
||||
- Type-in editing now fires a proper edit gesture: `onChangeStart` → `onChange` →
|
||||
`onChangeEnd` with `source: 'edit'` (was a bare `'api'` set with no gesture events)
|
||||
- The `ChangeMeta.source` contract is documented (docs + `types.ts`): every user
|
||||
gesture brackets exactly one Start/End pair; `'api'` fires neither
|
||||
- Disabled controls set `data-disabled` on the wrapper (including labels/readouts)
|
||||
and dim uniformly
|
||||
|
||||
## 1.0.0 — 2026-07-12
|
||||
|
||||
Initial release.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue