preactjs/preact (preact)
### [`v10.17.1`](https://togithub.com/preactjs/preact/releases/tag/10.17.1)
[Compare Source](https://togithub.com/preactjs/preact/compare/10.17.0...10.17.1)
#### Fixes
- Fix double unmount ([#4105](https://togithub.com/preactjs/preact/issues/4105), thanks [@developit](https://togithub.com/developit))
- Don't rename `gotpointercapture` and `lostpointercapture` events ([#4096](https://togithub.com/preactjs/preact/issues/4096), thanks [@rschristian](https://togithub.com/rschristian))
#### Types
- Ensure all WAI-ARIA 1.2 roles are supported in our types ([#4101](https://togithub.com/preactjs/preact/issues/4101), thanks [@rschristian](https://togithub.com/rschristian))
#### Maintenance
- Golf size/perf of [#4096](https://togithub.com/preactjs/preact/issues/4096) ([#4102](https://togithub.com/preactjs/preact/issues/4102), thanks [@developit](https://togithub.com/developit))
### [`v10.17.0`](https://togithub.com/preactjs/preact/releases/tag/10.17.0)
[Compare Source](https://togithub.com/preactjs/preact/compare/10.16.0...10.17.0)
#### Features
- Support the `isElement` function in preact/compat ([#4041](https://togithub.com/preactjs/preact/issues/4041), thanks [@cbbfcd](https://togithub.com/cbbfcd))
- Support the `isFragment` function in preact/compat ([#4042](https://togithub.com/preactjs/preact/issues/4042), thanks [@cbbfcd](https://togithub.com/cbbfcd))
#### Types
- Support the HTML search element ([#4092](https://togithub.com/preactjs/preact/issues/4092), thanks [@JoviDeCroock](https://togithub.com/JoviDeCroock))
- Re-export `ComponentChild` as `ReactNode` in the preact/compat types ([#4077](https://togithub.com/preactjs/preact/issues/4077), thanks [@rschristian](https://togithub.com/rschristian))
- Add missing SvgProps and make the generics mandatory ([#4071](https://togithub.com/preactjs/preact/issues/4071), thanks [@JoviDeCroock](https://togithub.com/JoviDeCroock))
- Fix dom-event types([#4066](https://togithub.com/preactjs/preact/issues/4066), thanks [@JoviDeCroock](https://togithub.com/JoviDeCroock))
#### Fixes
- Eagerly unmount placeholders ([#4090](https://togithub.com/preactjs/preact/issues/4090), thanks [@andrewiggins](https://togithub.com/andrewiggins))
- Avoid skipping re-orders in child diffing ([#4088](https://togithub.com/preactjs/preact/issues/4088), thanks [@JoviDeCroock](https://togithub.com/JoviDeCroock))
- reduce stack size of try catch by excluding non components ([#4067](https://togithub.com/preactjs/preact/issues/4067), thanks [@JoviDeCroock](https://togithub.com/JoviDeCroock))
- Fix react-frame-component by supporting nullish portals ([#3896](https://togithub.com/preactjs/preact/issues/3896), thanks [@JoviDeCroock](https://togithub.com/JoviDeCroock))
#### Maintenance
- Fix running our benchmarks since the branch rename ([#4089](https://togithub.com/preactjs/preact/issues/4089), thanks [@JoviDeCroock](https://togithub.com/JoviDeCroock))
- Fix IE11 attribute test by sorting them ([#4070](https://togithub.com/preactjs/preact/issues/4070), thanks [@marvinhagemeister](https://togithub.com/marvinhagemeister))
- Switch default branch to `main` ([#4069](https://togithub.com/preactjs/preact/issues/4069), thanks [@marvinhagemeister](https://togithub.com/marvinhagemeister))
### [`v10.16.0`](https://togithub.com/preactjs/preact/releases/tag/10.16.0)
[Compare Source](https://togithub.com/preactjs/preact/compare/10.15.1...10.16.0)
#### Improved child diffing
- Port skew based child diffing ([#4010](https://togithub.com/preactjs/preact/issues/4010), thanks [@JoviDeCroock](https://togithub.com/JoviDeCroock))
We have noticed a few scenario's where children would get unmounted and remounted eagerly due to some offset bugs in our child-diffing, with skew-based diffing we plan to address those. This is already part of v11 and has been introduced there by [@andrewiggins](https://togithub.com/andrewiggins). This has now been backported to Preact X so we can benefit from the consistency improvements here as well.
#### Defer setting refs
- fix: setting ref to null after updating it with new element ([#4054](https://togithub.com/preactjs/preact/issues/4054), thanks [@JoviDeCroock](https://togithub.com/JoviDeCroock))
We used to set refs as part of the children, synchronously this caused several issues when a ref would go down a level, i.e. the following example
const App = () => {
return phase === 1 ?
Foo
:
Foo
}
In this example when we go from phase 1 to phase 2 we would mount a new ref but only after we bubble back up diffing clean up the outer ref making the ref reset to null.
#### Fixes
- fix: incorrect actDepth calculation in test-utils ([#4051](https://togithub.com/preactjs/preact/issues/4051), thanks [@ottomao](https://togithub.com/ottomao))
- Server compat should have a default export ([#4047](https://togithub.com/preactjs/preact/issues/4047), thanks [@MikaFima](https://togithub.com/MikaFima))
- Fix forceUpdate edge cases ([#4048](https://togithub.com/preactjs/preact/issues/4048), thanks [@dmitrage](https://togithub.com/dmitrage))
- Include HTML above render root for DOM validation ([#4043](https://togithub.com/preactjs/preact/issues/4043), thanks [@marvinhagemeister](https://togithub.com/marvinhagemeister))
#### Types
- Types: add missing aria attributes ([#4032](https://togithub.com/preactjs/preact/issues/4032), thanks [@shoonia](https://togithub.com/shoonia))
- improve VNode typings when generic is passed in ([#4050](https://togithub.com/preactjs/preact/issues/4050), thanks [@JoviDeCroock](https://togithub.com/JoviDeCroock))
### [`v10.15.1`](https://togithub.com/preactjs/preact/releases/tag/10.15.1)
[Compare Source](https://togithub.com/preactjs/preact/compare/10.15.0...10.15.1)
#### Fixes
- Fix TS FunctionComponent w/ exactOptionalPropertyTypes ([#4025](https://togithub.com/preactjs/preact/issues/4025), thanks [@rschristian](https://togithub.com/rschristian))
#### Types
- Add W3C aria attributes ([#4026](https://togithub.com/preactjs/preact/issues/4026), thanks [@shoonia](https://togithub.com/shoonia))
- Adds missing Context and Dispatch types to compat ([#4028](https://togithub.com/preactjs/preact/issues/4028), thanks [@Scott-Fischer](https://togithub.com/Scott-Fischer))
### [`v10.15.0`](https://togithub.com/preactjs/preact/releases/tag/10.15.0)
[Compare Source](https://togithub.com/preactjs/preact/compare/10.14.1...10.15.0)
#### Revert
- Revert controlled components ([#4009](https://togithub.com/preactjs/preact/issues/4009), thanks [@JoviDeCroock](https://togithub.com/JoviDeCroock))
#### fixes
- fix: keep hooks index with useEffect ([#4016](https://togithub.com/preactjs/preact/issues/4016), thanks [@1o1w1](https://togithub.com/1o1w1))
#### Types
- Add Missing `ForwardRefExoticComponent` and `RefAttributes` types in compat ([#3996](https://togithub.com/preactjs/preact/issues/3996), thanks [@rschristian](https://togithub.com/rschristian))
- Add types for `
This PR contains the following updates:
10.13.2
->10.17.1
Release Notes
preactjs/preact (preact)
### [`v10.17.1`](https://togithub.com/preactjs/preact/releases/tag/10.17.1) [Compare Source](https://togithub.com/preactjs/preact/compare/10.17.0...10.17.1) #### Fixes - Fix double unmount ([#4105](https://togithub.com/preactjs/preact/issues/4105), thanks [@developit](https://togithub.com/developit)) - Don't rename `gotpointercapture` and `lostpointercapture` events ([#4096](https://togithub.com/preactjs/preact/issues/4096), thanks [@rschristian](https://togithub.com/rschristian)) #### Types - Ensure all WAI-ARIA 1.2 roles are supported in our types ([#4101](https://togithub.com/preactjs/preact/issues/4101), thanks [@rschristian](https://togithub.com/rschristian)) #### Maintenance - Golf size/perf of [#4096](https://togithub.com/preactjs/preact/issues/4096) ([#4102](https://togithub.com/preactjs/preact/issues/4102), thanks [@developit](https://togithub.com/developit)) ### [`v10.17.0`](https://togithub.com/preactjs/preact/releases/tag/10.17.0) [Compare Source](https://togithub.com/preactjs/preact/compare/10.16.0...10.17.0) #### Features - Support the `isElement` function in preact/compat ([#4041](https://togithub.com/preactjs/preact/issues/4041), thanks [@cbbfcd](https://togithub.com/cbbfcd)) - Support the `isFragment` function in preact/compat ([#4042](https://togithub.com/preactjs/preact/issues/4042), thanks [@cbbfcd](https://togithub.com/cbbfcd)) #### Types - Support the HTML search element ([#4092](https://togithub.com/preactjs/preact/issues/4092), thanks [@JoviDeCroock](https://togithub.com/JoviDeCroock)) - Re-export `ComponentChild` as `ReactNode` in the preact/compat types ([#4077](https://togithub.com/preactjs/preact/issues/4077), thanks [@rschristian](https://togithub.com/rschristian)) - Add missing SvgProps and make the generics mandatory ([#4071](https://togithub.com/preactjs/preact/issues/4071), thanks [@JoviDeCroock](https://togithub.com/JoviDeCroock)) - Fix dom-event types([#4066](https://togithub.com/preactjs/preact/issues/4066), thanks [@JoviDeCroock](https://togithub.com/JoviDeCroock)) #### Fixes - Eagerly unmount placeholders ([#4090](https://togithub.com/preactjs/preact/issues/4090), thanks [@andrewiggins](https://togithub.com/andrewiggins)) - Avoid skipping re-orders in child diffing ([#4088](https://togithub.com/preactjs/preact/issues/4088), thanks [@JoviDeCroock](https://togithub.com/JoviDeCroock)) - reduce stack size of try catch by excluding non components ([#4067](https://togithub.com/preactjs/preact/issues/4067), thanks [@JoviDeCroock](https://togithub.com/JoviDeCroock)) - Fix react-frame-component by supporting nullish portals ([#3896](https://togithub.com/preactjs/preact/issues/3896), thanks [@JoviDeCroock](https://togithub.com/JoviDeCroock)) #### Maintenance - Fix running our benchmarks since the branch rename ([#4089](https://togithub.com/preactjs/preact/issues/4089), thanks [@JoviDeCroock](https://togithub.com/JoviDeCroock)) - Fix IE11 attribute test by sorting them ([#4070](https://togithub.com/preactjs/preact/issues/4070), thanks [@marvinhagemeister](https://togithub.com/marvinhagemeister)) - Switch default branch to `main` ([#4069](https://togithub.com/preactjs/preact/issues/4069), thanks [@marvinhagemeister](https://togithub.com/marvinhagemeister)) ### [`v10.16.0`](https://togithub.com/preactjs/preact/releases/tag/10.16.0) [Compare Source](https://togithub.com/preactjs/preact/compare/10.15.1...10.16.0) #### Improved child diffing - Port skew based child diffing ([#4010](https://togithub.com/preactjs/preact/issues/4010), thanks [@JoviDeCroock](https://togithub.com/JoviDeCroock)) We have noticed a few scenario's where children would get unmounted and remounted eagerly due to some offset bugs in our child-diffing, with skew-based diffing we plan to address those. This is already part of v11 and has been introduced there by [@andrewiggins](https://togithub.com/andrewiggins). This has now been backported to Preact X so we can benefit from the consistency improvements here as well. #### Defer setting refs - fix: setting ref to null after updating it with new element ([#4054](https://togithub.com/preactjs/preact/issues/4054), thanks [@JoviDeCroock](https://togithub.com/JoviDeCroock)) We used to set refs as part of the children, synchronously this caused several issues when a ref would go down a level, i.e. the following example const App = () => { return phase === 1 ?Foo
Foo