diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt
index fee5cb69..0a9ee6f0 100644
--- a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt
+++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt
@@ -21,7 +21,6 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalConfiguration
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalUriHandler
-import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
import androidx.lifecycle.viewmodel.compose.viewModel
@@ -42,10 +41,10 @@ import dev.msfjarvis.claw.android.ui.lists.HottestPosts
import dev.msfjarvis.claw.android.ui.navigation.Destinations
import dev.msfjarvis.claw.android.viewmodel.ClawViewModel
import dev.msfjarvis.claw.api.LobstersApi
-import dev.msfjarvis.claw.common.R as commonR
import dev.msfjarvis.claw.common.comments.CommentsPage
import dev.msfjarvis.claw.common.comments.HTMLConverter
import dev.msfjarvis.claw.common.comments.LocalHTMLConverter
+import dev.msfjarvis.claw.common.res.ClawIcons
import dev.msfjarvis.claw.common.theme.LobstersTheme
import dev.msfjarvis.claw.common.urllauncher.UrlLauncher
import kotlinx.coroutines.launch
@@ -85,12 +84,12 @@ fun LobstersApp(
NavigationItem(
label = "Hottest",
route = Destinations.Hottest.getRoute(),
- icon = painterResource(R.drawable.ic_whatshot_24dp),
+ icon = ClawIcons.Flame,
) { coroutineScope.launch { networkListState.animateScrollToItem(index = 0) } },
NavigationItem(
label = "Saved",
route = Destinations.Saved.getRoute(),
- icon = painterResource(commonR.drawable.ic_favorite_24dp),
+ icon = ClawIcons.Heart,
) { coroutineScope.launch { savedListState.animateScrollToItem(index = 0) } },
)
diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/decorations/ClawNavigationBar.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/decorations/ClawNavigationBar.kt
index 3c796c2d..217991e1 100644
--- a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/decorations/ClawNavigationBar.kt
+++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/decorations/ClawNavigationBar.kt
@@ -7,7 +7,7 @@ import androidx.compose.material3.NavigationBarItem
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
-import androidx.compose.ui.graphics.painter.Painter
+import androidx.compose.ui.graphics.vector.ImageVector
import androidx.navigation.NavController
import dev.msfjarvis.claw.android.ui.navigation.Destinations
import dev.msfjarvis.claw.android.ui.slideInAnimation
@@ -29,7 +29,7 @@ fun ClawNavigationBar(
NavigationBar(modifier = modifier) {
items.forEach { navItem ->
NavigationBarItem(
- icon = { Icon(painter = navItem.icon, contentDescription = navItem.label) },
+ icon = { Icon(imageVector = navItem.icon, contentDescription = navItem.label) },
label = { Text(text = navItem.label) },
selected = navController.currentDestination?.route == navItem.route,
onClick = {
@@ -51,6 +51,6 @@ fun ClawNavigationBar(
class NavigationItem(
val label: String,
val route: String,
- val icon: Painter,
+ val icon: ImageVector,
val listStateResetCallback: () -> Unit,
)
diff --git a/android/src/main/res/drawable/ic_whatshot_24dp.xml b/android/src/main/res/drawable/ic_whatshot_24dp.xml
deleted file mode 100644
index 531de533..00000000
--- a/android/src/main/res/drawable/ic_whatshot_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/common/src/androidMain/kotlin/dev/msfjarvis/claw/common/res/drawable.kt b/common/src/androidMain/kotlin/dev/msfjarvis/claw/common/res/drawable.kt
deleted file mode 100644
index e93e6314..00000000
--- a/common/src/androidMain/kotlin/dev/msfjarvis/claw/common/res/drawable.kt
+++ /dev/null
@@ -1,14 +0,0 @@
-package dev.msfjarvis.claw.common.res
-
-import androidx.compose.runtime.Composable
-import androidx.compose.ui.res.painterResource
-import dev.msfjarvis.claw.common.R
-
-actual val commentIcon
- @Composable get() = painterResource(R.drawable.ic_insert_comment_24dp)
-actual val heartIcon
- @Composable get() = painterResource(R.drawable.ic_favorite_24dp)
-actual val heartBorderIcon
- @Composable get() = painterResource(R.drawable.ic_favorite_border_24dp)
-actual val webIcon
- @Composable get() = painterResource(R.drawable.ic_web_24dp)
diff --git a/common/src/androidMain/res/drawable/ic_favorite_24dp.xml b/common/src/androidMain/res/drawable/ic_favorite_24dp.xml
deleted file mode 100644
index 88b91493..00000000
--- a/common/src/androidMain/res/drawable/ic_favorite_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/common/src/androidMain/res/drawable/ic_favorite_border_24dp.xml b/common/src/androidMain/res/drawable/ic_favorite_border_24dp.xml
deleted file mode 100644
index 68b4759e..00000000
--- a/common/src/androidMain/res/drawable/ic_favorite_border_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/common/src/androidMain/res/drawable/ic_insert_comment_24dp.xml b/common/src/androidMain/res/drawable/ic_insert_comment_24dp.xml
deleted file mode 100644
index c8057e91..00000000
--- a/common/src/androidMain/res/drawable/ic_insert_comment_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/common/src/androidMain/res/drawable/ic_web_24dp.xml b/common/src/androidMain/res/drawable/ic_web_24dp.xml
deleted file mode 100644
index d9911a76..00000000
--- a/common/src/androidMain/res/drawable/ic_web_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/comments/CommentEntry.kt b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/comments/CommentEntry.kt
index 21509f78..7c30a0ee 100644
--- a/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/comments/CommentEntry.kt
+++ b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/comments/CommentEntry.kt
@@ -38,7 +38,7 @@ import dev.msfjarvis.claw.common.posts.PostActions
import dev.msfjarvis.claw.common.posts.PostTitle
import dev.msfjarvis.claw.common.posts.Submitter
import dev.msfjarvis.claw.common.posts.TagRow
-import dev.msfjarvis.claw.common.res.webIcon
+import dev.msfjarvis.claw.common.res.ClawIcons
import dev.msfjarvis.claw.model.Comment
import dev.msfjarvis.claw.model.LobstersPostDetails
@@ -104,7 +104,7 @@ fun PostLink(
) {
Row(modifier = Modifier.padding(16.dp), horizontalArrangement = Arrangement.spacedBy(16.dp)) {
Icon(
- painter = webIcon,
+ imageVector = ClawIcons.Web,
contentDescription = null,
tint = MaterialTheme.colorScheme.onSecondary,
)
diff --git a/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/posts/LobstersCard.kt b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/posts/LobstersCard.kt
index 92174ba6..94ebddbd 100644
--- a/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/posts/LobstersCard.kt
+++ b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/posts/LobstersCard.kt
@@ -38,9 +38,7 @@ import androidx.compose.ui.semantics.Role
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
import com.google.accompanist.flowlayout.FlowRow
-import dev.msfjarvis.claw.common.res.commentIcon
-import dev.msfjarvis.claw.common.res.heartBorderIcon
-import dev.msfjarvis.claw.common.res.heartIcon
+import dev.msfjarvis.claw.common.res.ClawIcons
import dev.msfjarvis.claw.common.ui.Divider
import dev.msfjarvis.claw.common.ui.NetworkImage
import dev.msfjarvis.claw.database.local.SavedPost
@@ -160,7 +158,7 @@ fun SaveButton(
Crossfade(targetState = isSaved) { saved ->
Box(modifier = modifier.padding(12.dp)) {
Icon(
- painter = if (saved) heartIcon else heartBorderIcon,
+ imageVector = if (saved) ClawIcons.Heart else ClawIcons.HeartBorder,
tint = MaterialTheme.colorScheme.secondary,
contentDescription = if (saved) "Remove from saved posts" else "Add to saved posts",
modifier = Modifier.align(Alignment.Center)
@@ -192,7 +190,7 @@ fun CommentsButton(
},
) {
Icon(
- painter = commentIcon,
+ imageVector = ClawIcons.Comment,
tint = MaterialTheme.colorScheme.secondary,
contentDescription = "Open comments",
modifier = Modifier.align(Alignment.Center),
diff --git a/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/ClawIcons.kt b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/ClawIcons.kt
new file mode 100644
index 00000000..0e34d3b8
--- /dev/null
+++ b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/ClawIcons.kt
@@ -0,0 +1,19 @@
+package dev.msfjarvis.claw.common.res
+
+import dev.msfjarvis.claw.common.res.clawicons.commentIcon
+import dev.msfjarvis.claw.common.res.clawicons.flameIcon
+import dev.msfjarvis.claw.common.res.clawicons.heartBorderIcon
+import dev.msfjarvis.claw.common.res.clawicons.heartIcon
+import dev.msfjarvis.claw.common.res.clawicons.webIcon
+
+object ClawIcons {
+ val Comment = commentIcon
+
+ val Flame = flameIcon
+
+ val Heart = heartIcon
+
+ val HeartBorder = heartBorderIcon
+
+ val Web = webIcon
+}
diff --git a/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/clawicons/CommentIcon.kt b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/clawicons/CommentIcon.kt
new file mode 100644
index 00000000..f1d4eede
--- /dev/null
+++ b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/clawicons/CommentIcon.kt
@@ -0,0 +1,63 @@
+package dev.msfjarvis.claw.common.res.clawicons
+
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.graphics.PathFillType.Companion.NonZero
+import androidx.compose.ui.graphics.SolidColor
+import androidx.compose.ui.graphics.StrokeCap.Companion.Butt
+import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter
+import androidx.compose.ui.graphics.vector.ImageVector
+import androidx.compose.ui.graphics.vector.ImageVector.Builder
+import androidx.compose.ui.graphics.vector.path
+import androidx.compose.ui.unit.dp
+import dev.msfjarvis.claw.common.unsafeLazy
+
+internal val commentIcon: ImageVector by unsafeLazy {
+ Builder(
+ name = "CommentIcon",
+ defaultWidth = 24.0.dp,
+ defaultHeight = 24.0.dp,
+ viewportWidth = 24.0f,
+ viewportHeight = 24.0f
+ )
+ .apply {
+ path(
+ fill = SolidColor(Color(0xFF000000)),
+ stroke = null,
+ strokeLineWidth = 0.0f,
+ strokeLineCap = Butt,
+ strokeLineJoin = Miter,
+ strokeLineMiter = 4.0f,
+ pathFillType = NonZero
+ ) {
+ moveTo(20.0f, 2.0f)
+ lineTo(4.0f, 2.0f)
+ curveToRelative(-1.1f, 0.0f, -2.0f, 0.9f, -2.0f, 2.0f)
+ verticalLineToRelative(12.0f)
+ curveToRelative(0.0f, 1.1f, 0.9f, 2.0f, 2.0f, 2.0f)
+ horizontalLineToRelative(14.0f)
+ lineToRelative(4.0f, 4.0f)
+ lineTo(22.0f, 4.0f)
+ curveToRelative(0.0f, -1.1f, -0.9f, -2.0f, -2.0f, -2.0f)
+ close()
+ moveTo(18.0f, 14.0f)
+ lineTo(6.0f, 14.0f)
+ verticalLineToRelative(-2.0f)
+ horizontalLineToRelative(12.0f)
+ verticalLineToRelative(2.0f)
+ close()
+ moveTo(18.0f, 11.0f)
+ lineTo(6.0f, 11.0f)
+ lineTo(6.0f, 9.0f)
+ horizontalLineToRelative(12.0f)
+ verticalLineToRelative(2.0f)
+ close()
+ moveTo(18.0f, 8.0f)
+ lineTo(6.0f, 8.0f)
+ lineTo(6.0f, 6.0f)
+ horizontalLineToRelative(12.0f)
+ verticalLineToRelative(2.0f)
+ close()
+ }
+ }
+ .build()
+}
diff --git a/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/clawicons/FlameIcon.kt b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/clawicons/FlameIcon.kt
new file mode 100644
index 00000000..b71fd2e5
--- /dev/null
+++ b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/clawicons/FlameIcon.kt
@@ -0,0 +1,52 @@
+package dev.msfjarvis.claw.common.res.clawicons
+
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.graphics.PathFillType.Companion.NonZero
+import androidx.compose.ui.graphics.SolidColor
+import androidx.compose.ui.graphics.StrokeCap.Companion.Butt
+import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter
+import androidx.compose.ui.graphics.vector.ImageVector
+import androidx.compose.ui.graphics.vector.ImageVector.Builder
+import androidx.compose.ui.graphics.vector.path
+import androidx.compose.ui.unit.dp
+import dev.msfjarvis.claw.common.unsafeLazy
+
+internal val flameIcon: ImageVector by unsafeLazy {
+ Builder(
+ name = "FlameIcon",
+ defaultWidth = 24.0.dp,
+ defaultHeight = 24.0.dp,
+ viewportWidth = 24.0f,
+ viewportHeight = 24.0f
+ )
+ .apply {
+ path(
+ fill = SolidColor(Color(0xFF000000)),
+ stroke = null,
+ strokeLineWidth = 0.0f,
+ strokeLineCap = Butt,
+ strokeLineJoin = Miter,
+ strokeLineMiter = 4.0f,
+ pathFillType = NonZero
+ ) {
+ moveTo(13.5f, 0.67f)
+ reflectiveCurveToRelative(0.74f, 2.65f, 0.74f, 4.8f)
+ curveToRelative(0.0f, 2.06f, -1.35f, 3.73f, -3.41f, 3.73f)
+ curveToRelative(-2.07f, 0.0f, -3.63f, -1.67f, -3.63f, -3.73f)
+ lineToRelative(0.03f, -0.36f)
+ curveTo(5.21f, 7.51f, 4.0f, 10.62f, 4.0f, 14.0f)
+ curveToRelative(0.0f, 4.42f, 3.58f, 8.0f, 8.0f, 8.0f)
+ reflectiveCurveToRelative(8.0f, -3.58f, 8.0f, -8.0f)
+ curveTo(20.0f, 8.61f, 17.41f, 3.8f, 13.5f, 0.67f)
+ close()
+ moveTo(11.71f, 19.0f)
+ curveToRelative(-1.78f, 0.0f, -3.22f, -1.4f, -3.22f, -3.14f)
+ curveToRelative(0.0f, -1.62f, 1.05f, -2.76f, 2.81f, -3.12f)
+ curveToRelative(1.77f, -0.36f, 3.6f, -1.21f, 4.62f, -2.58f)
+ curveToRelative(0.39f, 1.29f, 0.59f, 2.65f, 0.59f, 4.04f)
+ curveToRelative(0.0f, 2.65f, -2.15f, 4.8f, -4.8f, 4.8f)
+ close()
+ }
+ }
+ .build()
+}
diff --git a/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/clawicons/HeartBorderIcon.kt b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/clawicons/HeartBorderIcon.kt
new file mode 100644
index 00000000..ee5f61e5
--- /dev/null
+++ b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/clawicons/HeartBorderIcon.kt
@@ -0,0 +1,56 @@
+package dev.msfjarvis.claw.common.res.clawicons
+
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.graphics.PathFillType.Companion.NonZero
+import androidx.compose.ui.graphics.SolidColor
+import androidx.compose.ui.graphics.StrokeCap.Companion.Butt
+import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter
+import androidx.compose.ui.graphics.vector.ImageVector
+import androidx.compose.ui.graphics.vector.ImageVector.Builder
+import androidx.compose.ui.graphics.vector.path
+import androidx.compose.ui.unit.dp
+import dev.msfjarvis.claw.common.unsafeLazy
+
+internal val heartBorderIcon: ImageVector by unsafeLazy {
+ Builder(
+ name = "HeartBorder",
+ defaultWidth = 24.0.dp,
+ defaultHeight = 24.0.dp,
+ viewportWidth = 24.0f,
+ viewportHeight = 24.0f
+ )
+ .apply {
+ path(
+ fill = SolidColor(Color(0xFF000000)),
+ stroke = null,
+ strokeLineWidth = 0.0f,
+ strokeLineCap = Butt,
+ strokeLineJoin = Miter,
+ strokeLineMiter = 4.0f,
+ pathFillType = NonZero
+ ) {
+ moveTo(16.5f, 3.0f)
+ curveToRelative(-1.74f, 0.0f, -3.41f, 0.81f, -4.5f, 2.09f)
+ curveTo(10.91f, 3.81f, 9.24f, 3.0f, 7.5f, 3.0f)
+ curveTo(4.42f, 3.0f, 2.0f, 5.42f, 2.0f, 8.5f)
+ curveToRelative(0.0f, 3.78f, 3.4f, 6.86f, 8.55f, 11.54f)
+ lineTo(12.0f, 21.35f)
+ lineToRelative(1.45f, -1.32f)
+ curveTo(18.6f, 15.36f, 22.0f, 12.28f, 22.0f, 8.5f)
+ curveTo(22.0f, 5.42f, 19.58f, 3.0f, 16.5f, 3.0f)
+ close()
+ moveTo(12.1f, 18.55f)
+ lineToRelative(-0.1f, 0.1f)
+ lineToRelative(-0.1f, -0.1f)
+ curveTo(7.14f, 14.24f, 4.0f, 11.39f, 4.0f, 8.5f)
+ curveTo(4.0f, 6.5f, 5.5f, 5.0f, 7.5f, 5.0f)
+ curveToRelative(1.54f, 0.0f, 3.04f, 0.99f, 3.57f, 2.36f)
+ horizontalLineToRelative(1.87f)
+ curveTo(13.46f, 5.99f, 14.96f, 5.0f, 16.5f, 5.0f)
+ curveToRelative(2.0f, 0.0f, 3.5f, 1.5f, 3.5f, 3.5f)
+ curveToRelative(0.0f, 2.89f, -3.14f, 5.74f, -7.9f, 10.05f)
+ close()
+ }
+ }
+ .build()
+}
diff --git a/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/clawicons/HeartIcon.kt b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/clawicons/HeartIcon.kt
new file mode 100644
index 00000000..c2b25190
--- /dev/null
+++ b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/clawicons/HeartIcon.kt
@@ -0,0 +1,45 @@
+package dev.msfjarvis.claw.common.res.clawicons
+
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.graphics.PathFillType.Companion.NonZero
+import androidx.compose.ui.graphics.SolidColor
+import androidx.compose.ui.graphics.StrokeCap.Companion.Butt
+import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter
+import androidx.compose.ui.graphics.vector.ImageVector
+import androidx.compose.ui.graphics.vector.ImageVector.Builder
+import androidx.compose.ui.graphics.vector.path
+import androidx.compose.ui.unit.dp
+import dev.msfjarvis.claw.common.unsafeLazy
+
+internal val heartIcon: ImageVector by unsafeLazy {
+ Builder(
+ name = "HeartIcon",
+ defaultWidth = 24.0.dp,
+ defaultHeight = 24.0.dp,
+ viewportWidth = 24.0f,
+ viewportHeight = 24.0f
+ )
+ .apply {
+ path(
+ fill = SolidColor(Color(0xFF000000)),
+ stroke = null,
+ strokeLineWidth = 0.0f,
+ strokeLineCap = Butt,
+ strokeLineJoin = Miter,
+ strokeLineMiter = 4.0f,
+ pathFillType = NonZero
+ ) {
+ moveTo(12.0f, 21.35f)
+ lineToRelative(-1.45f, -1.32f)
+ curveTo(5.4f, 15.36f, 2.0f, 12.28f, 2.0f, 8.5f)
+ curveTo(2.0f, 5.42f, 4.42f, 3.0f, 7.5f, 3.0f)
+ curveToRelative(1.74f, 0.0f, 3.41f, 0.81f, 4.5f, 2.09f)
+ curveTo(13.09f, 3.81f, 14.76f, 3.0f, 16.5f, 3.0f)
+ curveTo(19.58f, 3.0f, 22.0f, 5.42f, 22.0f, 8.5f)
+ curveToRelative(0.0f, 3.78f, -3.4f, 6.86f, -8.55f, 11.54f)
+ lineTo(12.0f, 21.35f)
+ close()
+ }
+ }
+ .build()
+}
diff --git a/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/clawicons/WebIcon.kt b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/clawicons/WebIcon.kt
new file mode 100644
index 00000000..cfb28e1a
--- /dev/null
+++ b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/clawicons/WebIcon.kt
@@ -0,0 +1,65 @@
+package dev.msfjarvis.claw.common.res.clawicons
+
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.graphics.PathFillType.Companion.NonZero
+import androidx.compose.ui.graphics.SolidColor
+import androidx.compose.ui.graphics.StrokeCap.Companion.Butt
+import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter
+import androidx.compose.ui.graphics.vector.ImageVector
+import androidx.compose.ui.graphics.vector.ImageVector.Builder
+import androidx.compose.ui.graphics.vector.path
+import androidx.compose.ui.unit.dp
+import dev.msfjarvis.claw.common.unsafeLazy
+
+internal val webIcon: ImageVector by unsafeLazy {
+ Builder(
+ name = "WebIcon",
+ defaultWidth = 24.0.dp,
+ defaultHeight = 24.0.dp,
+ viewportWidth = 24.0f,
+ viewportHeight = 24.0f
+ )
+ .apply {
+ path(
+ fill = SolidColor(Color(0xFF000000)),
+ stroke = null,
+ strokeLineWidth = 0.0f,
+ strokeLineCap = Butt,
+ strokeLineJoin = Miter,
+ strokeLineMiter = 4.0f,
+ pathFillType = NonZero
+ ) {
+ moveTo(12.0f, 2.0f)
+ curveTo(6.48f, 2.0f, 2.0f, 6.48f, 2.0f, 12.0f)
+ reflectiveCurveToRelative(4.48f, 10.0f, 10.0f, 10.0f)
+ reflectiveCurveToRelative(10.0f, -4.48f, 10.0f, -10.0f)
+ reflectiveCurveTo(17.52f, 2.0f, 12.0f, 2.0f)
+ close()
+ moveTo(4.0f, 12.0f)
+ curveToRelative(0.0f, -0.61f, 0.08f, -1.21f, 0.21f, -1.78f)
+ lineTo(8.99f, 15.0f)
+ verticalLineToRelative(1.0f)
+ curveToRelative(0.0f, 1.1f, 0.9f, 2.0f, 2.0f, 2.0f)
+ verticalLineToRelative(1.93f)
+ curveTo(7.06f, 19.43f, 4.0f, 16.07f, 4.0f, 12.0f)
+ close()
+ moveTo(17.89f, 17.4f)
+ curveToRelative(-0.26f, -0.81f, -1.0f, -1.4f, -1.9f, -1.4f)
+ horizontalLineToRelative(-1.0f)
+ verticalLineToRelative(-3.0f)
+ curveToRelative(0.0f, -0.55f, -0.45f, -1.0f, -1.0f, -1.0f)
+ horizontalLineToRelative(-6.0f)
+ verticalLineToRelative(-2.0f)
+ horizontalLineToRelative(2.0f)
+ curveToRelative(0.55f, 0.0f, 1.0f, -0.45f, 1.0f, -1.0f)
+ lineTo(10.99f, 7.0f)
+ horizontalLineToRelative(2.0f)
+ curveToRelative(1.1f, 0.0f, 2.0f, -0.9f, 2.0f, -2.0f)
+ verticalLineToRelative(-0.41f)
+ curveTo(17.92f, 5.77f, 20.0f, 8.65f, 20.0f, 12.0f)
+ curveToRelative(0.0f, 2.08f, -0.81f, 3.98f, -2.11f, 5.4f)
+ close()
+ }
+ }
+ .build()
+}
diff --git a/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/drawable.kt b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/drawable.kt
deleted file mode 100644
index 6bdb7e25..00000000
--- a/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/drawable.kt
+++ /dev/null
@@ -1,13 +0,0 @@
-package dev.msfjarvis.claw.common.res
-
-import androidx.compose.runtime.Composable
-import androidx.compose.ui.graphics.painter.Painter
-
-expect val commentIcon: Painter
- @Composable get
-expect val heartIcon: Painter
- @Composable get
-expect val heartBorderIcon: Painter
- @Composable get
-expect val webIcon: Painter
- @Composable get
diff --git a/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/util.kt b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/util.kt
new file mode 100644
index 00000000..fa1c756d
--- /dev/null
+++ b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/util.kt
@@ -0,0 +1,3 @@
+package dev.msfjarvis.claw.common
+
+fun unsafeLazy(initializer: () -> T) = lazy(LazyThreadSafetyMode.NONE, initializer)
diff --git a/common/src/desktopMain/kotlin/dev/msfjarvis/claw/common/res/drawable.kt b/common/src/desktopMain/kotlin/dev/msfjarvis/claw/common/res/drawable.kt
deleted file mode 100644
index 141eaa56..00000000
--- a/common/src/desktopMain/kotlin/dev/msfjarvis/claw/common/res/drawable.kt
+++ /dev/null
@@ -1,13 +0,0 @@
-package dev.msfjarvis.claw.common.res
-
-import androidx.compose.runtime.Composable
-import androidx.compose.ui.res.painterResource
-
-actual val commentIcon
- @Composable get() = painterResource("ic_insert_comment_24dp.xml")
-actual val heartIcon
- @Composable get() = painterResource("ic_favorite_24dp.xml")
-actual val heartBorderIcon
- @Composable get() = painterResource("ic_favorite_border_24dp.xml")
-actual val webIcon
- @Composable get() = painterResource("ic_web_24dp.xml")