|
| 1 | +{/* Copyright 2025 Adobe. All rights reserved. |
| 2 | +This file is licensed to you under the Apache License, Version 2.0 (the "License"); |
| 3 | +you may not use this file except in compliance with the License. You may obtain a copy |
| 4 | +of the License at http://www.apache.org/licenses/LICENSE-2.0 |
| 5 | +Unless required by applicable law or agreed to in writing, software distributed under |
| 6 | +the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS |
| 7 | +OF ANY KIND, either express or implied. See the License for the specific language |
| 8 | +governing permissions and limitations under the License. */} |
| 9 | + |
| 10 | +import {BlogPostLayout, Hero, Image} from '@react-spectrum/docs'; |
| 11 | +export default BlogPostLayout; |
| 12 | + |
| 13 | +--- |
| 14 | +description: This release includes a range of enhancements and fixes such as improved keyboard accessibility in TagGroup and increased stability for dynamic table updates. It also brings support for React 19’s ref cleanup behavior, performance improvements for collection updates in React transitions and pressable elements, and TypeScript updates including backwards compatibility with older TypeScript and `@types/react` versions. |
| 15 | + |
| 16 | +date: 2025-05-19 |
| 17 | +--- |
| 18 | + |
| 19 | +# May 19, 2025 Release |
| 20 | + |
| 21 | +This release includes a range of enhancements and fixes such as improved keyboard accessibility in TagGroup and increased stability for dynamic table updates. It also brings support for React 19’s ref cleanup behavior, performance improvements for collection updates in React transitions and pressable elements, and TypeScript updates including backwards compatibility with older TypeScript and `@types/react` versions. |
| 22 | + |
| 23 | +As always, thank you to our community for their support and contributions! |
| 24 | + |
| 25 | +## Enhancements |
| 26 | + |
| 27 | +* Collections |
| 28 | + * Add `moveBefore` and `moveAfter` methods to `useTreeData` - [@rob-clayburn](https://github.com/rob-clayburn) - [PR](https://github.com/adobe/react-spectrum/pull/7692) |
| 29 | + * Add shouldSelectOnPressUp prop to collection components - [@YumiChen](https://github.com/YumiChen) - [PR](https://github.com/adobe/react-spectrum/pull/7922) |
| 30 | +* Popover |
| 31 | + * Add `--trigger-width` to `Popover` within `DialogTrigger` - [@reidbarber](https://github.com/reidbarber) - [PR](https://github.com/adobe/react-spectrum/pull/7869) |
| 32 | +* TagGroup |
| 33 | + * Enable tabbing to tag remove buttons - [@kirilMatsiuk](https://github.com/kirilMatsiuk) - [PR](https://github.com/adobe/react-spectrum/pull/8002), [@snowystinger](https://github.com/snowystinger) - [PR](https://github.com/adobe/react-spectrum/pull/8194) |
| 34 | +* Misc |
| 35 | + * Support React 19 ref cleanup callback - [@chirokas](https://github.com/chirokas) - [PR](https://github.com/adobe/react-spectrum/pull/7758) |
| 36 | + * Export `useRenderProps` hook from `react-aria-components` - [@sebald](https://github.com/sebald) - [PR](https://github.com/adobe/react-spectrum/pull/8013) |
| 37 | + |
| 38 | +## Fixes |
| 39 | + |
| 40 | +* Collections |
| 41 | + * Fix updating dynamic `Table` columns - [@snowystinger](https://github.com/snowystinger) - [PR](https://github.com/adobe/react-spectrum/pull/8211) |
| 42 | + * Improve performance of collection updates in React transitions - [@devongovett](https://github.com/devongovett) - [PR](https://github.com/adobe/react-spectrum/pull/8204) |
| 43 | + * Prevent disabled items in collections from recieving focus when clicked - [@yihuiliao](https://github.com/yihuiliao) - [PR](https://github.com/adobe/react-spectrum/pull/8246) |
| 44 | +* Date and Time |
| 45 | + * Apply `aria-details` on `Calendar` - [@Persists](https://github.com/Persists) - [PR](https://github.com/adobe/react-spectrum/pull/8042) |
| 46 | + * Fix circular dependency in @internationalized/date - [@luixo](https://github.com/luixo) - [PR](https://github.com/adobe/react-spectrum/pull/8001) |
| 47 | +* TypeScript |
| 48 | + * Fix PortalProvider's `getContainer` typings - [@alexasselin008](https://github.com/alexasselin008) - [PR](https://github.com/adobe/react-spectrum/pull/8185) |
| 49 | + * Fix optimize-locales plugin types - [@stefanprobst](https://github.com/stefanprobst) - [PR](https://github.com/adobe/react-spectrum/pull/8087) |
| 50 | + * Fix backward compatibility with old versions of `@types/react` - [@snowystinger](https://github.com/snowystinger) - [PR](https://github.com/adobe/react-spectrum/pull/8099), [PR](https://github.com/adobe/react-spectrum/pull/8256) |
| 51 | +* usePress |
| 52 | + * Improve performance of applying `touch-action` style for pressable elements - [@reidbarber](https://github.com/reidbarber) - [PR](https://github.com/adobe/react-spectrum/pull/8200) |
| 53 | +* Misc |
| 54 | + * Fix `runAfterTransition` getting stuck when elements are removed - [@MercerK](https://github.com/MercerK) - [PR](https://github.com/adobe/react-spectrum/pull/8004) |
| 55 | + * Fix document is not defined error during SSR (#7926) - [@LisaRyrholm](https://github.com/LisaRyrholm) - [PR](https://github.com/adobe/react-spectrum/pull/7927) |
| 56 | + * Export PortalProvider from `react-aria` monopackage - [@snowystinger](https://github.com/snowystinger) - [PR](https://github.com/adobe/react-spectrum/pull/8135) |
| 57 | + * Properly pass `UNSAFE_className` in ColorSlider - [@chirokas](https://github.com/chirokas) - [PR](https://github.com/adobe/react-spectrum/pull/8190) |
| 58 | + |
| 59 | +## Docs |
| 60 | + |
| 61 | +* Fix default `Select` placeholder in docs - [@snowystinger](https://github.com/snowystinger) - [PR](https://github.com/adobe/react-spectrum/pull/7941) |
| 62 | +* Fix typo in `enterKeyHint` prop docs - [@artola](https://github.com/artola) - [PR](https://github.com/adobe/react-spectrum/pull/8121) |
| 63 | +* Fix TypeScript error in `FileTrigger` docs - [@ktabors](https://github.com/ktabors) - [PR](https://github.com/adobe/react-spectrum/pull/8172) |
| 64 | + |
| 65 | +## Released packages |
| 66 | + |
| 67 | +``` |
| 68 | + - @adobe/react-spectrum@3.42.0 |
| 69 | + - @internationalized/date@3.8.1 |
| 70 | + - @internationalized/number@3.6.2 |
| 71 | + - @react-aria/actiongroup@3.7.16 |
| 72 | + - @react-aria/autocomplete@3.0.0-beta.3 |
| 73 | + - @react-aria/breadcrumbs@3.5.24 |
| 74 | + - @react-aria/button@3.13.1 |
| 75 | + - @react-aria/calendar@3.8.1 |
| 76 | + - @react-aria/checkbox@3.15.5 |
| 77 | + - @react-aria/collections@3.0.0-rc.1 |
| 78 | + - @react-aria/color@3.0.7 |
| 79 | + - @react-aria/combobox@3.12.3 |
| 80 | + - @react-aria/datepicker@3.14.3 |
| 81 | + - @react-aria/dialog@3.5.25 |
| 82 | + - @react-aria/disclosure@3.0.5 |
| 83 | + - @react-aria/dnd@3.9.3 |
| 84 | + - @react-aria/focus@3.20.3 |
| 85 | + - @react-aria/form@3.0.16 |
| 86 | + - @react-aria/grid@3.14.0 |
| 87 | + - @react-aria/gridlist@3.13.0 |
| 88 | + - @react-aria/i18n@3.12.9 |
| 89 | + - @react-aria/interactions@3.25.1 |
| 90 | + - @react-aria/label@3.7.18 |
| 91 | + - @react-aria/landmark@3.0.3 |
| 92 | + - @react-aria/link@3.8.1 |
| 93 | + - @react-aria/listbox@3.14.4 |
| 94 | + - @react-aria/menu@3.18.3 |
| 95 | + - @react-aria/meter@3.4.23 |
| 96 | + - @react-aria/numberfield@3.11.14 |
| 97 | + - @react-aria/overlays@3.27.1 |
| 98 | + - @react-aria/progress@3.4.23 |
| 99 | + - @react-aria/radio@3.11.3 |
| 100 | + - @react-aria/searchfield@3.8.4 |
| 101 | + - @react-aria/select@3.15.5 |
| 102 | + - @react-aria/selection@3.24.1 |
| 103 | + - @react-aria/separator@3.4.9 |
| 104 | + - @react-aria/slider@3.7.19 |
| 105 | + - @react-aria/spinbutton@3.6.15 |
| 106 | + - @react-aria/steplist@3.0.0-alpha.17 |
| 107 | + - @react-aria/switch@3.7.3 |
| 108 | + - @react-aria/table@3.17.3 |
| 109 | + - @react-aria/tabs@3.10.3 |
| 110 | + - @react-aria/tag@3.6.0 |
| 111 | + - @react-aria/test-utils@1.0.0-alpha.7 |
| 112 | + - @react-aria/textfield@3.17.3 |
| 113 | + - @react-aria/toast@3.0.3 |
| 114 | + - @react-aria/toggle@3.11.3 |
| 115 | + - @react-aria/toolbar@3.0.0-beta.16 |
| 116 | + - @react-aria/tooltip@3.8.3 |
| 117 | + - @react-aria/tree@3.0.3 |
| 118 | + - @react-aria/utils@3.29.0 |
| 119 | + - @react-aria/virtualizer@4.1.5 |
| 120 | + - @react-aria/visually-hidden@3.8.23 |
| 121 | + - @react-spectrum/accordion@3.0.6 |
| 122 | + - @react-spectrum/actionbar@3.6.7 |
| 123 | + - @react-spectrum/actiongroup@3.10.15 |
| 124 | + - @react-spectrum/autocomplete@3.0.0-alpha.43 |
| 125 | + - @react-spectrum/avatar@3.0.22 |
| 126 | + - @react-spectrum/badge@3.1.23 |
| 127 | + - @react-spectrum/breadcrumbs@3.9.17 |
| 128 | + - @react-spectrum/button@3.16.14 |
| 129 | + - @react-spectrum/buttongroup@3.6.22 |
| 130 | + - @react-spectrum/calendar@3.7.1 |
| 131 | + - @react-spectrum/card@3.0.0-alpha.43 |
| 132 | + - @react-spectrum/checkbox@3.9.16 |
| 133 | + - @react-spectrum/color@3.0.7 |
| 134 | + - @react-spectrum/combobox@3.15.3 |
| 135 | + - @react-spectrum/contextualhelp@3.6.21 |
| 136 | + - @react-spectrum/datepicker@3.14.1 |
| 137 | + - @react-spectrum/dialog@3.8.21 |
| 138 | + - @react-spectrum/divider@3.5.23 |
| 139 | + - @react-spectrum/dnd@3.5.5 |
| 140 | + - @react-spectrum/dropzone@3.0.11 |
| 141 | + - @react-spectrum/filetrigger@3.0.11 |
| 142 | + - @react-spectrum/form@3.7.15 |
| 143 | + - @react-spectrum/icon@3.8.5 |
| 144 | + - @react-spectrum/illustratedmessage@3.5.10 |
| 145 | + - @react-spectrum/image@3.5.11 |
| 146 | + - @react-spectrum/inlinealert@3.2.15 |
| 147 | + - @react-spectrum/label@3.16.15 |
| 148 | + - @react-spectrum/labeledvalue@3.2.3 |
| 149 | + - @react-spectrum/layout@3.6.15 |
| 150 | + - @react-spectrum/link@3.6.17 |
| 151 | + - @react-spectrum/list@3.10.1 |
| 152 | + - @react-spectrum/listbox@3.15.1 |
| 153 | + - @react-spectrum/menu@3.22.1 |
| 154 | + - @react-spectrum/meter@3.5.10 |
| 155 | + - @react-spectrum/numberfield@3.9.13 |
| 156 | + - @react-spectrum/overlays@5.7.5 |
| 157 | + - @react-spectrum/picker@3.15.9 |
| 158 | + - @react-spectrum/progress@3.7.16 |
| 159 | + - @react-spectrum/provider@3.10.5 |
| 160 | + - @react-spectrum/radio@3.7.16 |
| 161 | + - @react-spectrum/s2@0.9.0 |
| 162 | + - @react-spectrum/searchfield@3.8.16 |
| 163 | + - @react-spectrum/slider@3.7.5 |
| 164 | + - @react-spectrum/statuslight@3.5.22 |
| 165 | + - @react-spectrum/steplist@3.0.0-alpha.15 |
| 166 | + - @react-spectrum/switch@3.6.1 |
| 167 | + - @react-spectrum/table@3.17.1 |
| 168 | + - @react-spectrum/tabs@3.8.20 |
| 169 | + - @react-spectrum/tag@3.3.0 |
| 170 | + - @react-spectrum/test-utils@1.0.0-alpha.7 |
| 171 | + - @react-spectrum/text@3.5.15 |
| 172 | + - @react-spectrum/textfield@3.13.3 |
| 173 | + - @react-spectrum/theme-dark@3.5.18 |
| 174 | + - @react-spectrum/theme-default@3.5.18 |
| 175 | + - @react-spectrum/theme-express@3.0.0-alpha.20 |
| 176 | + - @react-spectrum/theme-light@3.4.18 |
| 177 | + - @react-spectrum/toast@3.0.3 |
| 178 | + - @react-spectrum/tooltip@3.7.5 |
| 179 | + - @react-spectrum/tree@3.1.1 |
| 180 | + - @react-spectrum/utils@3.12.5 |
| 181 | + - @react-spectrum/view@3.6.19 |
| 182 | + - @react-spectrum/well@3.4.23 |
| 183 | + - @react-stately/calendar@3.8.1 |
| 184 | + - @react-stately/checkbox@3.6.14 |
| 185 | + - @react-stately/collections@3.12.4 |
| 186 | + - @react-stately/color@3.8.5 |
| 187 | + - @react-stately/combobox@3.10.5 |
| 188 | + - @react-stately/data@3.13.0 |
| 189 | + - @react-stately/datepicker@3.14.1 |
| 190 | + - @react-stately/disclosure@3.0.4 |
| 191 | + - @react-stately/dnd@3.5.4 |
| 192 | + - @react-stately/form@3.1.4 |
| 193 | + - @react-stately/grid@3.11.2 |
| 194 | + - @react-stately/layout@4.3.0 |
| 195 | + - @react-stately/list@3.12.2 |
| 196 | + - @react-stately/menu@3.9.4 |
| 197 | + - @react-stately/numberfield@3.9.12 |
| 198 | + - @react-stately/overlays@3.6.16 |
| 199 | + - @react-stately/radio@3.10.13 |
| 200 | + - @react-stately/searchfield@3.5.12 |
| 201 | + - @react-stately/select@3.6.13 |
| 202 | + - @react-stately/selection@3.20.2 |
| 203 | + - @react-stately/slider@3.6.4 |
| 204 | + - @react-stately/steplist@3.0.0-alpha.14 |
| 205 | + - @react-stately/table@3.14.2 |
| 206 | + - @react-stately/tabs@3.8.2 |
| 207 | + - @react-stately/toggle@3.8.4 |
| 208 | + - @react-stately/tooltip@3.5.4 |
| 209 | + - @react-stately/tree@3.8.10 |
| 210 | + - @react-stately/virtualizer@4.4.0 |
| 211 | + - @react-types/actionbar@3.1.15 |
| 212 | + - @react-types/actiongroup@3.4.17 |
| 213 | + - @react-types/autocomplete@3.0.0-alpha.31 |
| 214 | + - @react-types/avatar@3.0.15 |
| 215 | + - @react-types/badge@3.1.17 |
| 216 | + - @react-types/breadcrumbs@3.7.13 |
| 217 | + - @react-types/button@3.12.1 |
| 218 | + - @react-types/buttongroup@3.3.17 |
| 219 | + - @react-types/calendar@3.7.1 |
| 220 | + - @react-types/card@3.0.0-alpha.36 |
| 221 | + - @react-types/checkbox@3.9.4 |
| 222 | + - @react-types/color@3.0.5 |
| 223 | + - @react-types/combobox@3.13.5 |
| 224 | + - @react-types/contextualhelp@3.2.18 |
| 225 | + - @react-types/datepicker@3.12.1 |
| 226 | + - @react-types/dialog@3.5.18 |
| 227 | + - @react-types/divider@3.3.17 |
| 228 | + - @react-types/form@3.7.12 |
| 229 | + - @react-types/grid@3.3.2 |
| 230 | + - @react-types/illustratedmessage@3.3.17 |
| 231 | + - @react-types/image@3.4.9 |
| 232 | + - @react-types/label@3.9.11 |
| 233 | + - @react-types/layout@3.3.23 |
| 234 | + - @react-types/link@3.6.1 |
| 235 | + - @react-types/list@3.2.27 |
| 236 | + - @react-types/listbox@3.7.0 |
| 237 | + - @react-types/menu@3.10.1 |
| 238 | + - @react-types/meter@3.4.9 |
| 239 | + - @react-types/numberfield@3.8.11 |
| 240 | + - @react-types/overlays@3.8.15 |
| 241 | + - @react-types/progress@3.5.12 |
| 242 | + - @react-types/provider@3.8.9 |
| 243 | + - @react-types/radio@3.8.9 |
| 244 | + - @react-types/searchfield@3.6.2 |
| 245 | + - @react-types/select@3.9.12 |
| 246 | + - @react-types/shared@3.29.1 |
| 247 | + - @react-types/slider@3.7.11 |
| 248 | + - @react-types/statuslight@3.3.17 |
| 249 | + - @react-types/switch@3.5.11 |
| 250 | + - @react-types/table@3.13.0 |
| 251 | + - @react-types/tabs@3.3.15 |
| 252 | + - @react-types/text@3.3.17 |
| 253 | + - @react-types/textfield@3.12.2 |
| 254 | + - @react-types/tooltip@3.4.17 |
| 255 | + - @react-types/view@3.4.17 |
| 256 | + - @react-types/well@3.3.17 |
| 257 | + - @spectrum-icons/color@3.5.22 |
| 258 | + - @spectrum-icons/express@3.0.0-alpha.26 |
| 259 | + - @spectrum-icons/illustrations@3.6.22 |
| 260 | + - @spectrum-icons/ui@3.6.16 |
| 261 | + - @spectrum-icons/workflow@4.2.21 |
| 262 | + - @react-spectrum/codemods@0.6.0 |
| 263 | + - @react-aria/optimize-locales-plugin@1.1.5 |
| 264 | + - @react-spectrum/parcel-transformer-s2-icon@0.3.0 |
| 265 | + - @react-spectrum/s2-icon-builder@0.2.4 |
| 266 | + - react-aria@3.40.0 |
| 267 | + - react-aria-components@1.9.0 |
| 268 | + - react-stately@3.38.0 |
| 269 | +``` |
0 commit comments