* Add the timeline controller factory to the timeline view model.
In preparation for building a timeline to swipe through media in QuickLook.
* Refactor RoomTimelineControllerFactory.
* Refactor RoomTimelineController.
* Refactor RoomTimelineProvider.
* Revert back to UIKit for the presentation of the timeline media preview.
* Fix a presentation issue where the media is clipped until the animation finishes.
* Workaround for the preview controller replacing the info button when swiping.
* Use a self-sizing detent on the media info sheet.
* Add a fullscreen button to media previews - Not ideal but the gestures conflict with the preview controller.
* Don't un-flip the preview thumbnail until the preview has disappeared, and only do it on iOS 18.
* Add all of the loaded items for previewing in the preview controller.
* Embed the media preview quick look inside a full screen cover
With a zoom transition on iOS 18.
* Use a the representable coordinator properly.
* Fix a bug with the toolbar appearance.
* Format
* Try prevent the zoom transition being upside down.
* Fix the snapshot test configuration.
* Extract the timeline item background from the BubbledStyler.
* Use different views for files and voices messages, reuse the timeline content but only keep the bubble background instead of the whole TimelineStyler.
* Add back max voice message width and add missing accessibility label
* Move the voice message views to where they belong
* Add separate struct for each media events timeline view
* Add support for all the different media gallery message types and get the files section working
* Fix the order of the items in the media grid.
* Add media gallery timeline separators.
* Change the `SeparatorRoomTimelineItem` to have it expose a Date timestamp instead of a text string.
* Introduce a `MediaEventsTimelineFlowCoordinator`
* Update SDK API and architecture
* Add a feature flag, add translations
* Move the media events timeline presentation under the room flow coordinator state machine
* Rename `TimelineViewState.timelineViewState` of type `TimelineState` to `timelineState`
* Enabled SwiftLint's `trailing_closure` rule and fix the warnings.