compose-stylesheet
compose-stylesheet copied to clipboard
Update dependency org.jetbrains.compose to v1.6.11
This PR contains the following updates:
Package | Change | Age | Adoption | Passing | Confidence |
---|---|---|---|---|---|
org.jetbrains.compose | 1.5.11 -> 1.6.11 |
Release Notes
JetBrains/compose-jb (org.jetbrains.compose)
v1.6.11
Changes since 1.6.10
Fixes
Multiple Platforms
-
Fix endless re-layout when layout is invalidated by measure, which includes measuring
TextField(singleLine=true)
withIntrinsicSize
-
Fix container size for
Dialog
centering insideImageComposeScene
iOS
Desktop
-
Fix
DropdownMenu
/Popup
positioning when a window is moved to a screen with a different density - Fix possible scrolling without animation on some mouse models
Web
Resources
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.0 -
Navigation libraries
org.jetbrains.androidx.navigation:navigation-*:2.7.0-alpha07
. Based on Jetpack Navigation 2.7.7
v1.6.10
Changes since 1.6.2
Highlights
- Experimental multiplatform support of
Lifecycle
andViewModel
. See documentation for details - Experimental multiplatform support of Jetpack Navigation. See documentation for details or check out the nav_cupcake project which was converted from the Navigate between screens with Compose Android codelab
-
Support multi-module projects and libraries publication with Compose resources (Kotlin
2.0.0-Beta05
or higher is required)
Breaking changes
- Since Kotlin
2.0-RC2
, the additionalorg.jetbrains.kotlin.plugin.compose
Gradle plugin is required. See the migration guide
Features
Multiple Platforms
- Add font rasterization settings in paragraph style
-
Localize internal strings in
ui
,material
andmaterial3
iOS
- Magnifier for iOS 17+
-
Support software keyboard inset in
Dialog
- iOS a11y dialogues and popups integration
-
OS logging integrated with
trace
- Support accessibility scroll
- Improve iOS a11y sync behavior
- Add throttle for text context menu updates
- Support a11y for interop views
-
Support
HapticFeedback
on iOS -
iOS support
LiveRegion
semantics in a11y
Desktop
-
Add an
alwaysOnTop
flag toDialogWindow
- Basic support of
BasicTextField2
: #1227, #1264 full support and support for other platforms is planned for 1.7.0
Web
- Listen to browser clipboard events and bind them with Compose TextFieldSelectionManager and SelectionManager
- Introduce ComposeViewport function that renders content in parent container
- Introduce minimal virtual keyboard support
- Basic IME keyboard support
- Some experimental Compose Multiplatform Gradle plugin APIs for web app configuration were deprecated. Their usage is not required anymore.
Resources
- Support three letters locales
- Add DSL to configure compose resources
- Support plural string resource
- Add option to disable compose resources generation
- XML resource optimizations
- Get resource files as URI
- Support source set's hierarchy for compose resources
- Support SVG drawables for non android platforms
- Delete the experimental mark from the stable resources library API
- Add functions to retrieve bytes from drawable or font resources
-
To disable the Compose Resources publication and the multimodule support in cases of problems add
org.jetbrains.compose.resources.multimodule.disable=true
to the rootgradle.properties
Gradle Plugin
- Add possibility to modify the macOS minimum version
- Make desktop preview task fully configuration cache compliant
- Option to pack jars as uber JAR, support Proguard for uber JAR
Fixes
Multiple Platforms
-
Fix
NaN
font metrics by initializing typeface forTextStyle
- Fix render order of interop views
- Reimplement SortedSet for JS/Native to improve performance
- Allow drawing outside of platform layers
-
Prevent a few unnecessary re-compositions in
Popup
andDesktopMenu
- Propagate composition locals to layers in the (re)composition phase
- Move the effects and synthetic events dispatching to after the draw phase in the render loop
-
Fix Kotlin/Native can't use
T::class
in inline function of@Composable
-
Fix missing recomposition after showing
Dialog
iOS
- Fix keyboard disappear on IME action
-
Fix nested scroll when
Pager
involved in scrolling process - Fix a11y wrong bounds calculation
- Delay tap indication inside scroll
-
Fix keyboard opening when scrolling begins within a
TextField
- Fix IME window insets and view offset when keyboard appears
- Fix animation frozen after app went background
- Fixed appearing of text editing menu (#1269, #1293)
-
Fix content rect calculation in
SelectionManager
Desktop
- Fix nested scrolling on mouse wheel
-
Trigger fling callbacks on mouse wheel scroll (fixes
Pager
and lazy column/row spanning) -
Fix
Pager
direction detection for mouse wheel -
Fix missing clicks inside
SelectionContainer
-
Fix clipping bounds of
SwingPanel
- Locale-aware date formatting for desktop
- Pass the id of the node whose layout changed to accessibility controllers
-
WINDOW
layer fixes: #1181, #1185, #1187, #1189 -
Fix crash when we resize
ComposePanel
after re-adding it to the hierarchy -
Fix propagation of
LocalLocalization
- Re-show the tooltip on mouse-move following a click in TooltipArea
-
Fix the direction of scrolling when pressing on the scrollbar track with
reverseLayout=true
-
Fix crash and allow selection in
SelectionContainer
to start when drag starts below the bounds of the visible text -
Fix a crash on Windows without
dcomp.dll
- Fix crash when creating SwingRedrawer on DirectX
-
Option to not throw
RenderException
when use OpenGL on macOS - Sync all AccessibilityControllers when an a11y query is received
- Fix crash when modifying Compose state from a non-UI thread
-
Close
Popup
/Dialog
by clicking any mouse button outside
Web
-
Implement actual
fun isCopyKeyEvent
- Fix metadata compilation
-
Support
sendKey
test utility function on wasm target - Send correct window sized on resize
- Dispose all listened events alongside with the application being disposed
-
Modify
buttonFlags
only onPress
andRelease
- Fix keyboard mappings
-
Correct density rounding in
ComposeWindow::resize
-
Fix
MouseEvent
toPointerButton
mapping - Correct virtual keyboard mode resolution
- Fix browser clipboard events handling on Windows
-
Rename
viewportContainer
toviewportContainerId
parameter inComposeViewport
Resources
- Fix resource accessors compilation when there are huge number of resource files
-
Init resource accessors lazily and in external function to avoid
MethodTooLargeException
-
Fix
Res
class generation if the library is declared as 'api' - Fix resource packaging in APK when 'build' task is used with AGP 8.2+
- Use first of preferred locales instead of a current on iOS
-
Fix
readResourceBytes
function on Android if font is located under qualified directory - Fix android fonts in APKs
- Handle special characters for quantity strings
- Select default resource if there are no exact language+region or default language match
- Add validation checks on invalid XML or item type
Gradle plugin
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.0 -
Navigation libraries
org.jetbrains.androidx.navigation:navigation-*:2.7.0-alpha07
. Based on Jetpack Navigation 2.7.7
v1.6.2
Changes since 1.6.1
Features
Common
Fixes
iOS, Desktop, Web
- Propagate composition locals to layers in the (re)composition phase
-
Add transactions to
FocusOwnerImpl
takeFocus
andreleaseFocus
to prevent crash when a window is re-shown -
Fix crash and allow selection in
SelectionContainer
to start when drag starts below the bounds of the visible text
iOS
Dependencies
This version of Compose Multiplatform is based on the next Jetpack Compose libraries:
v1.6.1
Changes since 1.6.10
Fixes
Multiple Platforms
-
Fix endless re-layout when layout is invalidated by measure, which includes measuring
TextField(singleLine=true)
withIntrinsicSize
-
Fix container size for
Dialog
centering insideImageComposeScene
iOS
Desktop
-
Fix
DropdownMenu
/Popup
positioning when a window is moved to a screen with a different density - Fix possible scrolling without animation on some mouse models
Web
Resources
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.0 -
Navigation libraries
org.jetbrains.androidx.navigation:navigation-*:2.7.0-alpha07
. Based on Jetpack Navigation 2.7.7
v1.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
- Resource library improvements (an example project)
- Experimental support is available for tests in common code
- Support Kotlin 2.0.0-Beta4
iOS, Desktop, Web
-
Support
LineHeightStyle.Trim
- Add a way to use fonts installed on the system
- Add support for text decoration line styles via PlatformTextStyle
iOS
- Native-like caret behaviour by long/single taps in textfields(1, 2)
- Basic accessibility support
-
Popup
s/Dialog
s can now be displayed outside aViewController
over native components -
Allow selecting
Text
inSelectionContainer
by double and triple tap
Web
- Compose for Web (Wasm) artifacts are available in Maven Central Warning: Kotlin 1.9.21 has an issue with web target. Use Kotlin 1.9.22.
Desktop
-
Proper clipping of
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
- Resource library (
compose.components.resources
) changes- resources from
*Main\resources
should be moved to*Main\composeResources\drawable
,commonMain\composeResources\font
or*Main\composeResources\files
depending on the resource type -
painterResource("resource.xml")
should be replaced bypainterResource(Res.drawable.resource)
- resources from
-
google()
maven repository is now required. Add this tobuild.gradle.kts
: repositories { ... google() } If the project doesn't have it, there will be an errorCould not find androidx.annotation:annotation:...
orCould not find org.jetbrains.compose.collection-internal:collection
. -
Text with
lineHeight
set is trimmed by default -
Text with
fontSize
set withoutlineHeight
insideMaterialTheme
has different line height
iOS/Desktop/Web
-
Deprecate
public ComposeScene
in favour of@InternalComposeUiApi MultiLayerComposeScene
- Hide deprecated DropdownMenu overloads
iOS
- Separate platform views for
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
:ComposeUIViewController(configure = { platformLayers = false }) { // ... }
Desktop
Web (k/js)
- Libraries which depend on earlier Compose Multiplatform version are not compatible with 1.6.0 anymore. This is because decoys generation was disabled. Projects which apply Compose Compiler plugin manually need to remove this argument:
plugin:androidx.compose.compiler.plugins.kotlin:generateDecoys=true
.
Features
Common
iOS
- Adjust overscroll effect params to match iOS animations
- Add ability to change opacity for compose view
-
Introduce
@Composable fun UIKitViewController
- Remove iOS experimental flag in gradle.properties
Desktop
- Support select till the end of the file / till the start of the file keyboard actions on Windows
- Add LinuxArm64 target to Compose runtime
- Add dedicated feature flags class for desktop
Web
HTML library
Gradle Plugin
Fixes
iOS/Desktop/Web
- Fix "DropdownMenu performs onDismissRequest twice"
- Use a large rectangle for the picture bounds in RenderNodeLayer.drawLayer to prevent clipping
- Fix closing scene during scroll animation
-
Fix "Using
painterResource(:DrawableResource)
outside desktop Window can produceUnsatisfiedLinkError
" - Fix "Rect::makeLTRB expected l <= r" crashes
-
Fix "
TextLayoutResult#getLineForVerticalPosition
returns wrong value + slow performance" - Run all effects before sending synthetic events
-
Font
constructor with lazy data loading -
Optimise
TextLayoutResult#getLineForOffset
- Fix "SwingPanel/UIKitView doesn't apply Modifier.offset if it's after Modifier.size"
- DatePicker. Fix empty row
- DatePicker. Fix selection of the current day
-
Fix
LayoutCoordinates.localToWindow
coordinates conversion for non-full Compose components
iOS
- Fixed unexpected fling animation over scrolling content
- Fix UIKitView z-order
-
Fix missing case for loading
SystemFont
on iOS - Fix selection container crash
-
Fix
WindowInfo.containerSize
withoutplatformLayers
flag - Disable encoding on separate thread for iOS
- Synchronise IME insets with iOS keyboard
Desktop
-
Protect against
MouseInfo.getPointerInfo()
returning null inWindowDraggableArea
-
Support Rtl in
SplitPane
-
Fix a native crash on
makeGL
- Add Arial and Consolas as backup fonts on Linux and mention font name when one fails to load
- Fix blurry app icon in the system application switcher
-
Insert a new line on
NumPadEnter
-
Don't restart the drag gesture when the
onDrag(matcher=
changes - Fix "Resizing window on desktop sometimes triggers onClick handlers of Composables"
-
Fix "
ComposePanel
doesn't calculate its preferredSize correctly when it's called before doLayout" - Fix input methods on JBR, disable input methods when we lose focus
- Fix "BasicTextField could not input any Chinese character when using JBR"
-
Take into account
enabled
inscrollable
for mouse input - Fix NPE for getComponentAfter/Before in ComposePanel
- Transparency support for D3D (previously it supported via fallback on OpenGL)
Web
-
Add a
SystemThemeObserver
implementation for wasmJs - Fix keyboard events with meta key on wasm/js targets
-
Added WASM to
components.uiToolingPreview
library - Fix "The cursor is invisible in compose web"
-
Use an alternative implementation of
Image.toBitmap
Gradle Plugin
Dependencies
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
affects only Android target. -
Added support for selection by mouse, including text.
concerns only Android. Other targets supported it before 1.6. - Some of the features are not ported yet (they will be ported in the next versions):
- BasicTextField2
- Support for nonlinear font scaling
-
Multipaltform Drag and drop. It works only for Android right now. For desktop there is the old API
Modifier.onExternalDrag
- MultiParagraph.fillBoundingBoxes
See the announce of Material 1.2.
v1.5.12
Common
Features
Desktop
Fixes
Dependencies
This version of Compose Multiplatform is based on the next Jetpack Compose libraries:
Configuration
📅 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.
- [ ] If you want to rebase/retry this PR, check this box
This PR was generated by Mend Renovate. View the repository job log.