Skip to content

v0.12.3

Choose a tag to compare

@daopk daopk released this 01 Oct 08:35
· 61 commits to main since this release

Two fixes. A selectionChange handler on Tabs or SegmentedControl runs once per change rather
than twice, and that is the one to read: the prop that used to carry it is gone, and one spelling of
the binding goes with it.

Breaking

Tabs and SegmentedControl declare no onSelectionChange prop

- <Tabs :on-selection-change="onChange">
+ <Tabs @selection-change="onChange">

Both components declared the callback as a prop and emitted the event of the same name. A
@selection-change listener is the same raw key as that prop, so it landed on both, and the handler
ran twice for every change. They emit selectionChange now and declare nothing for it, the way
ListBox, Menu, TagGroup, ToggleButtonGroup and the other selection components already did
— which is also why the generated API tables now list the event for both, where they listed nothing.

@selection-change and :onSelectionChange reach the handler once. The hyphenated
:on-selection-change reaches nothing: emit looks a handler up under the camelCase key only, as
Vue does everywhere (vuejs/core#9812), so with no prop
to receive it the binding falls through as an attribute. TabsRootProps and
SegmentedControlRootProps lose the field.

Fixed

  • A scroll shadow leaves no stripe at fractional zoom. The fade and the solid strip under the
    scrollbar used to meet edge to edge. At a device scale that is not a whole number, that edge falls
    partway through a device pixel, each layer covers it only partially, and the two together came out
    translucent: a one-pixel line the full height of the scroller, visible through any filled row. The
    fade now takes the whole box and the strip sits over it, so no pixel is partial in both.

Built and tested against vue 3.6.0-rc.10; the peer range still starts at rc.8.

npm i ropav@0.12.3

Full changelog: v0.12.2...v0.12.3