Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions packages/dev/docs/pages/releases/2025-10-02.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ To support multi-selection in React Aria Select, we are updating the API from `s
* Fix overlay positioning when animation starts on first render - [@devongovett](https://github.com/devongovett) - [PR](https://github.com/adobe/react-spectrum/pull/8789)
* Menu
* Show checkboxes for selected items when `ContextualHelpTrigger` `isUnavailable` is set to false - [@reidbarber](https://github.com/reidbarber) - [PR](https://github.com/adobe/react-spectrum/pull/8921)
* Fix unavailable items - [@snowystinger](https://github.com/snowystinger) - [PR](https://github.com/adobe/react-spectrum/pull/9583)
* NumberField
* Pass `disabled` prop to hidden input in React Aria NumberField - [@tklepzig](https://github.com/tklepzig) - [PR](https://github.com/adobe/react-spectrum/pull/8706)
* Tree
Expand Down
239 changes: 239 additions & 0 deletions packages/dev/s2-docs/pages/react-aria/releases/v1-15-0.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,239 @@
{/* Copyright 2026 Adobe. All rights reserved.
This file is licensed to you under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. You may obtain a copy
of the License at http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under
the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
OF ANY KIND, either express or implied. See the License for the specific language
governing permissions and limitations under the License. */}

import {Layout} from '../../../src/Layout';
export default Layout;

import docs from 'docs:@react-spectrum/s2';

export const hideNav = true;
export const section = 'Releases';
export const tags = ['release', 'React Aria'];
export const date = 'February 4, 2026';
export const title = 'v1.15.0';
export const description = 'New year, new release, and the shine hasn’t worn off from our new documentation website! This month’s release includes expanded customization options via a new render prop, greater input flexibility in our datefields, and much more!'
export const isSubpage = true;

# v1.15.0

New year, new release, and the shine hasn’t worn off from our new documentation website: we’ve already added new [Agent Skills](../ai#agent-skills) and improved the search experience 😍. This month’s release includes a big update to our compatibility, with DOM customization options via a [new `render` prop](../customization#dom-elements) for React Aria Components. This feature will help with cases such as rendering Router Link components, or for use with animation libraries. We have also fixed our most upvoted issue: we now constrain dates on blur instead of as you type, allowing more input flexibility and greatly improving the user experience of our date fields.

Thank you to all of our contributors for your bug fixes, features, and feedback. We look forward to another great year ahead!

## Change log
### General
* Add `render` prop to allow customizing DOM element - [@devongovett](https://github.com/devongovett) - [PR](https://github.com/adobe/react-spectrum/pull/9499), [PR](https://github.com/adobe/react-spectrum/pull/9564)
* Add Agent skills - [@reidbarber](https://github.com/reidbarber) - [PR](https://github.com/adobe/react-spectrum/pull/9515)
### Button
* Support passing function via `formAction` prop - [@stefanprobst](https://github.com/stefanprobst) - [PR](https://github.com/adobe/react-spectrum/pull/9501)
### CoachMark
* Update `CoachMarkContext` and `SlottedContextValue` types - [@unional](https://github.com/unional) - [PR](https://github.com/adobe/react-spectrum/pull/9423)
### ColorField
* Add missing data attributes - [@mehdibha](https://github.com/mehdibha) - [PR](https://github.com/adobe/react-spectrum/pull/9105)
### ComboBox
* Prevent popover from closing when a section header is clicked - [@reidbarber](https://github.com/reidbarber) - [PR](https://github.com/adobe/react-spectrum/pull/9223)
* Fix correctly resetting `defaultSelectedKey` - [@chirokas](https://github.com/chirokas) - [PR](https://github.com/adobe/react-spectrum/pull/9129)
* Fix placeholder strings in the docs - [@snowystinger](https://github.com/snowystinger) - [PR](https://github.com/adobe/react-spectrum/pull/9390)
* Ensure `contains` is used as default filter - [@alexdametto](https://github.com/alexdametto) - [PR](https://github.com/adobe/react-spectrum/pull/9234)
### Date and Time
* Support entering invalid dates and constrain on blur - [@devongovett](https://github.com/devongovett) - [PR](https://github.com/adobe/react-spectrum/pull/9510)
* Fix date conversion format for native date input - [@yihuiliao](https://github.com/yihuiliao) - [PR](https://github.com/adobe/react-spectrum/pull/9076)
* Fix Modal from closing when dismissing DateRangePicker via outside click - [@chirokas](https://github.com/chirokas) - [PR](https://github.com/adobe/react-spectrum/pull/9505)
### Documentation
* Add subheadings as keywords for searching in docs - [@yihuiliao](https://github.com/yihuiliao) - [PR](https://github.com/adobe/react-spectrum/pull/9492)
* Fix `ts-config` for StackBlitz examples - [@snowystinger](https://github.com/snowystinger) - [PR](https://github.com/adobe/react-spectrum/pull/9526)
* Add Portuguese to supported locales in docs - [@armandabric](https://github.com/armandabric) - [PR](https://github.com/adobe/react-spectrum/pull/9513)
* Fix import in locale plugin doc to match plugin referenced in bundler config object - [@leiske](https://github.com/leiske) - [PR](https://github.com/adobe/react-spectrum/pull/9388)
### Drag and Drop
* Dispatch `focusing` on cancel to fix keyboard navigation when there are no valid drop targets - [@reidbarber](https://github.com/reidbarber) - [PR](https://github.com/adobe/react-spectrum/pull/9502)
### GridList
* Support `disallowTypeAhead` behavior - [@rilescode](https://github.com/rilescode) - [PR](https://github.com/adobe/react-spectrum/pull/9124)
* Add section docs [@yihuiliao](https://github.com/yihuiliao) - [PR](https://github.com/adobe/react-spectrum/pull/9447), [PR](https://github.com/adobe/react-spectrum/pull/9475), [PR](https://github.com/adobe/react-spectrum/pull/9528)
### Internationalization
* Add ESM support for `@internationalized/string-compiler` - [@joshuajaco](https://github.com/joshuajaco) - [PR](https://github.com/adobe/react-spectrum/pull/9465)
### Link
* Add `id` prop to Link component - [@AryanBagade](https://github.com/AryanBagade) - [PR](https://github.com/adobe/react-spectrum/pull/9349)
### ListBox
* Fix crash when dragging into an empty ListBoxc containing a ListBoxLoadMoreItem - [@chirokas](https://github.com/chirokas) - [PR](https://github.com/adobe/react-spectrum/pull/9520)
### Menu
* Add `shouldCloseOnSelect` - [@sfc-gh-alisowski](https://github.com/sfc-gh-alisowski) - [PR](https://github.com/adobe/react-spectrum/pull/8315)
* Add focus event types to collection items - [@damianstasik](https://github.com/damianstasik) - [PR](https://github.com/adobe/react-spectrum/pull/8231)
### NumberField
* Fix increment/decrementing buttons via Android TalkBack - [@chirokas](https://github.com/chirokas) - [PR](https://github.com/adobe/react-spectrum/pull/9416)
### Overlays
* Fix hiding elements inside of opened Modal overlay - [@alirezamirian](https://github.com/alirezamirian) - [PR](https://github.com/adobe/react-spectrum/pull/9365)
* Fix `useViewportSize` to update after hydration - [@ali-idrizi](https://github.com/ali-idrizi) - [PR](https://github.com/adobe/react-spectrum/pull/8966)
* Use ICB size as fallback value for visual viewport - [@lixiaoyan](https://github.com/lixiaoyan) - [PR](https://github.com/adobe/react-spectrum/pull/9384)
### RadioGroup
* Exclude null type from `validate` value - [@lixiaoyan](https://github.com/lixiaoyan) - [PR](https://github.com/adobe/react-spectrum/pull/9240)
### RangeSlider
* Allow dragging regardless of `usePreventScroll` on iOS - [@mattvague](https://github.com/mattvague) - [PR](https://github.com/adobe/react-spectrum/pull/9506)
### Select
* Fix `HiddenSelect` initial form value - [@joshuajaco](https://github.com/joshuajaco) - [PR](https://github.com/adobe/react-spectrum/pull/9466)
* Update arrays for multiple select values to be readonly - [@lixiaoyan](https://github.com/lixiaoyan) - [PR](https://github.com/adobe/react-spectrum/pull/9221)
### Table
* Add cell column index in render props - [@sebald](https://github.com/sebald) - [PR](https://github.com/adobe/react-spectrum/pull/9459)
* Change `onAction` to `onRowAction` in docs - [@yihuiliao](https://github.com/yihuiliao) - [PR](https://github.com/adobe/react-spectrum/pull/9378)
* Restore scroll position when non-virtualized - [@BRobin55](https://github.com/BRobin55) - [PR](https://github.com/adobe/react-spectrum/pull/8767), [@snowystinger](https://github.com/snowystinger) - [PR](https://github.com/adobe/react-spectrum/pull/9582)
### Tabs
* Exclude `disabledKeys` prop from TabPanel - [@lixiaoyan](https://github.com/lixiaoyan) - [PR](https://github.com/adobe/react-spectrum/pull/9238)
* Filter DOM props on TabPanels - [@yihuiliao](https://github.com/yihuiliao) - [PR](https://github.com/adobe/react-spectrum/pull/9432), [PR](https://github.com/adobe/react-spectrum/pull/9562)
### ToggleButtonGroup
* Fix hover state from showing when disabled - [@chirokas](https://github.com/chirokas) - [PR](https://github.com/adobe/react-spectrum/pull/9449)
### Tree
* Focus first available item when the previously focused item becomes disabled - [@snowystinger](https://github.com/snowystinger) - [PR](https://github.com/adobe/react-spectrum/pull/9531)
### useFilter
* Add support for `@typescript-eslint/unbound-method` - [@quisido](https://github.com/quisido) - [PR](https://github.com/adobe/react-spectrum/pull/9454)
### useFocusRing
* Improve performance - [@sfc-gh-tkojima](https://github.com/sfc-gh-tkojima) - [PR](https://github.com/adobe/react-spectrum/pull/9456)
### usePress
* Add `key` to `PressEvent` - [@reidbarber](https://github.com/reidbarber) - [PR](https://github.com/adobe/react-spectrum/pull/9491)
* Check `hasPointerCapture` before `releasePointerCapture` in `usePress` - [@plesiecki](https://github.com/plesiecki) - [PR](https://github.com/adobe/react-spectrum/pull/9123)
### Utilities
* Use `typeof globalThis` to reference global object - [@quisido](https://github.com/quisido) - [PR](https://github.com/adobe/react-spectrum/pull/9402)
### Virtualizer
* Add warning to users to set width and height if using Virtualizer - [@yihuiliao](https://github.com/yihuiliao) - [PR](https://github.com/adobe/react-spectrum/pull/9492)

## Under Construction
* Shadow DOM
* Use `node.contains` for Shadow DOM usage - [@snowystinger](https://github.com/snowystinger) - [PR](https://github.com/adobe/react-spectrum/pull/9485), [PR](https://github.com/adobe/react-spectrum/pull/9581)

## Released packages

```
- @internationalized/date@3.11.0
- @internationalized/string-compiler@3.3.0
- @react-aria/actiongroup@3.7.23
- @react-aria/autocomplete@3.0.0-rc.5
- @react-aria/breadcrumbs@3.5.31
- @react-aria/button@3.14.4
- @react-aria/calendar@3.9.4
- @react-aria/checkbox@3.16.4
- @react-aria/collections@3.0.2
- @react-aria/color@3.1.4
- @react-aria/combobox@3.14.2
- @react-aria/datepicker@3.16.0
- @react-aria/dialog@3.5.33
- @react-aria/disclosure@3.1.2
- @react-aria/dnd@3.11.5
- @react-aria/focus@3.21.4
- @react-aria/form@3.1.4
- @react-aria/grid@3.14.7
- @react-aria/gridlist@3.14.3
- @react-aria/i18n@3.12.15
- @react-aria/interactions@3.27.0
- @react-aria/label@3.7.24
- @react-aria/landmark@3.0.9
- @react-aria/link@3.8.8
- @react-aria/listbox@3.15.2
- @react-aria/menu@3.20.0
- @react-aria/meter@3.4.29
- @react-aria/numberfield@3.12.4
- @react-aria/overlays@3.31.1
- @react-aria/progress@3.4.29
- @react-aria/radio@3.12.4
- @react-aria/searchfield@3.8.11
- @react-aria/select@3.17.2
- @react-aria/selection@3.27.1
- @react-aria/separator@3.4.15
- @react-aria/slider@3.8.4
- @react-aria/spinbutton@3.7.1
- @react-aria/steplist@3.0.0-alpha.24
- @react-aria/switch@3.7.10
- @react-aria/table@3.17.10
- @react-aria/tabs@3.11.0
- @react-aria/tag@3.8.0
- @react-aria/textfield@3.18.4
- @react-aria/toast@3.0.10
- @react-aria/toggle@3.12.4
- @react-aria/toolbar@3.0.0-beta.23
- @react-aria/tooltip@3.9.1
- @react-aria/tree@3.1.6
- @react-aria/utils@3.33.0
- @react-aria/virtualizer@4.1.12
- @react-aria/visually-hidden@3.8.30
- @react-stately/calendar@3.9.2
- @react-stately/checkbox@3.7.4
- @react-stately/collections@3.12.9
- @react-stately/color@3.9.4
- @react-stately/combobox@3.12.2
- @react-stately/data@3.15.1
- @react-stately/datepicker@3.16.0
- @react-stately/disclosure@3.0.10
- @react-stately/dnd@3.7.3
- @react-stately/form@3.2.3
- @react-stately/grid@3.11.8
- @react-stately/layout@4.5.3
- @react-stately/list@3.13.3
- @react-stately/menu@3.9.10
- @react-stately/numberfield@3.10.4
- @react-stately/overlays@3.6.22
- @react-stately/radio@3.11.4
- @react-stately/searchfield@3.5.18
- @react-stately/select@3.9.1
- @react-stately/selection@3.20.8
- @react-stately/slider@3.7.4
- @react-stately/steplist@3.0.0-alpha.20
- @react-stately/table@3.15.3
- @react-stately/tabs@3.8.8
- @react-stately/toast@3.1.3
- @react-stately/toggle@3.9.4
- @react-stately/tooltip@3.5.10
- @react-stately/tree@3.9.5
- @react-stately/virtualizer@4.4.5
- @react-types/actionbar@3.1.20
- @react-types/actiongroup@3.4.22
- @react-types/autocomplete@3.0.0-alpha.37
- @react-types/avatar@3.0.20
- @react-types/badge@3.1.22
- @react-types/breadcrumbs@3.7.18
- @react-types/button@3.15.0
- @react-types/buttongroup@3.3.22
- @react-types/calendar@3.8.2
- @react-types/card@3.0.0-alpha.42
- @react-types/checkbox@3.10.3
- @react-types/color@3.1.3
- @react-types/combobox@3.13.11
- @react-types/contextualhelp@3.2.23
- @react-types/datepicker@3.13.4
- @react-types/dialog@3.5.23
- @react-types/divider@3.3.22
- @react-types/form@3.7.17
- @react-types/grid@3.3.7
- @react-types/illustratedmessage@3.3.22
- @react-types/image@3.5.3
- @react-types/label@3.9.16
- @react-types/layout@3.3.28
- @react-types/link@3.6.6
- @react-types/list@3.2.36
- @react-types/listbox@3.7.5
- @react-types/menu@3.10.6
- @react-types/meter@3.4.14
- @react-types/numberfield@3.8.17
- @react-types/overlays@3.9.3
- @react-types/progress@3.5.17
- @react-types/provider@3.8.14
- @react-types/radio@3.9.3
- @react-types/searchfield@3.6.7
- @react-types/select@3.12.1
- @react-types/shared@3.33.0
- @react-types/slider@3.8.3
- @react-types/statuslight@3.3.22
- @react-types/switch@3.5.16
- @react-types/table@3.13.5
- @react-types/tabs@3.3.21
- @react-types/text@3.3.22
- @react-types/textfield@3.12.7
- @react-types/tooltip@3.5.1
- @react-types/view@3.4.22
- @react-types/well@3.3.22
- react-aria@3.46.0
- react-aria-components@1.15.0
- react-stately@3.44.0
```
1 change: 1 addition & 0 deletions packages/dev/s2-docs/pages/s2/ColorSwatchPicker.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ export const description = 'Displays a list of color swatches and allows a user
<PageDescription>{docs.exports.ColorSwatchPicker.description}</PageDescription>

```tsx render docs={docs.exports.ColorSwatchPicker} links={docs.links} props={['size', 'density', 'rounding']} initialProps={{defaultValue: '#f00'}} type="s2"
"use client";
import {ColorSwatchPicker, ColorSwatch} from '@react-spectrum/s2';

