Repository navigation
chore: version packages - #84
Merged
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
sve-ui@0.15.0
Minor Changes
0b741d2: Two new components:
CarouselandResizable.Both hand-built — Bits UI ships neither — and neither adds a dependency. These are
the Tier 2 gaps from the same catalog diff that produced
Kbd,ButtonGroup,EmptyandInputGroup: harder than those four, because both have real behaviourand a real accessibility contract rather than just a styling problem.
Carouselis built on CSS scroll-snap rather than transforms, which is whatbuys touch swiping, trackpad flicks, momentum and the browser's own arrow-key
scrolling for free. Position is read from the scroll container on every scroll
and never remembered: a swipe, a flick and the arrow keys are all drivers a
component cannot intercept, and a stored index would disagree with the screen
after any of them — which would make the "3 of 5" slide label a lie.
Two things it deliberately does not do:
removes the only honest position affordance a carousel has: a Previous or Next
that goes flat at the boundary.
control, and stopping on hover, and stopping on focus, and honouring
prefers-reduced-motion— a chain that gets half-built more often than not.useCarousel()exposesnext,prevandgoTofor anyone who takes on theobligation that comes with it.
Previous and Next are disabled from the measured scroll extent, not the slide
index, so they stay honest when several slides are visible at once.
Resizableimplements the APG window-splitter pattern, which is mostly akeyboard contract — and that is the half every hand-rolled divider skips. The
handle is a focusable
separatorwitharia-orientationand livearia-valuenow; arrow keys move it, Home and End collapse and expand.labelisrequired, because "splitter, 40" names a number and not the thing it sizes.
A drag moves one boundary and touches exactly two panes, clamped against both
of their limits before anything is applied. Clamping only the pane being grown is
what lets its neighbour shrink past its own minimum, and distributing a drag
across the whole group is what makes resizing a sidebar quietly reflow the far
side of a layout. It does not persist sizes: where that belongs is an application
decision.
Two smaller notes:
setPointerCapture, so it survives the pointer leaving ahairline target — which it does immediately — and the grabbable area is grown to
12px by a pseudo-element, so the divider can stay 1px wide without being
unreasonable to hit.
Resizable.Paneregisters itsmin/maxas getters. Registration happens onceat init because the handle beside it needs an index and id on first render, and
snapshotting the numbers there would freeze limits that depend on state.
example@0.0.8
Patch Changes