Repository navigation
reshaped
Minor Changes
-
#700
138845eThanks @blvdmitry! - Badge.Container: Badge now cuts a transparent gap around itself out of the content it's positioned against, so it stands out on top of images and colored backgrounds -
#697
3344cc3Thanks @blvdmitry! -Calendarnow renders today's date in bold and marks it witharia-current="date" -
#691
2068cb6Thanks @blvdmitry! - ContextMenu:onOpennow receives the nativecontextmenuevent that opened the menu as{ event }. A singleContextMenurendered over many items, for example withtriggerRefpointing at a table, can now find the item that was right clicked withevent.targetwithout adding its owncontextmenulistener. -
#704
8ff0310Thanks @blvdmitry! - Moved the dark modeelevation-raisedandelevation-overlaybackground colors closer toelevation-base, so overlay components likeModalandPopoverno longer look washed out on top of the page. Regenerate custom themes to pick up the new values -
#675
d9770c5Thanks @blvdmitry! - Restored theFlyouthide animation by default forSelect,DropdownMenuandAutocomplete. Flyout content is now frozen while animating out, so it keeps its last rendered state even when the component updates on close, for example whenSelectchanges its selected value.disableHideAnimationis still supported to opt out of the animation. Content that's animating out no longer reacts to pointer events, content closed right after opening no longer stays mounted, and focus now returns to the trigger when the content is closed without an animation, for example with reduced motion enabled. -
#698
bc9a4f2Thanks @blvdmitry! - MenuItem: AddedfocusIndicatorproperty to choose between the defaultoutlinekeyboard focus ring and ahighlightstyle matching the hover state.DropdownMenu.Itemnow always useshighlight. -
#670
cf7ac31Thanks @blvdmitry! - Improved theModalswipe gesture physics. On release, the closing or returning animation now continues from the current velocity of the gesture using a critically damped spring, so a quick flick closes the modal right away while a slow release settles smoothly, instead of restarting a fixed-duration transition from zero. Returning to the open position is animated as well, where previously it snapped back, and starting a new swipe while the modal is still animating picks it up from its current position instead of snapping to the position the animation was heading to. -
#704
8ff0310Thanks @blvdmitry! -Modalwithbottom,startandendpositions now follows the swipe gesture past its open position with a damped rubber band effect and springs back on release. Content scrolling in that direction still takes priority over the gesture -
#704
8ff0310Thanks @blvdmitry! -Modalwithbottomposition now adds the browser safe area insets to its padding on the sides attached to the screen edges, so the content isn't covered by the device corners or the home indicator in apps added to the home screen. The insets only apply when the page usesviewport-fit=coverand are ignored for contained modals -
#704
8ff0310Thanks @blvdmitry! -Modalwithstartandendpositions now floats with an offset from the screen edges and rounds all its corners. The offset grows to the browser safe area insets when they're larger, and more space is left for the overlay on the side far from the screen edge. All modals exceptfull-screennow render a neutral faded border,bottomonly renders it on the top side -
#701
10b7cbdThanks @blvdmitry! -Tooltipno longer opens when its trigger is tapped on touch devices. Tapping usually runs the trigger action, so the tooltip stayed open behind it, for example behind the overlay of aModalopened by the trigger. Tooltips still open on hover and keyboard focus, and you can show them on touch by controlling them with theactiveprop. Added adisableTouchTriggerprop toFlyoutto ignore touch interactions with hover triggers.
Patch Changes
-
#706
b69f1ebThanks @blvdmitry! - Badge.Container: Fixed the cutout around the badge not rendering outside of React strict mode -
#694
55cda7fThanks @shkomg! -ButtonwithiconandendIconand no children now keeps--rs-button-gapbetween the two icons -
#682
c12f6a7Thanks @blvdmitry! - Switch: Addedrole="switch"to the input element so it's announced as a switch instead of a checkbox. Checkbox, Radio, HiddenInput:onChangeis now called when the component is used without aname, anddisabledfrom a group or the component itself can no longer be overridden byFormControl disabled={false}. -
#678
4d8b937Thanks @blvdmitry! - ContextMenu: Fixed the open menu staying on the screen when right clicking another ContextMenu trigger, only the new menu is shown now. Right clicking the trigger of the open menu again moves the menu to the new position. -
#699
1bc5e32Thanks @blvdmitry! - ContextMenu: Disabled the hide animation by default to match the native context menu behavior, the menu now closes instantly. PassdisableHideAnimation={false}to bring the animation back. -
#680
de2c249Thanks @blvdmitry! -Expandablenow uses an accelerating easing when closing, so the content collapses over the whole duration instead of disappearing in the first frames -
#684
6e02315Thanks @blvdmitry! - Flyout: Fixed the content role for hover flyouts with an explicittrapFocusMode, soDropdownMenusubmenus now use themenurole and hoverPopovercontent is no longer announced as a tooltip. Pressing Escape now closes nested hover and focus flyouts one by one, starting from the latest opened one, instead of closing all of them at once.Popover.Dismissiblenow passes theclose-buttonreason toonClose. Autocomplete: the highlighted option is scrolled into view when navigating with the keyboard. MenuItem: hovering a menu item removes the highlight from the focused one, so only one item is highlighted at a time. -
#695
5f567cbThanks @blvdmitry! - Fixed otherFlyouttriggers staying unclickable after a hover flyout, for example aTooltip, was unmounted while open. Opening a hover flyout disables pointer events on the other open triggers while the mouse moves to its content, and they were only restored when the flyout closed through its own close handler. They are now also restored when the flyout unmounts while open or gets hidden with theactiveordisabledprops, so aPopoverorDropdownMenutrigger no longer stops responding after clicking a button with a tooltip that removes itself. -
#681
f1bd3d7Thanks @blvdmitry! - FormControl: Fixed the accessibility wiring betweenFormControland the form fields.FormControl.Helperis no longer announced as an alert andFormControl.Erroris announced politely.aria-describedbyis updated when the captions unmount and isn't rendered when there are no captions.useFormControlattributes now includearia-invalidandaria-requiredbased onhasErrorandrequired. Withgroup, the attributes are empty and the captions describe the fieldset instead, so every field inside the group can spread them safely.Checkbox,RadioandSliderare now linked toFormControl.Labeland the captions when used without a group,Sliderinputs are no longer labelled by their thumb value,TextFieldicons focus the field when used insideFormControl, andPinFieldnow supports theFormControldisabledandhasErrorstates and hides its visual characters from assistive technologies. -
#676
6150f4fThanks @mahirhir! - FixeduseHotkeysreacting to keys that belong to an IME composition. With a Japanese, Chinese or Korean input method, the Enter that confirms a conversion no longer triggers hotkeys, soAutocompleteno longer selects the highlighted option or callsonEnterwith unfinished text. -
#696
d64a630Thanks @blvdmitry! - FixedImagewithoutlineandaspectRatiogrowing to the image's natural height in Safari, which made anAvatarwith a largesrcrender as a tall pill inside a centeredModal. The outline wrapper now lays out the image as a flex item instead of relying onheight: 100%, which WebKit doesn't resolve against anaspect-ratioheight. Rootattributesand sizing styles are also no longer duplicated on the image element inside the outline wrapper, soid,refand event handlers passed inattributesonly apply to the root element. -
#669
9c58807Thanks @blvdmitry! - Improved theModalswipe-to-close performance on mobile. The drag offset custom property is now registered as non-inherited, so updating it on every frame of the gesture only recalculates the style of the modal root instead of every element of the modal content. -
#704
8ff0310Thanks @blvdmitry! -Modalwithbottomposition now renders a strip with its background fixed to the bottom edge of the screen while it's open. iOS Safari doesn't render the modal under its floating toolbar and fills the toolbar area with the color of the fixed elements attached to the screen edge instead, so the modal now visually continues under the toolbar instead of showing the page behind it -
#703
2715250Thanks @blvdmitry! -Modalwithstartandendpositions now supports swipe-to-close when its content is scrolled vertically, and horizontally scrollable areas inside it take priority over the swipe only while they can still scroll in the swipe direction. The gesture direction is resolved after the first few pixels, so vertical scrolling never moves the modal and swiping never scrolls the content, for all positions -
#683
6f4019fThanks @blvdmitry! - NumberField: Fixed the increase and decrease controls not being disabled when the value,minormaxis0, typed text being replaced while typing values like-0.5, and press-and-hold controls continuing to change the value after the pointer is cancelled or the component unmounts. The input now uses the decimal mobile keyboard whenstepis fractional orminis negative. ProgressBar: Fixed the progress value calculation whenminis not0. Slider: Keyboard navigation no longer moves a range thumb past the other one. PinField: Pasted values containing whitespace are no longer rejected. -
#690
0756cbfThanks @blvdmitry! -useOnClickOutsideno longer adds document listeners while disabled, which speeds up mounting many components using it, like editable items in long lists -
#667
3d94de2Thanks @blvdmitry! - Improved theOverlayanimation performance by rendering its backdrop as a separate layer with a static color and transitioning only itsopacity. Previously the full-viewport root transitionedbackground-coloron open and close and during theModaldrag-to-close gesture, which forced the browser to repaint the whole viewport on every frame on the main thread. The transition now runs entirely on the compositor thread while keeping the same visual result. -
#686
33532feThanks @blvdmitry! - Overlay: Replaced thebuttonrole of the root element withpresentation, since clicking outside the content is a pointer shortcut and keyboard users close it with Escape. Modal: Fixed the swipe to close gesture direction forstartandendpositions in RTL. Portal: Fixed the content rendered inside a shadow root moving todocument.bodyafter re-rendering. -
#668
3c21d21Thanks @blvdmitry! - Improved theScrollAreascrolling performance. The custom scrollbar thumb now follows the scroll position with atransforminstead ofinset, so the scroll-linked updates run on the compositor thread without triggering layout and paint, and the scroll position is written directly to a css variable instead of re-rendering the component on every scroll event. This also fixes the horizontal thumb moving outside of the scrollbar track when scrolling in RTL. -
#685
5cc5e96Thanks @blvdmitry! - Select: Fixed the custom Select accessibility semantics. The content now uses thelistboxrole witharia-multiselectablefor multiple selection, and the trigger usesaria-haspopup="listbox". When used insideFormControl, the trigger is labelled byFormControl.Labeland described by its captions. Selecting an option withmultipleno longer closes the content. -
#708
de2a1daThanks @blvdmitry! - Tabs: FixedTabs.Listnot becoming scrollable when its available width or content width changes without a window resize -
#689
21e0bc7Thanks @blvdmitry! - FixeduseRTLcreating its own RTL state for every component that calls it. It now reads theReshapedprovider state, so only the provider observes and updates thedirattribute andsetRTLchanges the direction for the whole app. -
Updated dependencies [
8ff0310,8ff0310]:- @reshaped/theming@4.3.0
- @reshaped/utilities@4.3.0
@reshaped/theming
Minor Changes
- #704
8ff0310Thanks @blvdmitry! - Moved the dark modeelevation-raisedandelevation-overlaybackground colors closer toelevation-base, so overlay components likeModalandPopoverno longer look washed out on top of the page. Regenerate custom themes to pick up the new values
@reshaped/utilities
Patch Changes
- #704
8ff0310Thanks @blvdmitry! -lockScrollon iOS now locks the document scroll withoverflow: hiddenon the element that scrolls the page, instead of movingbodyto a fixed position. Fixing the body collapsed the document height, which made Safari lose its translucent toolbars while aModalor other overlay was open, and the scroll position no longer has to be restored when unlocking. Unlocking the scroll on other platforms now also restores the original inlinepadding-rightandscrollbar-gutterof the scroll container instead of clearing them