<ColorSwatchPicker/* PROPS */>
Expand Down
1 change: 1 addition & 0 deletions packages/dev/s2-docs/pages/s2/InlineAlert.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ export const description = 'Displays a non-modal message associated with objects
<PageDescription>{docs.exports.InlineAlert.description}</PageDescription>

```tsx render docs={docs.exports.InlineAlert} links={docs.links} props={['variant', 'fillStyle']} initialProps={{variant: 'neutral'}} type="s2" wide
"use client";
import {InlineAlert, Heading, Content} from '@react-spectrum/s2';

<InlineAlert/* PROPS */>
Expand Down
45 changes: 45 additions & 0 deletions packages/dev/s2-docs/pages/s2/releases/v1-1-0.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@

{/* Copyright 2026 Adobe. All rights reserved.
This file is licensed to you under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. You may obtain a copy
of the License at http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under
the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
OF ANY KIND, either express or implied. See the License for the specific language
governing permissions and limitations under the License. */}

import {Layout} from '../../../src/Layout';
export default Layout;

import docs from 'docs:@react-spectrum/s2';

export const hideNav = true;
export const section = 'Releases';
export const tags = ['release', 'S2'];
export const date = 'February 4, 2026';
export const title = 'v1.1.0';
export const description = 'It’s our first release of the new year and we’ve got plenty of exciting treats we’re bringing to the table. Our documentation site now includes a new dark/light mode switch, a new Color section in the search menu, and Agent Skills to be used by your AI coding tools. There are also several other bug fixes, including properly rendering menu popovers and updating the disabledBehavior style for TreeView.';
export const isSubpage = true;

# v1.1.0

It’s our first release of the new year and we’ve got plenty of exciting treats we’re bringing to the table. We’ve added a variety of new features to our documentation site including a new dark/light mode switch in the site header. Our search menu also now features a Colors section where you can browse the Spectrum-defined colors and search by name or hex value to find close or exact matches. We also now offer our docs in the form of [Agent Skills](../ai#agent-skills) that can be installed locally and used by your favorite AI coding tools.

This release also includes several bugs fixes, such as properly rendering menus when rendered from within a popover and updates to TreeView disabledBehavior styling to match the latest designs.

Thank you for all of your feedback on 1.0 and stay tuned for more updates and enhancements coming throughout the year!

## Change log
### ActionBar
* Add missing `UNSAFE_className` and `UNSAFE_style` - [@yihuiliao](https://github.com/yihuiliao) - [PR](https://github.com/adobe/react-spectrum/pull/9529)
### ColorWheel
* Fix broken track when placed within a container - [@reidbarber](https://github.com/reidbarber) - [PR](https://github.com/adobe/react-spectrum/pull/9440)
### Documentation
* Add color scheme switcher to docs - [@reidbarber](https://github.com/reidbarber) - [PR](https://github.com/adobe/react-spectrum/pull/9403), [PR](https://github.com/adobe/react-spectrum/pull/9476), [PR](https://github.com/adobe/react-spectrum/pull/9534)
* Improve markdown output for Style Macro reference page - [@reidbarber](https://github.com/reidbarber) - [PR](https://github.com/adobe/react-spectrum/pull/9535)
### Menu
* Fix typescript for `children` in MenuSection - [@snowystinger](https://github.com/snowystinger) - [PR](https://github.com/adobe/react-spectrum/pull/9480)
* Render menu popover if MenuTrigger is inside the popover - [@yihuiliao](https://github.com/yihuiliao) - [PR](https://github.com/adobe/react-spectrum/pull/9549)
### TreeView
* Fix hover state from persisting on iOS 26 - [@snowystinger](https://github.com/snowystinger) - [PR](https://github.com/adobe/react-spectrum/pull/9530)
* Update `disabledBehavior` style - [@yihuiliao](https://github.com/yihuiliao) - [PR](https://github.com/adobe/react-spectrum/pull/9472)
4 changes: 3 additions & 1 deletion scripts/changelog.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@ const spawn = require('child_process').spawnSync;
const fs = require('fs');
const Octokit = require('@octokit/rest');

const octokit = new Octokit();
const octokit = new Octokit({
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i got tired of having to copy paste my token and remembering to remove the changes before committing

auth: `token ${process.env.GITHUB_TOKEN}`
});

run();

Expand Down