Version Packages - #1417
Merged
Merged
Version Packages#1417
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
🧪 Storybook is successfully deployed!
|
Contributor
🏋️ Size limit report
Compared against main at cf3e03b — run 35727323615, 2026-09-22T12:27:51Z.To see which modules changed, download the size-limit-statoscope-report artifact from this run and open report.html. |
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
@cube-dev/ui-kit@0.182.0
Minor Changes
#1416
cf3e03b9Thanks @tenphi! -Buttonemitsaria-pressedfromisSelected, which its documentation has always promised and which every call site usingisSelectedfor a real toggle had to hand-set alongside it. It is skipped where the attribute would be wrong: on a button rendered as a link (to), and on one the call site has given its ownrole— a selected tab or option wantsaria-selected/aria-current, and only the call site knows which. An explicitaria-pressedstill wins. Note thatisSelected={false}now rendersaria-pressed="false"rather than nothing, since that is what makes an unpressed toggle announce as a toggle.isClearable's built-in ✕ onSelect,PickerandFilterPickernow has an accessible name. It was an icon-onlyItemActionwith neitheraria-labelnortooltip, andItemActionderives its name from exactly those two and warns for neither, so it reached a screen reader unnamed. The default is localized in all twelve locales; override it per call site with the newclearLabelprop.#1416
cf3e03b9Thanks @tenphi! -ButtonSplitforwards the DOM and ARIA props it used to discard. It destructured its own props and passed only five things to the element, soaria-label,aria-labelledby,aria-describedby,id,role, rawdata-*attributes and event handlers were dropped — which meant a split group could not be labelled at all, and that matters most in custom mode, where the children are typically icon-only buttons with no visible group label. Its siblingButtonGrouphas always forwarded everything, so the two were not interchangeable despite reading as alternatives. Custom mode also defaults torole="group"now, so a label has something to name; pass your ownrole(includingpresentation) to override it. The wrapper no longer emits a straytag="div"attribute.#1416
cf3e03b9Thanks @tenphi! -CommandTextAreanow tells a consumer where a pick landed and what the field is doing.onCommand'sitemcarriesstartandend— the range the inserted text occupies in the value passed toonChange, withendexcluding any trailing space — whichcommitalready computed to place the caret and then discarded; a consumer that anchors its own record to a pick no longer has to re-derive the offset by searching the new value, a search that silently mis-anchors when one option's text is a token-boundary prefix of another's. Two new callbacks report state the component already holds:onOpenChange(isOpen)for the suggestion popover, so a field with its ownEnterbehaviour can tell "pick the focused option" from "submit" without readingaria-expandedoff the DOM, andonActiveTokenChange(token)for the component's own caret-aware scan result, so nobody has to run a second approximate copy of it. Neither fires for the closed / no-token state a field mounts in.Patch Changes
#1416
cf3e03b9Thanks @tenphi! - Four places where a style or a size did not do what it said.Dialog,ModalandTrayfit viewports narrower than ~352px.$min-dialog-sizewas computed from100vw - 2xwhile the components' own max-width uses100dvw - 8x; CSS resolvesmin-widthaftermax-width, so below the crossover the floor beat the ceiling and every dialog rendered wider than the viewport it sat in — in a 300px pane, 288px inside a 236px box. The token now measures the same box as the max-width, so the two can no longer cross. Apps that overrode the token to order the clamp themselves can drop the override.Dialog's gutter custom properties ($dialog-padding-h,$dialog-content-padding-vand the header/footer pair) are now documented as a supported contract, for the case where one child should span the full dialog width while its siblings keep the gutter.A standalone
Checkboxhonoursstylesand can wrap its label. Outside aCheckboxGroupthe extracted container styles were computed and then never forwarded, so<Checkbox styles={{ … }}>was a silent no-op, and children were forced through<Text nowrap>—white-space: nowrapinherits, so a label of more than a few words could not wrap at all. Both branches now render the label through the same element, so the preset and the validation colour match in and out of a group.Itemgains$prefix-gapand$suffix-gaptokens for the space between those slots and the label. The grid contributes no gap andLabeldrops its own inline padding for any start or end content, so a prefix or suffix renders flush — right for a checkbox, kbd chip or badge, which already carry their own presence, and wrong for a bare glyph, which is the case that looks unspaced next to the same glyph in theiconslot. Both tokens default to0, so nothing moves until a call site opts in withstyles={{ '$prefix-gap': '1x' }}. Prefer them over overridingPrefix/Suffixpadding, which silently replaces the state maps that drop the outer gutter next to an icon or an actions run.DatePicker,DateRangePickerandDateRangeSeparatedPickerapply the container style props andstylestheir types advertise. All three extracted them and dropped the result, forwarding onlywrapperStyles, sowidth="100%"type-checked, reviewed clean and did nothing.wrapperStylesremains the most specific of the three and still wins.