--- a/README.md	Mon May 05 17:09:13 2025 -0400
+++ b/README.md	Mon May 05 17:10:13 2025 -0400
@@ -1,42 +1,24 @@
 AboutOss
 ==========
 
-AboutOss is an utility library to retrieve and display opensource licenses in Android applications.
-
-Usage
-=====
-
-The library works with the [OSS Licenses Gradle Plugin](https://github.com/google/play-services-plugins/tree/master/oss-licenses-plugin). 
-You can integrate it in your application with few simple steps.
+AboutOss is a Kotlin Multiplatform utility library to retrieve and display opensource licenses in your applications.
 
-### Apply the OSS Licenses Gradle Plugin
-
-In your app-level `build.gradle`, apply the plugin by adding the following line under the existing `apply plugin: 'com.android.application'` at the top of the file:
+License sources
+---------------
 
-```kotlin title="build.gradle.kts"
-apply plugin: 'com.google.android.gms.oss-licenses-plugin'
-```
-
-### Add the ui library to your application
+The library can work with license information files generated by:
 
-```kotlin title="build.gradle.kts"
-repositories {
-    maven {
-        url = uri("https://jitpack.io")
-    }
-}
+- [OSS Licenses Gradle Plugin](https://github.com/google/play-services-plugins/tree/main/oss-licenses-plugin)
+- [licensee](https://github.com/cashapp/licensee)
+- [LicensePlist](https://github.com/mono0926/LicensePlist)
 
-dependencies {
-    implementation("com.geekorum.aboutoss:ui-material:0.0.1")
-}
-```
+User interface
+--------------
 
-### Launch the license activity
+The user interface to display license information is written in [Compose Multiplatform](https://github.com/JetBrains/compose-multiplatform).
+There is out of the box composables for Material and Material3 and you can easily write your own UI.
 
-```kotlin
-val intent = Intent(this, OpenSourceLicensesActivity::class.java)
-startActivity(intent)
-```
+Check the sample [here](https://github.com/fbarthelery/AboutOss/tree/main/sample) 
 
 Build instructions
 ==================
--- a/buildSrc/src/main/kotlin/Dokka.kt	Mon May 05 17:09:13 2025 -0400
+++ b/buildSrc/src/main/kotlin/Dokka.kt	Mon May 05 17:10:13 2025 -0400
@@ -39,6 +39,18 @@
                 localDirectory = rootDir
                 remoteUrl = uri("https://github.com/fbarthelery/AboutOss/tree/main/")
             }
+
+            externalDocumentationLinks.register("okio") {
+                url = uri("https://square.github.io/okio/3.x/okio/okio/")
+            }
+            externalDocumentationLinks.register("kotlinx-coroutines") {
+                url = uri("https://kotlinlang.org/api/kotlinx.coroutines/")
+            }
+
+            perPackageOption {
+                matchingRegex = ".*\\.generated\\.resources"
+                suppress = true
+            }
         }
     }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/docs/license-sources.md	Mon May 05 17:10:13 2025 -0400
