Version Packages - #1329
Open
tenphi wants to merge 1 commit into
Open
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
🏋️ Size limit report
Compared against main at cfa6fb6 — run 32107032149, 2026-08-18T06:27:57Z.Click here if you want to find out what is changed in this build |
Contributor
🧪 Storybook is successfully deployed!
|
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
August 18, 2026 08:04
76beb91 to
969fbed
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
August 18, 2026 08:34
969fbed to
ee2603d
Compare
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.164.0
Minor Changes
#1326
aa455803Thanks @tenphi! -ItemAction/ItemBadgenow default totype="current"and stop mirroring the host row'stypefrom context.currentderives every color from the inheritedcurrentcolor, so one type covers every host type × theme combination that the context mapping used to enumerate — and, becausecurrentcoloris inherited rather than resolved once, an action also follows its row through hover, selected and disabled instead of holding a fixed palette. The mapping inItemActionProviderthat foldeditem/outline/outline-2/header/cardontoclearis gone.ItemActionContextstays. It still carriesdisableActionsFocus,isDisabled, thetheme, andtype— the last only for its presence, which drives thecontextmod that collapses an action's side margins. The provider's signature is unchanged, so no call site moved.Passing an explicit
themeopts an action out ofcurrentand back toclear, sincecurrentis theme-agnostic by construction and the theme would otherwise have nothing to color. Thetheme="default"case is excluded from that fallback: passing a prop's own default value must not change what renders, which is the invariantno-redundant-default-proplints for.Supporting changes:
isSelectedwith a brand hue — an accent-tinted fill under an accent label — andcurrenthas one inherited color to work with, so it cannot. Alpha is the only channel left, and the neutral types'.09step read as a slightly dirty background rather than an "on" state, so a selectedItemAction/ItemBadgelooked unselected. Selection now jumps clear of the interaction steps (.18in light) instead of continuing them, while hover and press stay subtle so a row full of actions is not busy. On dark surfaces the same construction inverts — a light chip climbing toward an equally light label — and both the dark scheme and the special theme hit the AA floor for their label at exactly.24, so their steps are written under that measured ceiling andselectedis a smaller jump there.#currentalphas do not adapt to the color scheme — a 4% tint of a dark label on a light surface reads far stronger than a 4% tint of a light label on a dark one. Each step now carries a per-surface value: the base entry for light,@darkfor the dark scheme, andtheme=specialas a single fixed ramp (special is static across light/dark/HC by design). Each step lives in its own custom property rather than inline infill, because three ramps in one state-map would put ~18 alpha values where Tasty'smergeEntriesByValuepass coalesces equal value strings into one OR-entry at the group's max priority and breaks negation against lower-priority rules.ItemActionregains a focus ring.CURRENT_ITEM_STYLESfollows the*_ITEM_STYLESconvention of leaving focus to the collection that owns the row, which is wrong for a focusable action. The ring moves toItemAction's base styles, where every variant's ownoutlinestill overrides it, so onlycurrentis affected.ItemButtonpaints its actions' color. It renders actions as a sibling of the button rather than inside it — deliberately, so they are not nested in a<button>— socurrentcolorreached them from the page instead of the row: adangerrow handed its actions neutral text, and aspecialrow handed them the page's dark text to tint on a dark purple surface.ActionsWrappernow carries the row's resting color, derived from the variant map rather than restating the palette.Item's inlinetheme.type→ styles object is now the exportedITEM_VARIANTS, shared with the color projection above so the two cannot drift.Every clear and trigger button across the field components now relies on that default instead of pinning a
typeor a validationtheme:Select,Picker,FilterPicker,ComboBox,SearchComboBoxandSearchInputclear buttons,PasswordInput's masking toggle,ColorInput's pipette,DatePicker's calendar button and the ComboBox / SearchComboBox triggers. Each one now takes the color of the field it sits in, so it follows a custom theme rather than staying pinned todefault.clear.Where that changes rendering, it changes it toward matching the field's own text:
Picker/FilterPickerclear buttons are unchanged — their trigger text already carries validation state, so the inherited color equals what the explicit theme produced.ComboBox/SearchComboBox/SearchInputclear buttons and the ComboBox trigger move from the fixeddanger.clearlabel to the input's own#danger-accent-textwhen invalid. The trigger previously stayed neutral beside red input text.PasswordInput's toggle now tints with the field instead of always rendering neutral.Select's clear button no longer turns red when the field is invalid. Its trigger keeps neutral label text in that state, so the button now matches its own field, and the red border still signals invalidity.PickerandFilterPickerare alsoItem-based but do tint their trigger text — that inconsistency lives inSelectand is worth fixing there rather than being masked by a themed clear button.ItemAction/ItemBadgetypetherefore returns to a plain'current'default in the lint registry. Theskip: 'context'classification it was given existed because the prop resolved throughItemActionProvider; it no longer does.isDisabledis still context-resolved and still skipped.#1327
5bebe7d1Thanks @tenphi! -MenuTrigger/DialogTrigger: an action can now hand focus off to the surface it opens. Closing either overlay used to return focus to its trigger unconditionally — an item or button whose action opened a panel, a dialog or an inline editor lost focus to the trigger a tick later, so consumers had to out-race the overlay by re-focusing on every animation frame over a several-hundred-millisecond window. The restore is now skipped whenever focus already sits outside the closing overlay, so a singlefocus()from the opened surface's mount effect holds.Nothing changes when the action moves focus nowhere: focus still inside the overlay (the pressed control keeps it through the exit animation) or dropped to
<body>returns to the trigger as before. A clicked control outside the overlay also keeps focus now instead of having it yanked to the trigger. ForDialogTriggerthis affects themodal,tray,fullscreen,fullscreenTakeoverandpaneltypes;popoveralready restored throughDialog's ownFocusScope, which declines to restore when focus moved.Both triggers also gain a
shouldRestoreFocusprop (defaulttrue) for surfaces that claim focus later than the restore — after an async load or an entry animation — where the trigger would otherwise take focus first and flash. It silences every restore path the trigger owns:MenuTrigger's popoverFocusScopeas well as its manual restore, and forDialogTriggertheDialog's ownFocusScope(reached throughDialogContext, so aDialogrendered outside a trigger keeps restoring focus as before).Tabs: the rename-from-menu flow no longer runs a refocus pass. Picking "Rename" used to re-focus the inline-edit input on an animation frame and again at 50/200/400ms purely to survive the closing menu; the input's ownFocusScope autoFocusis now enough. Behaviour is unchanged — rename still lands in a live editing session, in every context-menu mode.Patch Changes
#1328
cfa6fb6eThanks @tenphi! - Update@tenphi/tastyto3.0.2. A patch release with no public API change — the export surface is byte-for-byte the same set of names as3.0.1— so nothing in the UI Kit needed migrating and the full suite passes unchanged.Two clarifications in Tasty's docs are worth knowing if you write custom tokens: token names are case-sensitive and should start lowercase (a leading capital folds, so
$Fooresolves to--foo), andpreset/transitiontake token names rather than values, so a bare$namethere warns in dev and is ignored. Neither affects this package — no capitalized token name is used anywhere insrc.The tree-shaking size budget goes from 123 kB to 124 kB. Tasty's core grew ~0.56 kB in this release, which put the old budget 31 bytes over; the
Allentry moved by the same amount and stays inside its 501 kB budget.Note
Low Risk
Diff is version, changelog, and changeset cleanup only; no runtime code changes in this merge.
Overview
Release housekeeping for
@cube-dev/ui-kit0.164.0: bumpspackage.jsonfrom0.163.0, folds the pending Changesets intoCHANGELOG.md, and deletes the three consumed changeset files (item-action-current-default,menu-focus-handoff,tasty-3-0-2).The published 0.164.0 notes (already merged on
main) cover ItemAction / ItemBadge defaulting totype="current", MenuTrigger / DialogTrigger focus-restore behavior plusshouldRestoreFocus, and a @tenphi/tasty3.0.2patch with a slightly higher tree-shake budget. This PR does not re-apply those code changes—it only prepares the npm release.Reviewed by Cursor Bugbot for commit ee2603d. Bugbot is set up for automated code reviews on this repo. Configure here.