The code of `ScalableImage` is exactly the same as [here](https://github.com/JetBrains/compose-multiplatform-core/pull/459/files#diff-2df227d37a7fcdb885f4fd1a715c0efd94b8e206d446d553d69a456f83e284f6R19):
1. The initial size of an image is chosen by the area size (phone/windows size)
2. We can zoom using pinch-to-zoom (with taking centroid of touches into account)
3. We can zoom using mouse scroll (also, taking the mouse position into account). On touchpad/macOS it also works great.
4. The code of the old `ScalableState` and `ScalableImage` was complete rewritten.
5. The zoom is not limited by phone/window dimensions, we can zoom out
* Avoid scaling code duplication
* Move AndroidImageStorage into separate package
* Implement storing metadata on Android
* Move file extensions to separate class
* Fix selection in codeviewer example
* Limit line count on view layer
* Fix last line ending
* Fix missing last empty line in file
* Refactor reading file
* Add extra endPosition condition
* Polish removing line endings
* Add composable-test-cases project to check JB compose compiler for all targets
* Add README.MD
* Update README.MD
* Update README.MD
* Update CollectionOfComposablesTests
* Add a fun interface test case
* Add class constructors test cases
* Add anonymous objects test cases
* Add lambdas test cases
* Disable mingwX64 target for CI runs
* Update README.MD
* uncomment the getter in `val Project.isInIdea`
* Simplify GlobalSnapshotManager
Apparently some tests get stuck (timeout 60s) in jvm when running on CI. Every time it's a different test.
* add a partially failing test cases
`rememberAnonymousObj` fails with k/js, but works with other targets.
* try workaround tests timeout on CI
close the Channel in the end of a test
* Introduce fun RecompositionObserver.waitUntilChangesApplied
* Try runTest with UnconfinedTestDispatcher()
* remove Dispatchers.Default usage for recomposer
* revert "remove Dispatchers.Default usage for recomposer"
* pass test coroutine context to Recomposer
* add value class test cases
* add "same-module all-private" value class test case
* add a test case for value class with non-primitive property type
* value class: add a composable with a default value test case
* Update Readme