@@ -0,0 +1,62 @@
+License sources
+===============
+
+Setup
+=====
+
+Add the dependency to your project
+
+```kotlin title="build.gradle.kts"
+dependencies {
+    implementation("com.geekorum.aboutoss:core:<latest-version>")
+}
+```
+
+OSS Licenses Gradle Plugin
+--------------------------
+
+The [OSS Licenses Gradle Plugin](https://github.com/google/play-services-plugins/tree/main/oss-licenses-plugin) stores license information in Android resources.
+
+Create a [GmsLicenseInfoRepository](api/core/com.geekorum.aboutoss.core.gms/-gms-license-info-repository/index.html) to retrieves it.
+
+The `GmsLicenseInfoRepository` is only available on Android platform.
+
+```kotlin
+ val licenseInfoRepository = GmsLicenseInfoRepository(
+        appContext = application
+    )
+```
+
+
+Licensee
+--------
+
+[licensee](https://github.com/cashapp/licensee) report file can be used as a source of license information.
+
+Create a [LicenseeLicenseInfoRepository](api/core/com.geekorum.aboutoss.core.licensee/-licensee-license-info-repository/index.html) to read the report file.
+
+
+```kotlin title="on iOS and Desktop"
+val licenseInfoRepository = LicenseeLicenseInfoRepository()
+```
+
+```kotlin title="on Android"
+val licenseInfoRepository = LicenseeLicenseInfoRepository(
+    assetManager = application.assets
+)
+```
+
+LicensePlist
+------------
+
+On iOS, [LicensePlist](https://github.com/mono0926/LicensePlist) can be use to automatically generates a Plist of all your dependencies.
+
+Use [LicensePlistLicenseInfoRepository](api/core/com.geekorum.aboutoss.core.licenseplist/-license-plist-license-info-repository/index.html)
+to parse license information stored in your resources bundle.
+
+The `LicensePlistLicenseInfoRepository` is only available on iOS platform.
+
+```kotlin
+val licenseInfoRepository = LicensePlistLicenseInfoRepository()
+```
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/docs/ui-material.md	Mon May 05 17:10:13 2025 -0400
@@ -0,0 +1,57 @@
+Ui-Material
+===========
+
+Setup
+=====
+
+Add the dependency to your project
+
+```kotlin title="build.gradle.kts"
+dependencies {
+    implementation("com.geekorum.aboutoss:ui-material:<latest-version>")
+}
+```
+
+Usage
+=====
+
+The [OpenSourceDependenciesNavHost](api/ui/material2/com.geekorum.aboutoss.ui.material/-open-source-dependencies-nav-host.html)
+composable allows to display the licenses. 
+It takes an [OpenSourceLicensesViewModel](api/ui/common/com.geekorum.aboutoss.ui.common/-open-source-licenses-view-model/index.html)
+that you can create with the [LicenseInfoRepository](license-sources.md) of your choice.
+
+```kotlin
+val licenseInfoRepository = LicenseeLicenseInfoRepository()
+val viewModel = viewModel<OpenSourceLicensesViewModel>(factory = OpenSourceLicensesViewModel.Factory(licenseInfoRepository))
+OpenSourceDependenciesNavHost(
+    openSourceLicensesViewModel = viewModel,
+    navigateUp = {
+        // close screen
+    }
+)
+```
+
+Android
+=======
+
+The [OpenSourceLicensesActivity](api/ui/material2/com.geekorum.aboutoss.ui.material/-open-source-licenses-activity/index.html) is configured to work with the [OSS Licenses Gradle Plugin](https://github.com/google/play-services-plugins/tree/main/oss-licenses-plugin)
+You can launch the activity like this:
+
+```kotlin
+val intent = Intent(this, OpenSourceLicensesActivity::class.java)
+startActivity(intent)
+```
+
+
+Desktop
+=======
+
+On Desktop the [OpenSourceLicensesWindow](api/ui/material2/com.geekorum.aboutoss.ui.material/-open-source-licenses-window.html) is configured to work with [licensee](https://github.com/cashapp/licensee).
+You can use it like this:
+
+```kotlin
+OpenSourceLicensesWindow(onCloseRequest = {
+    // close window
+})
+```
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/docs/ui-material3.md	Mon May 05 17:10:13 2025 -0400
@@ -0,0 +1,72 @@
+Ui-Material3
+============
+
+Setup
+=====
+
+Add the dependency to your project
+
+```kotlin title="build.gradle.kts"
+dependencies {
+    implementation("com.geekorum.aboutoss:ui-material3:<latest-version>")
+}
+```
+
+Usage
+=====
+
+The [OpenSourceDependenciesNavHost](api/ui/material3/com.geekorum.aboutoss.ui.material3/-open-source-dependencies-nav-host.html)
+composable allows to display the licenses.
+It takes an [OpenSourceLicensesViewModel](api/ui/common/com.geekorum.aboutoss.ui.common/-open-source-licenses-view-model/index.html)
+that you can create with the [LicenseInfoRepository](license-sources.md) of your choice.
+
+```kotlin
+val licenseInfoRepository = LicenseeLicenseInfoRepository()
+val viewModel = viewModel<OpenSourceLicensesViewModel>(factory = OpenSourceLicensesViewModel.Factory(licenseInfoRepository))
+OpenSourceDependenciesNavHost(
+    openSourceLicensesViewModel = viewModel,
+    navigateUp = {
+        // close screen
+    }
+)
+```
+
+The [AdaptiveOpenSourceDependenciesScreen](api/ui/material3/com.geekorum.aboutoss.ui.material3/-adaptive-open-source-dependencies-screen.html)
+composable display the licenses in an adaptive screen. The User interface will adapt based on the available space.
+
+```kotlin
+val licenseInfoRepository = LicenseeLicenseInfoRepository()
+val viewModel = viewModel<OpenSourceLicensesViewModel>(factory = OpenSourceLicensesViewModel.Factory(licenseInfoRepository))
+AdaptiveOpenSourceDependenciesScreen(
+    openSourceLicensesViewModel = viewModel,
+    navigateUp = {
+        // close screen
+    }
+)
+```
+
+
+Android
+=======
+
+The [OpenSourceLicensesActivity](api/ui/material3/com.geekorum.aboutoss.ui.material3/-open-source-licenses-activity/index.html) is configured to work with the [OSS Licenses Gradle Plugin](https://github.com/google/play-services-plugins/tree/main/oss-licenses-plugin)
+You can launch the activity like this:
+
+```kotlin
+val intent = Intent(this, OpenSourceLicensesActivity::class.java)
+startActivity(intent)
+```
+
+
+Desktop
+=======
+
+On Desktop the [OpenSourceLicensesWindow](api/ui/material3/com.geekorum.aboutoss.ui.material3/-open-source-licenses-window.html) is configured to work with [licensee](https://github.com/cashapp/licensee).
+You can use it like this:
+
+```kotlin
+OpenSourceLicensesWindow(onCloseRequest = {
+    // close window
+})
+```
+
--- a/mkdocs.yml	Mon May 05 17:09:13 2025 -0400
+++ b/mkdocs.yml	Mon May 05 17:10:13 2025 -0400
@@ -38,5 +38,9 @@
 
 nav:
   - Home: index.md
+  - License sources: license-sources.md
+  - User interface:
+      - Material: ui-material.md
+      - Material3: ui-material3.md
   - API: api/index.html
   - "Discussions ⏏": https://github.com/fbarthelery/AboutOss/discussions
\ No newline at end of file