Features
- Page refreshes with morphing by @jorgemanrubia & @afcapel in #1019
- Support View Transition API for navigations by @kevinmcconnell in #935
- Add InstantClick behavior by @davidalejandroaguilar in #1101
- Remove TypeScript by @afcapel in #971
- Remove unused stylesheets when navigating by @kevinmcconnell in #1128
- Introduce data-turbo-track="dynamic" by @afcapel in #1140
- Set aria-busy on the form element during a form submission by @afcapel in #1110
- Communicate Visit direction with
html[data-turbo-visit-direction]
by @domchristie in #1007 - Introduce
turbo:{before-,}morph-{element,attribute}
events by @seanpdoyle in #1097 - Set
html[lang]
during navigation by @seanpdoyle in #1035 - Dispatch
turbo:before-fetch-{request,response}
during preloading by @seanpdoyle in #1034
Fixes
- Change default action for form submissions that redirect to the current location by @afcapel in #1072
- Override
FetchOptions
from event listeners by @seanpdoyle in #691 - Turbo Streams: Manage element focus by @seanpdoyle in #686
- Rename header for preload requests by @pfeiffer in #925
- Dispatch turbo:load after loading 404 response by @domchristie in #960
- Page refreshes: Replace remaining calls to nextAnimationFrame by nextRepaint by @brunoprietog in #1102
- Restore attribute "refresh=morph" to flag turbo frames to reload during a page refresh by @jorgemanrubia in #1068
- Replace nextAnimationFrame by nextMicroTask by @michelson in #1042
- Hide Progress bar on
turbo:load
by @seanpdoyle in #1036 - Avoid infinite recursion from
window.fetch
name collision by @seanpdoyle in #1077 - Fix back navigation after POST form submission by @afcapel in #1014
- Fix Turbo stream link setting the src of a turbo frame container by @BakiVernes in #968
- Fix for SubmitEvent polyfill breaking requestSubmit() for newer Safari versions by @mrtnin in #933
- Don't preserve scroll position unless it's a page refresh by @jorgemanrubia in #1096
- Page refreshes: Use pathname instead of href to detect if locations are equal by @brunoprietog in #1079
- Page refreshes: Don't render previews by @brunoprietog in #1098
- Debounce page refreshes triggered via Turbo streams by @brunoprietog in #1099
- Guard
[data-turbo-preload]
with conditionals by @seanpdoyle in #1033 - Resolve issues with timeouts and target closures in test framework by @AfolabiOlaoluwa in #981
- Close
StreamSource
when<turbo-stream-source>
disconnects by @seanpdoyle in #970 - Create Frame Snapshot from Fetch Response HTML by @seanpdoyle in #887
- Ensure that the turbo-frame header is not sent when the turbo-frame has a target of _top by @afcapel in #1138
- Preloader: Rename header to
x-purpose
to avoid it being stripped by @pfeiffer in #1108 - Morph with
ignoreActiveValue: true
by @seanpdoyle in #1141 - Do not invalidate pages in visits that don't render by @afcapel in #1144
- Ensure page refreshes cause a reload when assets change by @afcapel in #1146
LinkPrefetchObserver
: replacedataset
withgetAttribute
by @seanpdoyle in #1148- Drive
turbo-frame
withTurbo.visit(url, { frame:, action: })
by @seanpdoyle in #1135
Full Changelog: v7.3.0...v8.0.0