--- a/sample/src/desktopMain/kotlin/PrebuiltLicensesViewModel.desktop.kt	Wed Apr 23 14:42:24 2025 -0400
+++ b/sample/src/desktopMain/kotlin/PrebuiltLicensesViewModel.desktop.kt	Wed Apr 23 14:43:46 2025 -0400
@@ -23,7 +23,7 @@
 
 import androidx.lifecycle.viewmodel.CreationExtras
 import com.geekorum.aboutoss.core.licensee.LicenseeLicenseInfoRepository
-import com.geekorum.aboutoss.ui.common.BrowserLauncher
+import com.geekorum.aboutoss.ui.common.DesktopBrowserLauncher
 import com.geekorum.aboutoss.ui.common.OpenSourceLicensesViewModel
 import kotlinx.coroutines.Dispatchers
 import org.jetbrains.compose.resources.ExperimentalResourceApi
@@ -38,20 +38,6 @@
 
     return OpenSourceLicensesViewModel(
         licenseInfoRepository,
-        object : BrowserLauncher {
-            override fun warmUp() {
-            }
-
-            override fun launchUrl(link: String) {
-                TODO("Not yet implemented")
-            }
-
-            override fun mayLaunchUrl(vararg uris: String) {
-                TODO("Not yet implemented")
-            }
-
-            override fun shutdown() {
-            }
-        }
+        DesktopBrowserLauncher()
     )
 }
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sample/src/desktopMain/kotlin/PrebuiltLicensesWindows.kt	Wed Apr 23 14:43:46 2025 -0400
@@ -0,0 +1,52 @@
+/*
+ * AboutOss is an utility library to retrieve and display
+ * opensource licenses in Android applications.
+ *
+ * Copyright (C) 2023-2025 by Frederic-Charles Barthelery.
+ *
+ * This file is part of AboutOss.
+ *
+ * AboutOss is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * AboutOss is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with AboutOss.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.geekorum.aboutoss.sampleapp
+
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.window.WindowState
+import androidx.compose.ui.window.rememberWindowState
+import androidx.lifecycle.viewmodel.compose.viewModel
+import com.geekorum.aboutoss.ui.common.OpenSourceLicensesViewModel
+import com.geekorum.aboutoss.ui.material.OpenSourceLicensesWindow as Material2OpenSourceLicensesWindow
+import com.geekorum.aboutoss.ui.material3.OpenSourceLicensesWindow as Material3OpenSourceLicensesWindow
+
+@Composable
+fun PrebuiltLicencesMaterial2Window(
+    onCloseRequest: () -> Unit,
+    state: WindowState = rememberWindowState(),
+) {
+    val viewModel: OpenSourceLicensesViewModel = viewModel(initializer = {
+        createPrebuildOpenSourceLicensesViewModel()
+    })
+    Material2OpenSourceLicensesWindow(onCloseRequest, state, viewModel)
+}
+
+@Composable
+fun PrebuiltLicencesMaterial3Window(
+    onCloseRequest: () -> Unit,
+    state: WindowState = rememberWindowState(),
+) {
+    val viewModel: OpenSourceLicensesViewModel = viewModel(initializer = {
+        createPrebuildOpenSourceLicensesViewModel()
+    })
+    Material3OpenSourceLicensesWindow(onCloseRequest, state, viewModel)
+}
\ No newline at end of file
--- a/sample/src/desktopMain/kotlin/main.kt	Wed Apr 23 14:42:24 2025 -0400
+++ b/sample/src/desktopMain/kotlin/main.kt	Wed Apr 23 14:43:46 2025 -0400
@@ -22,6 +22,10 @@
 package com.geekorum.aboutoss.sampleapp
 
 import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import androidx.compose.runtime.setValue
 import androidx.compose.ui.window.Window
 import androidx.compose.ui.window.application
 import org.jetbrains.compose.ui.tooling.preview.Preview
@@ -29,8 +33,27 @@
 @Composable
 @Preview
 fun SampleAppDesktop() {
-    SampleApp(onMaterial2Click = {},
-        onMaterial3Click = {})
+    var material2IsOpen by remember { mutableStateOf(false) }
+    var material3IsOpen by remember { mutableStateOf(false) }
+    SampleApp(
+        onMaterial2Click = {
+            material2IsOpen = true
+        },
+        onMaterial3Click = {
+            material3IsOpen = true
+        })
+
+    if (material2IsOpen) {
+        PrebuiltLicencesMaterial2Window(onCloseRequest = {
+            material2IsOpen = false
+        })
+    }
+    if (material3IsOpen) {
+        PrebuiltLicencesMaterial3Window(onCloseRequest = {
+            material3IsOpen = false
+        })
+    }
+
 }
 
 fun main() = application {