Declarative UI and KMM

I have been experimenting with JavaFX and in particular using FXML to create user interfaces for my Kotlin applications. I recognise this is a Java based UI tool and that if you use Java code, it is not declarative in nature. However, FXML is declarative. Gluon have implemented a multiplatform version of JavaFX but I have tried to use it due to licensing requirements. I like to know something works for what I want to do before I purchase.

When I look at the current declarative UI tools, I see that they are writing Kotlin code. It looks like a sequence of object creations that are automatically added to the parent object. It still requires the use of a platform specific framework (i.e. SwiftUI or JetPack Compose). Is there a genuine multiplatform declarative approach being developed?

I recognise that there are platform specific functionalities but for most applications, the same UI components are used on all platforms. This means that the code is almost identical.

Doing some research, I see there is a difference in how declarative is being used between an XML based UI like FXML and Compose. FXML declares the tree structure that would normally be created by creating objects and add component objects within the tree. It then relies on data binding to update the components. A Declarative UI such as JetPack Compose or SwiftUI is using functions that build the UI. There should be no side-effects so the model is passed in to build the UI.

I have written a React-JS programme so I have some idea how it is written but I am not finding Compose intuitive.