Update dependency org.jetbrains.compose to v1.7.1 #78
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
1.5.11
->1.7.1
Release Notes
JetBrains/compose-jb (org.jetbrains.compose)
v1.7.1
Changes since 1.7.0
Fixes
Multiple Platforms
Modifier.clickable
binary compatibility with 1.6 on non-JVM targetsModifier.toggleable
andModifier.selectable
binary compatibility with 1.6 on non-JVM targetsDateRangePicker
doesn't show confirmation button on iOS and DesktopiOS
Desktop
Dependencies
Gradle Plugin
org.jetbrains.compose
, version1.7.1
. Based on Jetpack Compose libraries:Lifecycle libraries
org.jetbrains.androidx.lifecycle:lifecycle-*:2.8.4
. Based on Jetpack Lifecycle 2.8.5Navigation libraries
org.jetbrains.androidx.navigation:navigation-*:2.8.0-alpha10
. Based on Jetpack Navigation 2.8.0Material3 Adaptive libraries
org.jetbrains.compose.material3.adaptive:adaptive*:1.0.1
. Based on Jetpack Material3 Adaptive 1.0.0v1.7.0
Changes since 1.6.11
Highlights
Resources
Navigation
Web
skiko.js
is redundant in case of K/Wasm Compose Multiplatform for web applications and it can be removed from index.html files to not load redundant files.skiko.js
will be removed from the k/wasm distribution in the future releases.skiko.js
is still needed in case of K/JS Compose Multiplatform for web appsBreaking changes
iOS
UIKitView
andUIKitViewController
inpackage androidx.compose.ui.interop
are deprecated. New API are mentioned in deprecation message. Deprecated invocations should work fine unless customonResize
is used, it is disallowed now and will print a warning.InteropView
on iOS isUIResponder
now instead ofUIView
. It's the first common ancestor forUIViewController
andUIView
, both of which can be integrated using iOS interop APIsCADisableMinimumFrameDurationOnPhone
is not set to true inInfo.plist
. Use newly addedComposeUIViewControllerConfiguration.enforceStrictPlistSanityCheck
to opt-out of this behaviorDesktop
Modifier.onExternalDrag
has been deprecated in favor of the newModifier.dragAndDropTarget
Android
Resources
compose.ui
in favour of the new resource libraryFeatures
Multiple Platforms
clickable
modifier now responds to NumPadEnter and Spacebar, too, in addition to EnterLocalLifecycleOwner
moved from Compose UI tolifecycle-runtime-compose
so that its Compose-based helper APIs can be used outside of Compose UIorg.jetbrains.compose.material3:material3-window-size-class
moduleorg.jetbrains.compose.material3.adaptive:adaptive*
modulesmaterial3-adaptive-navigation-suite
is multiplatform nowiOS
accessibilityEnabled: Boolean = true
argument toUIKitView
andUIKitViewController
preferredStatusBarStyle
,preferredStatysBarAnimation
andprefersStatusBarHidden
are added toComposeUIViewControllerDelegate
to allow status bar appearance modificationUIKitView
andUIKitViewController
API inpackage androidx.compose.ui.viewinterop
. Support ofonReset
to reuse the interop composable emitted node and avoid excessive native views reallocations, fine-grain touches strategy control (cooperative with explicit time delay, non-cooperative where no touches are received by Compose, ignoring touches)BasicTextField(TextFieldState, ...)
on iOSDesktop
RenderSettings
toComposePanel
. Added a classRenderSettings
withval isVsyncEnabled: Boolean?
. When set totrue
gives a hint to renderer implementation of the particularComposePanel
to reduce the latency between the input and visual changes in exchange for possible screen tearingmoveEnabled
andpositionPercentage
setters inSplitPaneState
Modifier.dragAndDropSource
andModifier.dragAndDropTarget
decoration
argumentResources
Bitmap ByteArray as ImageVector
andXML ByteArray as ImageVector
in the common code andSVG ByteArray as Painter
in the non-android codeGradle Plugin
compose.material3AdaptiveNavigationSuite
shortcut in the gradle pluginFixes
Multiple Platforms
commonMain
that fails on Android withNoSuchMethodException
Popup
jerking during ripple effect animationShaderBrush
to part ofAnnotatedString
brush
animation and optimized updating some visual text properties (applying time is reduced up to 40%)TextField
with explicitly setTextAlignment
TextField
insideExposedDropdownMenuBox
FontRenderingSettings
is not reflected until composition restartsiOS
ComposeUIViewController
(such as when used in modal sheet presentation context with different detents)material3.ModalBottomSheet
safe area usageplatformLayers
. Now extra layers (such as Dialogs and Popups) drawing is merged into a single screen size canvas. No jittering and crashes should happen with those anymore.Dialog
s andPopup
s now have their insets calculated correctly even when the frame ofComposeUIViewController
spawning them doesn't intersect any safe areasTextField
imePadding
and high cpu usage when repeatedly opening and closingKeyboard
on iOS"Desktop
UninitializedPropertyAccessException
indesktopTest
ComposePanel.requestFocus()
, making it correctly assign focus to the first focusable childComposePanel
inside a Swing application on macOS, VoiceOver will now correctly go into theComposePanel
when traversing accessible elementsComposePanel
inside a Swing application on Windows with NVDA turned on, focus will now correctly go into theComposePanel
when traversing with (ctrl)-shift-tabWindowState
with unspecifiedsize
instead of crashingIndexOutOfBoundsException
crash on Windows when traversing a11y elementsSelectionContainer
or on the padding of aText
inside aSelectionContainer
ComposePanel
in IntelliJ on macOsWindowState
Web
keydown
andkeyup
keys for identified keys from virtual keyboardskiko.wasm
SelectionContainer
Resources
contextClassLoader
usage on JVM targetsGradle Plugin
Dependencies
Gradle Plugin
org.jetbrains.compose
, version1.7.0
. Based on Jetpack Compose libraries:Lifecycle libraries
org.jetbrains.androidx.lifecycle:lifecycle-*:2.8.3
. Based on Jetpack Lifecycle 2.8.5Navigation libraries
org.jetbrains.androidx.navigation:navigation-*:2.8.0-alpha10
. Based on Jetpack Navigation 2.8.0Material3 Adaptive libraries
org.jetbrains.compose.material3.adaptive:adaptive*:1.0.0
. Based on Jetpack Material3 Adaptive 1.0.0v1.6.11
Changes since 1.6.10
Fixes
Multiple Platforms
TextField(singleLine=true)
withIntrinsicSize
Dialog
centering insideImageComposeScene
iOS
UIMenuController
APIDesktop
DropdownMenu
/Popup
positioning when a window is moved to a screen with a different densityWeb
DatePicker
text field receives illegal inputResources
Gradle Plugin
Dependencies
Gradle Plugin
org.jetbrains.compose
, version1.6.11
. Based on Jetpack Compose libraries:Lifecycle libraries
org.jetbrains.androidx.lifecycle:lifecycle-*:2.8.0
. Based on Jetpack Lifecycle 2.8.0Navigation libraries
org.jetbrains.androidx.navigation:navigation-*:2.7.0-alpha07
. Based on Jetpack Navigation 2.7.7v1.6.10
Changes since 1.6.2
Highlights
Lifecycle
andViewModel
. See documentation for details2.0.0-Beta05
or higher is required)Breaking changes
2.0-RC2
, the additionalorg.jetbrains.kotlin.plugin.compose
Gradle plugin is required. See the migration guideFeatures
Multiple Platforms
ui
,material
andmaterial3
iOS
Dialog
trace
HapticFeedback
on iOSLiveRegion
semantics in a11yDesktop
alwaysOnTop
flag toDialogWindow
BasicTextField2
: #1227, #1264 full support and support for other platforms is planned for 1.7.0Web
Resources
org.jetbrains.compose.resources.multimodule.disable=true
to the rootgradle.properties
Gradle Plugin
Fixes
Multiple Platforms
NaN
font metrics by initializing typeface forTextStyle
Popup
andDesktopMenu
T::class
in inline function of@Composable
Dialog
iOS
Pager
involved in scrolling processTextField
SelectionManager
Desktop
Pager
and lazy column/row spanning)Pager
direction detection for mouse wheelSelectionContainer
SwingPanel
WINDOW
layer fixes: #1181, #1185, #1187, #1189ComposePanel
after re-adding it to the hierarchyLocalLocalization
reverseLayout=true
SelectionContainer
to start when drag starts below the bounds of the visible textdcomp.dll
RenderException
when use OpenGL on macOSPopup
/Dialog
by clicking any mouse button outsideWeb
fun isCopyKeyEvent
sendKey
test utility function on wasm targetbuttonFlags
only onPress
andRelease
ComposeWindow::resize
MouseEvent
toPointerButton
mappingviewportContainer
toviewportContainerId
parameter inComposeViewport
Resources
MethodTooLargeException
Res
class generation if the library is declared as 'api'readResourceBytes
function on Android if font is located under qualified directoryGradle plugin
Task with name 'podBuildGoogleMapsIphonesimulator' not found
in a project with Cococapods"Dependencies
Gradle Plugin
org.jetbrains.compose
, version1.6.10
. Based on Jetpack Compose libraries:Lifecycle libraries
org.jetbrains.androidx.lifecycle:lifecycle-*:2.8.0
. Based on Jetpack Lifecycle 2.8.0Navigation libraries
org.jetbrains.androidx.navigation:navigation-*:2.7.0-alpha07
. Based on Jetpack Navigation 2.7.7v1.6.2
Changes since 1.6.1
Features
Common
2.0.0-RC1
Fixes
iOS, Desktop, Web
FocusOwnerImpl
takeFocus
andreleaseFocus
to prevent crash when a window is re-shownSelectionContainer
to start when drag starts below the bounds of the visible textiOS
TextField
when a last symbol is a carriage return symbolDependencies
This version of Compose Multiplatform is based on the next Jetpack Compose libraries:
v1.6.1
Changes since 1.6.10
Fixes
Multiple Platforms
TextField(singleLine=true)
withIntrinsicSize
Dialog
centering insideImageComposeScene
iOS
UIMenuController
APIDesktop
DropdownMenu
/Popup
positioning when a window is moved to a screen with a different densityWeb
DatePicker
text field receives illegal inputResources
Gradle Plugin
Dependencies
Gradle Plugin
org.jetbrains.compose
, version1.6.11
. Based on Jetpack Compose libraries:Lifecycle libraries
org.jetbrains.androidx.lifecycle:lifecycle-*:2.8.0
. Based on Jetpack Lifecycle 2.8.0Navigation libraries
org.jetbrains.androidx.navigation:navigation-*:2.7.0-alpha07
. Based on Jetpack Navigation 2.7.7v1.6.0
Changes since 1.5.12
Highlights
An overview of highlights for this release is also available in the Compose Multiplatform documentation: What's new in 1.6.0.
Common
Res
classcomposeResources
dir withdrawable
,font
,files
,values/strings.xml
supportiOS, Desktop, Web
LineHeightStyle.Trim
iOS
Popup
s/Dialog
s can now be displayed outside aViewController
over native componentsText
inSelectionContainer
by double and triple tapWeb
Desktop
SwingPanel
interop (under an experimental flag, see the link)Popup
s/Dialog
s can now be displayed outside the main window or panel and over native components (under an experimental flag, see the link)Breaking changes
Common
compose.components.resources
) changes*Main\resources
should be moved to*Main\composeResources\drawable
,commonMain\composeResources\font
or*Main\composeResources\files
depending on the resource typepainterResource("resource.xml")
should be replaced bypainterResource(Res.drawable.resource)
google()
maven repository is now required. Add this tobuild.gradle.kts
:repositories {
...
google()
}
If the project doesn't have it, there will be an error
Could not find androidx.annotation:annotation:...
orCould not find org.jetbrains.compose.collection-internal:collection
.lineHeight
set is trimmed by defaultfontSize
set withoutlineHeight
insideMaterialTheme
has different line heightiOS/Desktop/Web
public ComposeScene
in favour of@InternalComposeUiApi MultiLayerComposeScene
iOS
Popup
s/Dialog
s that are enabled by default, unable to draw anything out of their own bounds (for example, a shadow of the topmost container). It will be fixed in a future version, but if you're relying on this behavior, you can switch back to the old behavior by setting theplatformLayers
parameter tofalse
:Desktop
TooltipArea
andPointerEvent
Web (k/js)
plugin:androidx.compose.compiler.plugins.kotlin:generateDecoys=true
.Features
Common
runtime-saveable
iOS
@Composable fun UIKitViewController
Desktop
Web
HTML library
StyleSheet
sub
,sup
andblockquote
elementsGradle Plugin
ui-tooling-preview
aliascompose.uiTest
dependencycompose.components.uiUtil
dependencyFixes
iOS/Desktop/Web
painterResource(:DrawableResource)
outside desktop Window can produceUnsatisfiedLinkError
"TextLayoutResult#getLineForVerticalPosition
returns wrong value + slow performance"Font
constructor with lazy data loadingTextLayoutResult#getLineForOffset
LayoutCoordinates.localToWindow
coordinates conversion for non-full Compose componentsiOS
SystemFont
on iOSWindowInfo.containerSize
withoutplatformLayers
flagDesktop
MouseInfo.getPointerInfo()
returning null inWindowDraggableArea
SplitPane
makeGL
NumPadEnter
onDrag(matcher=
changesComposePanel
doesn't calculate its preferredSize correctly when it's called before doLayout"enabled
inscrollable
for mouse inputWeb
SystemThemeObserver
implementation for wasmJscomponents.uiToolingPreview
libraryImage.toBitmap
Gradle Plugin
org.jetbrains.compose
is applied from a script pluginDependencies
This version of Compose Multiplatform is based on the next Jetpack Compose libraries:
See the announce of Jetpack Compose 1.6. Notes:
Changes to default font padding
affecConfiguration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.