diff --git a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/plugin/PluginScreen.kt b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/plugin/PluginScreen.kt index 5ae4a45f..5de3aa80 100644 --- a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/plugin/PluginScreen.kt +++ b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/plugin/PluginScreen.kt @@ -51,17 +51,10 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import compose.icons.FeatherIcons -import compose.icons.feathericons.Activity -import compose.icons.feathericons.AlignLeft -import compose.icons.feathericons.Check -import compose.icons.feathericons.ExternalLink -import compose.icons.feathericons.FileText -import compose.icons.feathericons.Music -import compose.icons.feathericons.Package import dev.krtirtho.spotube.core.ui.base.Card import dev.krtirtho.spotube.core.ui.base.PrimaryButton import dev.krtirtho.spotube.PlatformType +import dev.krtirtho.spotube.core.ui.base.OutlineButton import dev.krtirtho.spotube.core.ui.component.AdaptiveDropdownBottomSheet import dev.krtirtho.spotube.core.ui.component.AdaptiveMenuItem import dev.krtirtho.spotube.core.ui.component.ApplicationMainBar @@ -72,6 +65,15 @@ import dev.krtirtho.spotube.modules.plugin.components.InstallSection import dev.krtirtho.spotube.modules.plugin.components.PluginCard import dev.krtirtho.spotube.modules.plugin.components.PluginPermissionDialog import dev.krtirtho.spotube.modules.shell.LocalAppShellBottomInset +import dev.krtirtho.spotube.resources.iconsax.Iconsax +import dev.krtirtho.spotube.resources.iconsax.IconsaxArrowDown4 +import dev.krtirtho.spotube.resources.iconsax.IconsaxBox +import dev.krtirtho.spotube.resources.iconsax.IconsaxCheckSquare +import dev.krtirtho.spotube.resources.iconsax.IconsaxDocumentText +import dev.krtirtho.spotube.resources.iconsax.IconsaxEdit +import dev.krtirtho.spotube.resources.iconsax.IconsaxMusic +import dev.krtirtho.spotube.resources.iconsax.IconsaxSound +import dev.krtirtho.spotube.resources.iconsax.IconsaxTextalignLeft import io.github.vinceglb.filekit.dialogs.FileKitType import io.github.vinceglb.filekit.dialogs.compose.rememberFilePickerLauncher import io.github.vinceglb.filekit.readBytes @@ -230,7 +232,9 @@ fun PluginScreen( PluginAbility.entries.forEachIndexed { index, ability -> if (index > 0) { HorizontalDivider( - color = MaterialTheme.colorScheme.outlineVariant.copy(alpha = 0.5f), + color = MaterialTheme.colorScheme.outlineVariant.copy( + alpha = 0.5f + ), ) } val selectedPlugin = state.selectedPlugins[ability] @@ -246,7 +250,6 @@ fun PluginScreen( onSelected = { plugin -> pluginManager.setSelectedPlugin(ability, plugin) }, - onManagePlugins = { } ) } } @@ -270,7 +273,7 @@ fun PluginScreen( ) { Box(contentAlignment = Alignment.Center) { Icon( - FeatherIcons.Package, + Iconsax.IconsaxBox, contentDescription = null, modifier = Modifier.size(32.dp), tint = MaterialTheme.colorScheme.primary @@ -321,10 +324,13 @@ fun PluginScreen( state.plugins.forEachIndexed { index, plugin -> if (index > 0) { HorizontalDivider( - color = MaterialTheme.colorScheme.outlineVariant.copy(alpha = 0.5f), + color = MaterialTheme.colorScheme.outlineVariant.copy( + alpha = 0.5f + ), ) } - val isSelected = state.selectedPlugins.containsValue(plugin) + val isSelected = + state.selectedPlugins.containsValue(plugin) val selectedAbility = state.selectedPlugins .entries .firstOrNull { (_, selectedPlugin) -> selectedPlugin.id == plugin.id } @@ -333,7 +339,10 @@ fun PluginScreen( activeServices?.get(ability) } - var requiresAuth by remember(plugin.id, selectedService) { + var requiresAuth by remember( + plugin.id, + selectedService + ) { mutableStateOf(false) } var isLoggedIn by remember(plugin.id, selectedService) { @@ -343,11 +352,13 @@ fun PluginScreen( LaunchedEffect(plugin.id, selectedService) { requiresAuth = false isLoggedIn = false - val service = selectedService ?: return@LaunchedEffect + val service = + selectedService ?: return@LaunchedEffect service.use { - val pluginRequiresAuth = coreAPI.requiresAuthentication + val pluginRequiresAuth = + coreAPI.requiresAuthentication requiresAuth = pluginRequiresAuth if (!pluginRequiresAuth) return@use @@ -403,12 +414,9 @@ fun DefaultAbilityPluginSelector( state: StateFlow>, selectedPlugin: PluginEntry? = null, onSelected: (PluginEntry?) -> Unit = { }, - onManagePlugins: () -> Unit = { } ) { val plugins by state.collectAsStateWithLifecycle() val noPluginsText = stringResource(Res.string.settings_plugins_no_plugins) - val clearText = stringResource(Res.string.settings_plugins_clear) - val manageText = stringResource(Res.string.settings_plugins_manage_title) val menuItems = buildList { if (plugins.isNotEmpty()) { @@ -422,17 +430,6 @@ fun DefaultAbilityPluginSelector( ) ) } - - if (selectedPlugin != null) { - add( - AdaptiveMenuItem( - icon = FeatherIcons.AlignLeft, - label = clearText, - onClick = { onSelected(null) }, - dividerBefore = true, - ) - ) - } } else { add( AdaptiveMenuItem( @@ -442,15 +439,6 @@ fun DefaultAbilityPluginSelector( ) ) } - - add( - AdaptiveMenuItem( - icon = FeatherIcons.ExternalLink, - label = manageText, - onClick = onManagePlugins, - dividerBefore = true, - ) - ) } Row( @@ -476,10 +464,10 @@ fun DefaultAbilityPluginSelector( ) { Icon( imageVector = when (ability) { - PluginAbility.METADATA -> FeatherIcons.FileText - PluginAbility.AUDIO -> FeatherIcons.Music - PluginAbility.LYRICS -> FeatherIcons.AlignLeft - PluginAbility.SCROBBLE -> FeatherIcons.Activity + PluginAbility.METADATA -> Iconsax.IconsaxDocumentText + PluginAbility.AUDIO -> Iconsax.IconsaxMusic + PluginAbility.LYRICS -> Iconsax.IconsaxTextalignLeft + PluginAbility.SCROBBLE -> Iconsax.IconsaxSound }, contentDescription = stringResource( Res.string.settings_plugins_plugin_content_description, @@ -544,10 +532,10 @@ fun DefaultAbilityPluginSelector( ) { Icon( imageVector = when (ability) { - PluginAbility.METADATA -> FeatherIcons.FileText - PluginAbility.AUDIO -> FeatherIcons.Music - PluginAbility.LYRICS -> FeatherIcons.AlignLeft - PluginAbility.SCROBBLE -> FeatherIcons.Activity + PluginAbility.METADATA -> Iconsax.IconsaxDocumentText + PluginAbility.AUDIO -> Iconsax.IconsaxMusic + PluginAbility.LYRICS -> Iconsax.IconsaxTextalignLeft + PluginAbility.SCROBBLE -> Iconsax.IconsaxSound }, contentDescription = null, modifier = Modifier.padding(8.dp), @@ -578,21 +566,18 @@ fun DefaultAbilityPluginSelector( } }, trigger = { onClick -> - PrimaryButton( - onClick = onClick, - ) { - Icon( - imageVector = FeatherIcons.Check, - contentDescription = null, - modifier = Modifier.padding(0.dp), - ) + OutlineButton(onClick = onClick) { Text( if (selectedPlugin != null) { stringResource(Res.string.settings_plugins_action_change) } else { - stringResource(Res.string.settings_plugins_action_select) + stringResource(Res.string.settings_plugins_action_select) + " " }, - style = MaterialTheme.typography.labelSmall + ) + Icon( + imageVector = if (selectedPlugin != null) Iconsax.IconsaxEdit else Iconsax.IconsaxArrowDown4, + contentDescription = null, + modifier = Modifier.size(14.dp), ) } }, diff --git a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/plugin/components/InstallSection.kt b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/plugin/components/InstallSection.kt index e61a86f2..0f97928b 100644 --- a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/plugin/components/InstallSection.kt +++ b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/plugin/components/InstallSection.kt @@ -22,7 +22,6 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width @@ -31,20 +30,21 @@ import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp -import compose.icons.FeatherIcons -import compose.icons.feathericons.Download -import compose.icons.feathericons.Link -import compose.icons.feathericons.Upload import dev.krtirtho.spotube.core.ui.base.Card +import dev.krtirtho.spotube.core.ui.base.TextField import dev.krtirtho.spotube.core.ui.base.OutlineButton import dev.krtirtho.spotube.core.ui.base.PrimaryButton +import dev.krtirtho.spotube.core.ui.base.SecondaryIconButton +import dev.krtirtho.spotube.resources.iconsax.Iconsax +import dev.krtirtho.spotube.resources.iconsax.IconsaxExportArrowBulk +import dev.krtirtho.spotube.resources.iconsax.IconsaxImportArrow2Bulk +import dev.krtirtho.spotube.resources.iconsax.IconsaxLink import org.jetbrains.compose.resources.stringResource import spotube.composeapp.generated.resources.Res import spotube.composeapp.generated.resources.plugin_action_download @@ -73,7 +73,7 @@ internal fun InstallSection( horizontalArrangement = Arrangement.spacedBy(8.dp) ) { Icon( - FeatherIcons.Download, + Iconsax.IconsaxImportArrow2Bulk, contentDescription = null, modifier = Modifier.size(16.dp), tint = MaterialTheme.colorScheme.primary @@ -91,7 +91,7 @@ internal fun InstallSection( verticalAlignment = Alignment.Top, horizontalArrangement = Arrangement.spacedBy(8.dp) ) { - OutlinedTextField( + TextField( value = urlInput, onValueChange = onUrlChange, modifier = Modifier.weight(1f), @@ -103,18 +103,17 @@ internal fun InstallSection( }, leadingIcon = { Icon( - FeatherIcons.Link, + Iconsax.IconsaxLink, contentDescription = null, modifier = Modifier.size(16.dp) ) }, isError = urlError != null, - supportingText = urlError?.let { { Text(it) } }, +// supportingText = urlError?.let { { Text(it) } }, +// shape = RoundedCornerShape(10.dp), singleLine = true, - shape = RoundedCornerShape(10.dp), - textStyle = MaterialTheme.typography.bodySmall ) - PrimaryButton( + SecondaryIconButton( onClick = onSubmitUrl, enabled = !isLoadingUrl, ) { @@ -126,9 +125,8 @@ internal fun InstallSection( ) } else { Icon( - FeatherIcons.Download, + Iconsax.IconsaxImportArrow2Bulk, contentDescription = stringResource(Res.string.plugin_action_download), - modifier = Modifier.size(16.dp) ) } } @@ -142,9 +140,8 @@ internal fun InstallSection( modifier = Modifier.fillMaxWidth(), ) { Icon( - FeatherIcons.Upload, - contentDescription = null, - modifier = Modifier.size(16.dp) + Iconsax.IconsaxExportArrowBulk, + contentDescription = stringResource(Res.string.plugin_action_install_from_file) ) Spacer(Modifier.width(8.dp)) Text(stringResource(Res.string.plugin_action_install_from_file)) diff --git a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/settings/sections/AppearanceSection.kt b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/settings/sections/AppearanceSection.kt index 3925390f..0838fc75 100644 --- a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/settings/sections/AppearanceSection.kt +++ b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/settings/sections/AppearanceSection.kt @@ -58,6 +58,9 @@ import dev.krtirtho.spotube.modules.settings.Theme import dev.krtirtho.spotube.modules.settings.UserSettings import dev.krtirtho.spotube.modules.settings.components.SelectionSettingCard import dev.krtirtho.spotube.modules.settings.components.SettingCardItem +import dev.krtirtho.spotube.resources.iconsax.Iconsax +import dev.krtirtho.spotube.resources.iconsax.IconsaxColorSwatch +import dev.krtirtho.spotube.resources.iconsax.IconsaxColorsSquare import org.jetbrains.compose.resources.stringResource import spotube.composeapp.generated.resources.* @@ -76,7 +79,7 @@ internal fun LazyListScope.appearanceSection( settings.theme.displayLabel() ), icon = { - SettingsItemIcon(FeatherIcons.Monitor, stringResource(Res.string.settings_theme_title)) + SettingsItemIcon(Iconsax.IconsaxColorSwatch, stringResource(Res.string.settings_theme_title)) }, selectedOption = settings.theme, options = Theme.entries, @@ -92,7 +95,7 @@ internal fun LazyListScope.appearanceSection( AccentColorSettingCard( selectedAccent = settings.accentColor, icon = { - SettingsItemIcon(FeatherIcons.Droplet, stringResource(Res.string.settings_accent_title)) + SettingsItemIcon(Iconsax.IconsaxColorsSquare, stringResource(Res.string.settings_accent_title)) }, onColorSaved = { accent -> settingsViewModel.updateSettings { diff --git a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/settings/sections/CacheSection.kt b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/settings/sections/CacheSection.kt index bf9fe9a1..4ff417cc 100644 --- a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/settings/sections/CacheSection.kt +++ b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/settings/sections/CacheSection.kt @@ -30,6 +30,11 @@ import dev.krtirtho.spotube.modules.settings.UserSettings import dev.krtirtho.spotube.modules.settings.components.SettingCardItem import dev.krtirtho.spotube.modules.settings.components.SwitchSettingCard import dev.krtirtho.spotube.modules.settings.components.TextInputSettingCard +import dev.krtirtho.spotube.resources.iconsax.Iconsax +import dev.krtirtho.spotube.resources.iconsax.IconsaxDocumentDownload +import dev.krtirtho.spotube.resources.iconsax.IconsaxFolder +import dev.krtirtho.spotube.resources.iconsax.IconsaxFolderAdd +import dev.krtirtho.spotube.resources.iconsax.IconsaxStopCircle import io.github.vinceglb.filekit.path import io.github.vinceglb.filekit.dialogs.compose.rememberDirectoryPickerLauncher import org.jetbrains.compose.resources.stringResource @@ -47,7 +52,7 @@ internal fun LazyListScope.cacheSection( subtitle = stringResource(Res.string.settings_enable_music_caching_subtitle), icon = { SettingsItemIcon( - FeatherIcons.HardDrive, + Iconsax.IconsaxDocumentDownload, stringResource(Res.string.settings_enable_music_caching_title) ) }, @@ -86,7 +91,7 @@ internal fun LazyListScope.cacheSection( }, icon = { SettingsItemIcon( - FeatherIcons.HardDrive, + Iconsax.IconsaxStopCircle, stringResource(Res.string.settings_cache_size_limit_title) ) }, @@ -141,7 +146,7 @@ private fun CacheFolderSettingCard( } ?: stringResource(Res.string.settings_cache_folder_default), icon = { SettingsItemIcon( - FeatherIcons.Folder, + Iconsax.IconsaxFolder, stringResource(Res.string.settings_cache_folder_title) ) }, @@ -151,7 +156,7 @@ private fun CacheFolderSettingCard( enabled = enabled, ) { Icon( - FeatherIcons.Folder, + Iconsax.IconsaxFolderAdd, contentDescription = stringResource(Res.string.settings_cache_folder_title) ) } diff --git a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/settings/sections/DesktopSection.kt b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/settings/sections/DesktopSection.kt index 3026b168..54de88c7 100644 --- a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/settings/sections/DesktopSection.kt +++ b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/settings/sections/DesktopSection.kt @@ -18,13 +18,13 @@ package dev.krtirtho.spotube.modules.settings.sections import androidx.compose.foundation.lazy.LazyListScope -import compose.icons.FeatherIcons -import compose.icons.feathericons.Activity -import compose.icons.feathericons.Minimize2 import spotube.composeapp.generated.resources.* import dev.krtirtho.spotube.modules.settings.SettingsViewModel import dev.krtirtho.spotube.modules.settings.UserSettings import dev.krtirtho.spotube.modules.settings.components.SwitchSettingCard +import dev.krtirtho.spotube.resources.iconsax.Iconsax +import dev.krtirtho.spotube.resources.iconsax.IconsaxImportArrow2 +import dev.krtirtho.spotube.resources.iconsax.LineDiscord import org.jetbrains.compose.resources.stringResource internal fun LazyListScope.desktopSection( @@ -40,7 +40,7 @@ internal fun LazyListScope.desktopSection( subtitle = stringResource(Res.string.settings_desktop_minimize_subtitle), icon = { SettingsItemIcon( - FeatherIcons.Minimize2, + Iconsax.IconsaxImportArrow2, stringResource(Res.string.settings_desktop_minimize_title) ) }, @@ -58,7 +58,7 @@ internal fun LazyListScope.desktopSection( subtitle = stringResource(Res.string.settings_desktop_discord_subtitle), icon = { SettingsItemIcon( - FeatherIcons.Activity, + Iconsax.LineDiscord, stringResource(Res.string.settings_desktop_discord_title) ) }, diff --git a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/settings/sections/DownloadsSection.kt b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/settings/sections/DownloadsSection.kt index c9b26911..5750a811 100644 --- a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/settings/sections/DownloadsSection.kt +++ b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/settings/sections/DownloadsSection.kt @@ -24,8 +24,6 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyListScope -import androidx.compose.foundation.rememberScrollState -import androidx.compose.foundation.verticalScroll import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text @@ -39,24 +37,44 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import compose.icons.FeatherIcons -import compose.icons.feathericons.Disc -import compose.icons.feathericons.Folder -import compose.icons.feathericons.PlusSquare -import compose.icons.feathericons.Sliders -import compose.icons.feathericons.Trash2 -import spotube.composeapp.generated.resources.* -import dev.krtirtho.spotube.core.ui.base.ThemedDialog import dev.krtirtho.spotube.core.ui.base.GhostIconButton import dev.krtirtho.spotube.core.ui.base.OutlineButton import dev.krtirtho.spotube.core.ui.base.PrimaryButton +import dev.krtirtho.spotube.core.ui.base.ThemedDialog import dev.krtirtho.spotube.modules.settings.SettingsViewModel import dev.krtirtho.spotube.modules.settings.UserSettings -import dev.krtirtho.spotube.modules.settings.components.SettingCardItem import dev.krtirtho.spotube.modules.settings.components.SelectionSettingCard -import io.github.vinceglb.filekit.path +import dev.krtirtho.spotube.modules.settings.components.SettingCardItem +import dev.krtirtho.spotube.resources.iconsax.Iconsax +import dev.krtirtho.spotube.resources.iconsax.IconsaxAddSquare +import dev.krtirtho.spotube.resources.iconsax.IconsaxDirectboxReceive +import dev.krtirtho.spotube.resources.iconsax.IconsaxFolder +import dev.krtirtho.spotube.resources.iconsax.IconsaxFolderAdd +import dev.krtirtho.spotube.resources.iconsax.IconsaxMusicPlay +import dev.krtirtho.spotube.resources.iconsax.IconsaxTrash +import dev.krtirtho.spotube.resources.iconsax.IconsaxVerticalSetting import io.github.vinceglb.filekit.dialogs.compose.rememberDirectoryPickerLauncher +import io.github.vinceglb.filekit.path import org.jetbrains.compose.resources.stringResource +import spotube.composeapp.generated.resources.Res +import spotube.composeapp.generated.resources.settings_action_cancel +import spotube.composeapp.generated.resources.settings_action_save +import spotube.composeapp.generated.resources.settings_download_folder_current +import spotube.composeapp.generated.resources.settings_download_folder_default +import spotube.composeapp.generated.resources.settings_download_folder_title +import spotube.composeapp.generated.resources.settings_download_format_subtitle_current +import spotube.composeapp.generated.resources.settings_download_format_title +import spotube.composeapp.generated.resources.settings_download_quality_title +import spotube.composeapp.generated.resources.settings_local_media_folders_add_action +import spotube.composeapp.generated.resources.settings_local_media_folders_description +import spotube.composeapp.generated.resources.settings_local_media_folders_manage +import spotube.composeapp.generated.resources.settings_local_media_folders_none_added +import spotube.composeapp.generated.resources.settings_local_media_folders_remove_action +import spotube.composeapp.generated.resources.settings_local_media_folders_subtitle_current +import spotube.composeapp.generated.resources.settings_local_media_folders_subtitle_empty +import spotube.composeapp.generated.resources.settings_local_media_folders_title +import spotube.composeapp.generated.resources.settings_section_downloads +import spotube.composeapp.generated.resources.settings_subtitle_current internal fun LazyListScope.downloadsSection( settings: UserSettings, @@ -99,7 +117,7 @@ internal fun LazyListScope.downloadsSection( settings.downloadMusicFormat.displayLabel() ), icon = { - SettingsItemIcon(FeatherIcons.Disc, stringResource(Res.string.settings_download_format_title)) + SettingsItemIcon(Iconsax.IconsaxMusicPlay, stringResource(Res.string.settings_download_format_title)) }, selectedOption = settings.downloadMusicFormat, options = downloadFormats, @@ -122,7 +140,7 @@ internal fun LazyListScope.downloadsSection( settings.downloadMusicQuality.displayLabel() ), icon = { - SettingsItemIcon(FeatherIcons.Sliders, stringResource(Res.string.settings_download_quality_title)) + SettingsItemIcon(Iconsax.IconsaxVerticalSetting, stringResource(Res.string.settings_download_quality_title)) }, selectedOption = settings.downloadMusicQuality, options = downloadQualities, @@ -158,12 +176,12 @@ private fun DownloadFolderSettingCard( stringResource(Res.string.settings_download_folder_current, it) } ?: stringResource(Res.string.settings_download_folder_default), icon = { - SettingsItemIcon(FeatherIcons.Folder, stringResource(Res.string.settings_download_folder_title)) + SettingsItemIcon(Iconsax.IconsaxDirectboxReceive, stringResource(Res.string.settings_download_folder_title)) }, trailingContent = { GhostIconButton(onClick = { pickerLauncher.launch() }) { Icon( - FeatherIcons.Folder, + imageVector = Iconsax.IconsaxFolderAdd, contentDescription = stringResource(Res.string.settings_download_folder_title) ) } @@ -195,7 +213,7 @@ private fun LocalMediaFoldersSettingCard( subtitle = subtitlePreview, icon = { SettingsItemIcon( - FeatherIcons.Folder, + Iconsax.IconsaxFolder, stringResource(Res.string.settings_local_media_folders_title), ) }, @@ -270,7 +288,7 @@ private fun LocalMediaFoldersDialog( horizontalArrangement = Arrangement.spacedBy(8.dp), verticalAlignment = Alignment.CenterVertically, ) { - Icon(FeatherIcons.PlusSquare, contentDescription = null) + Icon(Iconsax.IconsaxAddSquare, contentDescription = null) Text(stringResource(Res.string.settings_local_media_folders_add_action)) } } @@ -305,7 +323,7 @@ private fun LocalMediaFoldersDialog( } ) { Icon( - imageVector = FeatherIcons.Trash2, + imageVector = Iconsax.IconsaxTrash, contentDescription = stringResource( Res.string.settings_local_media_folders_remove_action, ), diff --git a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/settings/sections/LanguageRegionSection.kt b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/settings/sections/LanguageRegionSection.kt index db2460cb..e0e9545d 100644 --- a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/settings/sections/LanguageRegionSection.kt +++ b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/settings/sections/LanguageRegionSection.kt @@ -27,6 +27,9 @@ import dev.krtirtho.spotube.modules.settings.SettingsViewModel import dev.krtirtho.spotube.modules.settings.SupportedLanguages import dev.krtirtho.spotube.modules.settings.UserSettings import dev.krtirtho.spotube.modules.settings.components.SelectionSettingCard +import dev.krtirtho.spotube.resources.iconsax.Iconsax +import dev.krtirtho.spotube.resources.iconsax.IconsaxGlobe +import dev.krtirtho.spotube.resources.iconsax.IconsaxLanguageSquare import org.jetbrains.compose.resources.stringResource internal fun LazyListScope.languageRegionSection( @@ -45,7 +48,7 @@ internal fun LazyListScope.languageRegionSection( ), icon = { SettingsItemIcon( - FeatherIcons.Globe, + Iconsax.IconsaxLanguageSquare, stringResource(Res.string.settings_language_title) ) }, @@ -71,7 +74,7 @@ internal fun LazyListScope.languageRegionSection( ), icon = { SettingsItemIcon( - FeatherIcons.MapPin, + Iconsax.IconsaxGlobe, stringResource(Res.string.settings_country_title) ) }, diff --git a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/settings/sections/PlaybackSection.kt b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/settings/sections/PlaybackSection.kt index 74e9daf1..1ec101f7 100644 --- a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/settings/sections/PlaybackSection.kt +++ b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/settings/sections/PlaybackSection.kt @@ -30,6 +30,12 @@ import dev.krtirtho.spotube.modules.settings.UserSettings import dev.krtirtho.spotube.modules.settings.components.SelectionSettingCard import dev.krtirtho.spotube.modules.settings.components.SwitchSettingCard import dev.krtirtho.spotube.modules.settings.components.TextInputSettingCard +import dev.krtirtho.spotube.resources.iconsax.CustomServer +import dev.krtirtho.spotube.resources.iconsax.Iconsax +import dev.krtirtho.spotube.resources.iconsax.IconsaxMirroringScreen +import dev.krtirtho.spotube.resources.iconsax.IconsaxMusicPlay +import dev.krtirtho.spotube.resources.iconsax.IconsaxRepeatArrow +import dev.krtirtho.spotube.resources.iconsax.IconsaxVerticalSetting import org.jetbrains.compose.resources.stringResource internal fun LazyListScope.playbackSection( @@ -53,7 +59,7 @@ internal fun LazyListScope.playbackSection( settings.streamingMusicFormat.displayLabel() ), icon = { - SettingsItemIcon(FeatherIcons.Radio, stringResource(Res.string.settings_streaming_format_title)) + SettingsItemIcon(Iconsax.IconsaxMusicPlay, stringResource(Res.string.settings_streaming_format_title)) }, selectedOption = settings.streamingMusicFormat, options = streamingFormats, @@ -76,7 +82,7 @@ internal fun LazyListScope.playbackSection( settings.streamingMusicQuality.displayLabel() ), icon = { - SettingsItemIcon(FeatherIcons.Sliders, stringResource(Res.string.settings_streaming_quality_title)) + SettingsItemIcon(Iconsax.IconsaxVerticalSetting, stringResource(Res.string.settings_streaming_quality_title)) }, selectedOption = settings.streamingMusicQuality, options = streamingQualities, @@ -94,7 +100,7 @@ internal fun LazyListScope.playbackSection( subtitle = stringResource(Res.string.settings_enable_endless_playback_subtitle), icon = { SettingsItemIcon( - FeatherIcons.Repeat, + Iconsax.IconsaxRepeatArrow, stringResource(Res.string.settings_enable_endless_playback_title) ) }, @@ -111,7 +117,7 @@ internal fun LazyListScope.playbackSection( title = stringResource(Res.string.settings_enable_connect_title), subtitle = stringResource(Res.string.settings_enable_connect_subtitle), icon = { - SettingsItemIcon(FeatherIcons.Cast, stringResource(Res.string.settings_enable_connect_title)) + SettingsItemIcon(Iconsax.IconsaxMirroringScreen, stringResource(Res.string.settings_enable_connect_title)) }, checked = settings.enableConnect, onCheckedChange = { enabled -> @@ -132,7 +138,7 @@ internal fun LazyListScope.playbackSection( settings.playbackProxyServerPort ), icon = { - SettingsItemIcon(FeatherIcons.Server, stringResource(Res.string.settings_playback_port_title)) + SettingsItemIcon(Iconsax.CustomServer, stringResource(Res.string.settings_playback_port_title)) }, value = settings.playbackProxyServerPort.toString(), dialogDescription = stringResource(Res.string.settings_playback_port_description), diff --git a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/settings/sections/PluginsSection.kt b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/settings/sections/PluginsSection.kt index 12868d50..2258f117 100644 --- a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/settings/sections/PluginsSection.kt +++ b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/settings/sections/PluginsSection.kt @@ -30,6 +30,8 @@ import dev.krtirtho.spotube.core.navigation.NavigationCommands import dev.krtirtho.spotube.core.navigation.Routes import spotube.composeapp.generated.resources.* import dev.krtirtho.spotube.modules.settings.components.SettingCardItem +import dev.krtirtho.spotube.resources.iconsax.Iconsax +import dev.krtirtho.spotube.resources.iconsax.IconsaxBoxAdd import org.jetbrains.compose.resources.stringResource internal fun LazyListScope.pluginsSection( @@ -43,7 +45,7 @@ internal fun LazyListScope.pluginsSection( subtitle = stringResource(Res.string.settings_plugins_manage_subtitle), icon = { SettingsItemIcon( - FeatherIcons.Package, + Iconsax.IconsaxBoxAdd, stringResource(Res.string.settings_section_plugins), Color(0xFFFF9800) ) diff --git a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/settings/sections/UpdatesSection.kt b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/settings/sections/UpdatesSection.kt index 4d0a0c26..0981d0e7 100644 --- a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/settings/sections/UpdatesSection.kt +++ b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/settings/sections/UpdatesSection.kt @@ -18,15 +18,16 @@ package dev.krtirtho.spotube.modules.settings.sections import androidx.compose.foundation.lazy.LazyListScope -import compose.icons.FeatherIcons -import compose.icons.feathericons.RefreshCw -import spotube.composeapp.generated.resources.* import dev.krtirtho.spotube.modules.settings.SettingsViewModel import dev.krtirtho.spotube.modules.settings.UserSettings import dev.krtirtho.spotube.modules.settings.components.SwitchSettingCard +import dev.krtirtho.spotube.resources.iconsax.Iconsax +import dev.krtirtho.spotube.resources.iconsax.IconsaxRefreshArrow2 import org.jetbrains.compose.resources.stringResource import spotube.composeapp.generated.resources.Res import spotube.composeapp.generated.resources.settings_section_updates +import spotube.composeapp.generated.resources.settings_updates_auto_check_subtitle +import spotube.composeapp.generated.resources.settings_updates_auto_check_title internal fun LazyListScope.updatesSection( settings: UserSettings, @@ -40,7 +41,7 @@ internal fun LazyListScope.updatesSection( subtitle = stringResource(Res.string.settings_updates_auto_check_subtitle), icon = { SettingsItemIcon( - FeatherIcons.RefreshCw, + Iconsax.IconsaxRefreshArrow2, stringResource(Res.string.settings_updates_auto_check_title) ) }, diff --git a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/settings/sections/SettingsSectionSupport.kt b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/settings/sections/utils.kt similarity index 100% rename from composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/settings/sections/SettingsSectionSupport.kt rename to composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/modules/settings/sections/utils.kt diff --git a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/CustomServer.kt b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/CustomServer.kt new file mode 100644 index 00000000..362d0dde --- /dev/null +++ b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/CustomServer.kt @@ -0,0 +1,150 @@ +package dev.krtirtho.spotube.resources.iconsax + +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.PathData +import androidx.compose.ui.graphics.vector.group +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.unit.dp + +val Iconsax.CustomServer: ImageVector + get() { + if (_CustomServer != null) { + return _CustomServer!! + } + _CustomServer = ImageVector.Builder( + name = "CustomServer", + defaultWidth = 24.dp, + defaultHeight = 24.dp, + viewportWidth = 24f, + viewportHeight = 24f + ).apply { + group( + clipPathData = PathData { + moveTo(0f, 0f) + horizontalLineToRelative(24f) + verticalLineToRelative(24f) + horizontalLineToRelative(-24f) + close() + } + ) { + // Layer 1: The solid, bright Status Check Badge (bottom right) + path(fill = SolidColor(Color.White)) { + moveTo(18.5f, 11f) + curveTo(14.91f, 11f, 12f, 13.91f, 12f, 17.5f) + curveTo(12f, 21.09f, 14.91f, 24f, 18.5f, 24f) + curveTo(22.09f, 24f, 25f, 21.09f, 25f, 17.5f) + curveTo(25f, 13.91f, 22.09f, 11f, 18.5f, 11f) + close() + // The cutout shape of the checkmark + moveTo(17.2f, 20.3f) + lineTo(14.7f, 17.8f) + curveTo(14.31f, 17.41f, 14.31f, 16.78f, 14.7f, 16.39f) + curveTo(15.09f, 16f, 15.72f, 16f, 16.11f, 16.39f) + lineTo(17.9f, 18.18f) + lineTo(21.39f, 14.69f) + curveTo(21.78f, 14.3f, 22.41f, 14.3f, 22.8f, 14.69f) + curveTo(23.19f, 15.08f, 23.19f, 15.71f, 22.8f, 16.1f) + lineTo(18.6f, 20.3f) + curveTo(18.21f, 20.69f, 17.59f, 20.69f, 17.2f, 20.3f) + close() + } + + // Layer 2: Main Server Rack Chassis (Top & Bottom shells with 40% opacity) + path( + fill = SolidColor(Color.White), + fillAlpha = 0.4f, + strokeAlpha = 0.4f + ) { + // Outer border of the double-slot server rack structure + moveTo(20.5f, 8.5f) + verticalLineTo(7f) + curveTo(20.5f, 3.5f, 18f, 1.5f, 13f, 1.5f) + horizontalLineTo(7f) + curveTo(3f, 1.5f, 1.5f, 3.5f, 1.5f, 7f) + verticalLineTo(9.5f) + curveTo(1.5f, 11.5f, 3f, 12f, 4.5f, 12f) + curveTo(3f, 12f, 1.5f, 12.5f, 1.5f, 14.5f) + verticalLineTo(17f) + curveTo(1.5f, 20.5f, 3f, 22.5f, 7f, 22.5f) + horizontalLineTo(10f) + curveTo(10.55f, 22.5f, 11f, 22.05f, 11f, 21.5f) + curveTo(11f, 20.95f, 10.55f, 20.5f, 10f, 20.5f) + horizontalLineTo(7f) + curveTo(4.5f, 20.5f, 3.5f, 19.5f, 3.5f, 17f) + verticalLineTo(14.5f) + curveTo(3.5f, 13f, 4.5f, 13f, 6f, 13f) + curveTo(6.55f, 13f, 7f, 12.55f, 7f, 12f) + curveTo(7f, 11.45f, 6.55f, 11f, 6f, 11f) + curveTo(4.5f, 11f, 3.5f, 11f, 3.5f, 9.5f) + verticalLineTo(7f) + curveTo(3.5f, 4.5f, 4.5f, 3.5f, 7f, 3.5f) + horizontalLineTo(13f) + curveTo(16.5f, 3.5f, 18.5f, 4.5f, 18.5f, 7f) + verticalLineTo(8.5f) + curveTo(18.5f, 9.05f, 18.95f, 9.5f, 19.5f, 9.5f) + curveTo(20.05f, 9.5f, 20.5f, 9.05f, 20.5f, 8.5f) + close() + } + + // Layer 3: Server Front Panel Slots, Buttons, and LEDs (100% white) + path(fill = SolidColor(Color.White)) { + // Top Slot LED 1 + moveTo(5.5f, 5.5f) + curveTo(6.05f, 5.5f, 6.5f, 5.95f, 6.5f, 6.5f) + verticalLineTo(7.5f) + curveTo(6.5f, 8.05f, 6.05f, 8.5f, 5.5f, 8.5f) + curveTo(4.95f, 8.5f, 4.5f, 8.05f, 4.5f, 7.5f) + verticalLineTo(6.5f) + curveTo(4.5f, 5.95f, 4.95f, 5.5f, 5.5f, 5.5f) + close() + + // Top Slot LED 2 + moveTo(8.5f, 5.5f) + curveTo(9.05f, 5.5f, 9.5f, 5.95f, 9.5f, 6.5f) + verticalLineTo(7.5f) + curveTo(9.5f, 8.05f, 9.05f, 8.5f, 8.5f, 8.5f) + curveTo(7.95f, 8.5f, 7.5f, 8.05f, 7.5f, 7.5f) + verticalLineTo(6.5f) + curveTo(7.5f, 5.95f, 7.95f, 5.5f, 8.5f, 5.5f) + close() + + // Top Slot Button Strip + moveTo(11.5f, 6f) + horizontalLineTo(16.5f) + curveTo(17.05f, 6f, 17.5f, 6.45f, 17.5f, 7f) + curveTo(17.5f, 7.55f, 17.05f, 8f, 16.5f, 8f) + horizontalLineTo(11.5f) + curveTo(10.95f, 8f, 10.5f, 7.55f, 10.5f, 7f) + curveTo(10.5f, 6.45f, 10.95f, 6f, 11.5f, 6f) + close() + + // Bottom Slot LED 1 + moveTo(5.5f, 14.5f) + curveTo(6.05f, 14.5f, 6.5f, 14.95f, 6.5f, 15.5f) + verticalLineTo(16.5f) + curveTo(6.5f, 17.05f, 6.05f, 17.5f, 5.5f, 17.5f) + curveTo(4.95f, 17.5f, 4.5f, 17.05f, 4.5f, 16.5f) + verticalLineTo(15.5f) + curveTo(4.5f, 14.95f, 4.95f, 14.5f, 5.5f, 14.5f) + close() + + // Bottom Slot LED 2 + moveTo(8.5f, 14.5f) + curveTo(9.05f, 14.5f, 9.5f, 14.95f, 9.5f, 15.5f) + verticalLineTo(16.5f) + curveTo(9.5f, 17.05f, 9.05f, 17.5f, 8.5f, 17.5f) + curveTo(7.95f, 17.5f, 7.5f, 17.05f, 7.5f, 16.5f) + verticalLineTo(15.5f) + curveTo(7.5f, 14.95f, 7.95f, 14.5f, 8.5f, 14.5f) + close() + } + } + }.build() + + return _CustomServer!! + } + +@Suppress("ObjectPropertyName") +private var _CustomServer: ImageVector? = null \ No newline at end of file diff --git a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxBox.kt b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxBox.kt new file mode 100644 index 00000000..9c71eb43 --- /dev/null +++ b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxBox.kt @@ -0,0 +1,120 @@ +package dev.krtirtho.spotube.resources.iconsax + +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.PathData +import androidx.compose.ui.graphics.vector.group +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.unit.dp + +val Iconsax.IconsaxBox: ImageVector + get() { + if (_IconsaxBox != null) { + return _IconsaxBox!! + } + _IconsaxBox = ImageVector.Builder( + name = "IconsaxBox", + defaultWidth = 24.dp, + defaultHeight = 24.dp, + viewportWidth = 24f, + viewportHeight = 24f + ).apply { + group( + clipPathData = PathData { + moveTo(0f, 0f) + horizontalLineToRelative(24f) + verticalLineToRelative(24f) + horizontalLineToRelative(-24f) + close() + } + ) { + path( + fill = SolidColor(Color.White), + fillAlpha = 0.4f, + strokeAlpha = 0.4f + ) { + moveTo(20.1f, 6.94f) + curveTo(20.1f, 7.48f, 19.81f, 7.97f, 19.35f, 8.22f) + lineTo(17.61f, 9.16f) + lineTo(16.13f, 9.95f) + lineTo(13.06f, 11.61f) + curveTo(12.73f, 11.79f, 12.37f, 11.88f, 12f, 11.88f) + curveTo(11.63f, 11.88f, 11.27f, 11.79f, 10.94f, 11.61f) + lineTo(4.65f, 8.22f) + curveTo(4.19f, 7.97f, 3.9f, 7.48f, 3.9f, 6.94f) + curveTo(3.9f, 6.4f, 4.19f, 5.91f, 4.65f, 5.66f) + lineTo(6.62f, 4.6f) + lineTo(8.19f, 3.75f) + lineTo(10.94f, 2.27f) + curveTo(11.6f, 1.91f, 12.4f, 1.91f, 13.06f, 2.27f) + lineTo(19.35f, 5.66f) + curveTo(19.81f, 5.91f, 20.1f, 6.4f, 20.1f, 6.94f) + close() + } + path( + fill = SolidColor(Color.White), + fillAlpha = 0.4f, + strokeAlpha = 0.4f + ) { + moveTo(9.9f, 12.79f) + lineTo(4.05f, 9.86f) + curveTo(3.6f, 9.63f, 3.08f, 9.66f, 2.65f, 9.92f) + curveTo(2.22f, 10.18f, 1.97f, 10.64f, 1.97f, 11.14f) + verticalLineTo(16.67f) + curveTo(1.97f, 17.63f, 2.5f, 18.49f, 3.36f, 18.92f) + lineTo(9.21f, 21.84f) + curveTo(9.41f, 21.94f, 9.63f, 21.99f, 9.85f, 21.99f) + curveTo(10.11f, 21.99f, 10.37f, 21.92f, 10.6f, 21.77f) + curveTo(11.03f, 21.51f, 11.28f, 21.05f, 11.28f, 20.55f) + verticalLineTo(15.02f) + curveTo(11.29f, 14.08f, 10.76f, 13.22f, 9.9f, 12.79f) + close() + } + path( + fill = SolidColor(Color.White), + fillAlpha = 0.4f, + strokeAlpha = 0.4f + ) { + moveTo(22.03f, 11.15f) + verticalLineTo(16.68f) + curveTo(22.03f, 17.63f, 21.5f, 18.49f, 20.64f, 18.92f) + lineTo(14.79f, 21.85f) + curveTo(14.59f, 21.95f, 14.37f, 22f, 14.15f, 22f) + curveTo(13.89f, 22f, 13.63f, 21.93f, 13.39f, 21.78f) + curveTo(12.97f, 21.52f, 12.71f, 21.06f, 12.71f, 20.56f) + verticalLineTo(15.04f) + curveTo(12.71f, 14.08f, 13.24f, 13.22f, 14.1f, 12.79f) + lineTo(16.25f, 11.72f) + lineTo(17.75f, 10.97f) + lineTo(19.95f, 9.87f) + curveTo(20.4f, 9.64f, 20.92f, 9.66f, 21.35f, 9.93f) + curveTo(21.77f, 10.19f, 22.03f, 10.65f, 22.03f, 11.15f) + close() + } + path(fill = SolidColor(Color.White)) { + moveTo(17.61f, 9.16f) + lineTo(16.13f, 9.95f) + lineTo(6.62f, 4.6f) + lineTo(8.19f, 3.75f) + lineTo(17.37f, 8.93f) + curveTo(17.47f, 8.99f, 17.55f, 9.07f, 17.61f, 9.16f) + close() + } + path(fill = SolidColor(Color.White)) { + moveTo(17.75f, 10.971f) + verticalLineTo(13.241f) + curveTo(17.75f, 13.651f, 17.41f, 13.991f, 17f, 13.991f) + curveTo(16.59f, 13.991f, 16.25f, 13.651f, 16.25f, 13.241f) + verticalLineTo(11.721f) + lineTo(17.75f, 10.971f) + close() + } + } + }.build() + + return _IconsaxBox!! + } + +@Suppress("ObjectPropertyName") +private var _IconsaxBox: ImageVector? = null diff --git a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxColorSwatch.kt b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxColorSwatch.kt new file mode 100644 index 00000000..afd465d0 --- /dev/null +++ b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxColorSwatch.kt @@ -0,0 +1,109 @@ +package dev.krtirtho.spotube.resources.iconsax + +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.PathData +import androidx.compose.ui.graphics.vector.group +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.unit.dp + +val Iconsax.IconsaxColorSwatch: ImageVector + get() { + if (_IconsaxColorSwatch != null) { + return _IconsaxColorSwatch!! + } + _IconsaxColorSwatch = ImageVector.Builder( + name = "IconsaxColorSwatch", + defaultWidth = 24.dp, + defaultHeight = 24.dp, + viewportWidth = 24f, + viewportHeight = 24f + ).apply { + group( + clipPathData = PathData { + moveTo(0f, 0f) + horizontalLineToRelative(24f) + verticalLineToRelative(24f) + horizontalLineToRelative(-24f) + close() + } + ) { + path( + fill = SolidColor(Color.White), + fillAlpha = 0.4f, + strokeAlpha = 0.4f + ) { + moveTo(22f, 16.5f) + verticalLineTo(19.5f) + curveTo(22f, 21f, 21f, 22f, 19.5f, 22f) + horizontalLineTo(6f) + curveTo(6.41f, 22f, 6.83f, 21.94f, 7.22f, 21.81f) + curveTo(7.33f, 21.77f, 7.44f, 21.73f, 7.55f, 21.68f) + curveTo(7.9f, 21.54f, 8.24f, 21.34f, 8.54f, 21.08f) + curveTo(8.63f, 21.01f, 8.73f, 20.92f, 8.82f, 20.83f) + lineTo(8.86f, 20.79f) + lineTo(15.66f, 14f) + horizontalLineTo(19.5f) + curveTo(21f, 14f, 22f, 15f, 22f, 16.5f) + close() + } + path( + fill = SolidColor(Color.White), + fillAlpha = 0.6f, + strokeAlpha = 0.6f + ) { + moveTo(18.37f, 11.291f) + lineTo(15.66f, 14.001f) + lineTo(8.86f, 20.791f) + curveTo(9.56f, 20.071f, 10f, 19.081f, 10f, 18.001f) + verticalLineTo(8.341f) + lineTo(12.71f, 5.631f) + curveTo(13.77f, 4.571f, 15.19f, 4.571f, 16.25f, 5.631f) + lineTo(18.37f, 7.751f) + curveTo(19.43f, 8.811f, 19.43f, 10.231f, 18.37f, 11.291f) + close() + } + path(fill = SolidColor(Color.White)) { + moveTo(7.5f, 2f) + horizontalLineTo(4.5f) + curveTo(3f, 2f, 2f, 3f, 2f, 4.5f) + verticalLineTo(18f) + curveTo(2f, 18.27f, 2.03f, 18.54f, 2.08f, 18.8f) + curveTo(2.11f, 18.93f, 2.14f, 19.06f, 2.18f, 19.19f) + curveTo(2.23f, 19.34f, 2.28f, 19.49f, 2.34f, 19.63f) + curveTo(2.35f, 19.64f, 2.35f, 19.65f, 2.35f, 19.65f) + curveTo(2.36f, 19.65f, 2.36f, 19.65f, 2.35f, 19.66f) + curveTo(2.49f, 19.94f, 2.65f, 20.21f, 2.84f, 20.46f) + curveTo(2.95f, 20.59f, 3.06f, 20.71f, 3.17f, 20.83f) + curveTo(3.28f, 20.95f, 3.4f, 21.05f, 3.53f, 21.15f) + lineTo(3.54f, 21.16f) + curveTo(3.79f, 21.35f, 4.06f, 21.51f, 4.34f, 21.65f) + curveTo(4.35f, 21.64f, 4.35f, 21.64f, 4.35f, 21.65f) + curveTo(4.5f, 21.72f, 4.65f, 21.77f, 4.81f, 21.82f) + curveTo(4.94f, 21.86f, 5.07f, 21.89f, 5.2f, 21.92f) + curveTo(5.46f, 21.97f, 5.73f, 22f, 6f, 22f) + curveTo(6.41f, 22f, 6.83f, 21.94f, 7.22f, 21.81f) + curveTo(7.33f, 21.77f, 7.44f, 21.73f, 7.55f, 21.68f) + curveTo(7.9f, 21.54f, 8.24f, 21.34f, 8.54f, 21.08f) + curveTo(8.63f, 21.01f, 8.73f, 20.92f, 8.82f, 20.83f) + lineTo(8.86f, 20.79f) + curveTo(9.56f, 20.07f, 10f, 19.08f, 10f, 18f) + verticalLineTo(4.5f) + curveTo(10f, 3f, 9f, 2f, 7.5f, 2f) + close() + moveTo(6f, 19.5f) + curveTo(5.17f, 19.5f, 4.5f, 18.83f, 4.5f, 18f) + curveTo(4.5f, 17.17f, 5.17f, 16.5f, 6f, 16.5f) + curveTo(6.83f, 16.5f, 7.5f, 17.17f, 7.5f, 18f) + curveTo(7.5f, 18.83f, 6.83f, 19.5f, 6f, 19.5f) + close() + } + } + }.build() + + return _IconsaxColorSwatch!! + } + +@Suppress("ObjectPropertyName") +private var _IconsaxColorSwatch: ImageVector? = null diff --git a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxColorsSquare.kt b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxColorsSquare.kt index 78dc0cea..da5cce79 100644 --- a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxColorsSquare.kt +++ b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxColorsSquare.kt @@ -1,20 +1,3 @@ -/* - * Copyright (C) 2026 Kingkor Roy Tirtho and Spotube Contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program 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 Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - package dev.krtirtho.spotube.resources.iconsax import androidx.compose.ui.graphics.Color diff --git a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxDocumentDownload.kt b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxDocumentDownload.kt new file mode 100644 index 00000000..9c1ae5c2 --- /dev/null +++ b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxDocumentDownload.kt @@ -0,0 +1,90 @@ +package dev.krtirtho.spotube.resources.iconsax + +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.PathData +import androidx.compose.ui.graphics.vector.group +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.unit.dp + +val Iconsax.IconsaxDocumentDownload: ImageVector + get() { + if (_IconsaxDocumentDownload != null) { + return _IconsaxDocumentDownload!! + } + _IconsaxDocumentDownload = ImageVector.Builder( + name = "IconsaxDocumentDownload", + defaultWidth = 24.dp, + defaultHeight = 24.dp, + viewportWidth = 24f, + viewportHeight = 24f + ).apply { + group( + clipPathData = PathData { + moveTo(0f, 0f) + horizontalLineToRelative(24f) + verticalLineToRelative(24f) + horizontalLineToRelative(-24f) + close() + } + ) { + path( + fill = SolidColor(Color.White), + fillAlpha = 0.4f, + strokeAlpha = 0.4f + ) { + moveTo(20.5f, 10.19f) + horizontalLineTo(17.61f) + curveTo(15.24f, 10.19f, 13.31f, 8.26f, 13.31f, 5.89f) + verticalLineTo(3f) + curveTo(13.31f, 2.45f, 12.86f, 2f, 12.31f, 2f) + horizontalLineTo(8.07f) + curveTo(4.99f, 2f, 2.5f, 4f, 2.5f, 7.57f) + verticalLineTo(16.43f) + curveTo(2.5f, 20f, 4.99f, 22f, 8.07f, 22f) + horizontalLineTo(15.93f) + curveTo(19.01f, 22f, 21.5f, 20f, 21.5f, 16.43f) + verticalLineTo(11.19f) + curveTo(21.5f, 10.64f, 21.05f, 10.19f, 20.5f, 10.19f) + close() + } + path(fill = SolidColor(Color.White)) { + moveTo(15.8f, 2.21f) + curveTo(15.39f, 1.8f, 14.68f, 2.08f, 14.68f, 2.65f) + verticalLineTo(6.14f) + curveTo(14.68f, 7.6f, 15.92f, 8.81f, 17.43f, 8.81f) + curveTo(18.38f, 8.82f, 19.7f, 8.82f, 20.83f, 8.82f) + curveTo(21.4f, 8.82f, 21.7f, 8.15f, 21.3f, 7.75f) + curveTo(19.86f, 6.3f, 17.28f, 3.69f, 15.8f, 2.21f) + close() + } + path(fill = SolidColor(Color.White)) { + moveTo(12.28f, 14.72f) + curveTo(11.99f, 14.43f, 11.51f, 14.43f, 11.22f, 14.72f) + lineTo(10.5f, 15.44f) + verticalLineTo(11.25f) + curveTo(10.5f, 10.84f, 10.16f, 10.5f, 9.75f, 10.5f) + curveTo(9.34f, 10.5f, 9f, 10.84f, 9f, 11.25f) + verticalLineTo(15.44f) + lineTo(8.28f, 14.72f) + curveTo(7.99f, 14.43f, 7.51f, 14.43f, 7.22f, 14.72f) + curveTo(6.93f, 15.01f, 6.93f, 15.49f, 7.22f, 15.78f) + lineTo(9.22f, 17.78f) + curveTo(9.23f, 17.79f, 9.24f, 17.79f, 9.24f, 17.8f) + curveTo(9.3f, 17.86f, 9.38f, 17.91f, 9.46f, 17.95f) + curveTo(9.56f, 17.98f, 9.65f, 18f, 9.75f, 18f) + curveTo(9.85f, 18f, 9.94f, 17.98f, 10.03f, 17.94f) + curveTo(10.12f, 17.9f, 10.2f, 17.85f, 10.28f, 17.78f) + lineTo(12.28f, 15.78f) + curveTo(12.57f, 15.49f, 12.57f, 15.01f, 12.28f, 14.72f) + close() + } + } + }.build() + + return _IconsaxDocumentDownload!! + } + +@Suppress("ObjectPropertyName") +private var _IconsaxDocumentDownload: ImageVector? = null diff --git a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxExportArrowBulk.kt b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxExportArrowBulk.kt new file mode 100644 index 00000000..5ab7e7b4 --- /dev/null +++ b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxExportArrowBulk.kt @@ -0,0 +1,61 @@ +package dev.krtirtho.spotube.resources.iconsax + +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.unit.dp + +val Iconsax.IconsaxExportArrowBulk: ImageVector + get() { + if (_IconsaxExportArrowBulk != null) { + return _IconsaxExportArrowBulk!! + } + _IconsaxExportArrowBulk = ImageVector.Builder( + name = "IconsaxExportArrowBulk", + defaultWidth = 24.dp, + defaultHeight = 24.dp, + viewportWidth = 24f, + viewportHeight = 24f + ).apply { + path( + fill = SolidColor(Color.White), + fillAlpha = 0.4f, + strokeAlpha = 0.4f + ) { + moveTo(16.8f, 9f) + horizontalLineTo(7.2f) + curveTo(4f, 9f, 2f, 11f, 2f, 14.2f) + verticalLineTo(16.79f) + curveTo(2f, 20f, 4f, 22f, 7.2f, 22f) + horizontalLineTo(16.79f) + curveTo(19.99f, 22f, 21.99f, 20f, 21.99f, 16.8f) + verticalLineTo(14.2f) + curveTo(22f, 11f, 20f, 9f, 16.8f, 9f) + close() + } + path(fill = SolidColor(Color.White)) { + moveTo(15.88f, 5.57f) + lineTo(12.53f, 2.22f) + curveTo(12.24f, 1.93f, 11.76f, 1.93f, 11.47f, 2.22f) + lineTo(8.12f, 5.57f) + curveTo(7.83f, 5.86f, 7.83f, 6.34f, 8.12f, 6.63f) + curveTo(8.41f, 6.92f, 8.89f, 6.92f, 9.18f, 6.63f) + lineTo(11.25f, 4.56f) + verticalLineTo(15.25f) + curveTo(11.25f, 15.66f, 11.59f, 16f, 12f, 16f) + curveTo(12.41f, 16f, 12.75f, 15.66f, 12.75f, 15.25f) + verticalLineTo(4.56f) + lineTo(14.82f, 6.63f) + curveTo(14.97f, 6.78f, 15.16f, 6.85f, 15.35f, 6.85f) + curveTo(15.54f, 6.85f, 15.73f, 6.78f, 15.88f, 6.63f) + curveTo(16.18f, 6.34f, 16.18f, 5.87f, 15.88f, 5.57f) + close() + } + }.build() + + return _IconsaxExportArrowBulk!! + } + +@Suppress("ObjectPropertyName") +private var _IconsaxExportArrowBulk: ImageVector? = null diff --git a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxFolder.kt b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxFolder.kt new file mode 100644 index 00000000..d817c099 --- /dev/null +++ b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxFolder.kt @@ -0,0 +1,68 @@ +package dev.krtirtho.spotube.resources.iconsax + +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.PathData +import androidx.compose.ui.graphics.vector.group +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.unit.dp + +val Iconsax.IconsaxFolder: ImageVector + get() { + if (_IconsaxFolder != null) { + return _IconsaxFolder!! + } + _IconsaxFolder = ImageVector.Builder( + name = "IconsaxFolder", + defaultWidth = 24.dp, + defaultHeight = 24.dp, + viewportWidth = 24f, + viewportHeight = 24f + ).apply { + group( + clipPathData = PathData { + moveTo(0f, 0f) + horizontalLineToRelative(24f) + verticalLineToRelative(24f) + horizontalLineToRelative(-24f) + close() + } + ) { + path(fill = SolidColor(Color.White)) { + moveTo(22f, 11.07f) + verticalLineTo(16.65f) + curveTo(22f, 19.6f, 19.6f, 22f, 16.65f, 22f) + horizontalLineTo(7.35f) + curveTo(4.4f, 22f, 2f, 19.6f, 2f, 16.65f) + verticalLineTo(9.44f) + horizontalLineTo(21.74f) + curveTo(21.89f, 9.89f, 21.97f, 10.35f, 21.99f, 10.84f) + curveTo(22f, 10.91f, 22f, 11f, 22f, 11.07f) + close() + } + path( + fill = SolidColor(Color.White), + fillAlpha = 0.4f, + strokeAlpha = 0.4f + ) { + moveTo(21.74f, 9.44f) + horizontalLineTo(2f) + verticalLineTo(6.42f) + curveTo(2f, 3.98f, 3.98f, 2f, 6.42f, 2f) + horizontalLineTo(8.75f) + curveTo(10.38f, 2f, 10.89f, 2.53f, 11.54f, 3.4f) + lineTo(12.94f, 5.26f) + curveTo(13.25f, 5.67f, 13.29f, 5.73f, 13.87f, 5.73f) + horizontalLineTo(16.66f) + curveTo(19.03f, 5.72f, 21.05f, 7.28f, 21.74f, 9.44f) + close() + } + } + }.build() + + return _IconsaxFolder!! + } + +@Suppress("ObjectPropertyName") +private var _IconsaxFolder: ImageVector? = null diff --git a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxFolderAdd.kt b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxFolderAdd.kt new file mode 100644 index 00000000..f51ad4bc --- /dev/null +++ b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxFolderAdd.kt @@ -0,0 +1,86 @@ +package dev.krtirtho.spotube.resources.iconsax + +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.PathData +import androidx.compose.ui.graphics.vector.group +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.unit.dp + +val Iconsax.IconsaxFolderAdd: ImageVector + get() { + if (_IconsaxFolderAdd != null) { + return _IconsaxFolderAdd!! + } + _IconsaxFolderAdd = ImageVector.Builder( + name = "IconsaxFolderAdd", + defaultWidth = 24.dp, + defaultHeight = 24.dp, + viewportWidth = 24f, + viewportHeight = 24f + ).apply { + group( + clipPathData = PathData { + moveTo(0f, 0f) + horizontalLineToRelative(24f) + verticalLineToRelative(24f) + horizontalLineToRelative(-24f) + close() + } + ) { + path( + fill = SolidColor(Color.White), + fillAlpha = 0.4f, + strokeAlpha = 0.4f + ) { + moveTo(21.74f, 9.44f) + horizontalLineTo(2f) + verticalLineTo(6.42f) + curveTo(2f, 3.98f, 3.98f, 2f, 6.42f, 2f) + horizontalLineTo(8.75f) + curveTo(10.38f, 2f, 10.89f, 2.53f, 11.54f, 3.4f) + lineTo(12.94f, 5.26f) + curveTo(13.25f, 5.67f, 13.29f, 5.73f, 13.87f, 5.73f) + horizontalLineTo(16.66f) + curveTo(19.03f, 5.72f, 21.05f, 7.28f, 21.74f, 9.44f) + close() + } + path(fill = SolidColor(Color.White)) { + moveTo(21.99f, 10.84f) + curveTo(21.97f, 10.35f, 21.89f, 9.89f, 21.74f, 9.44f) + horizontalLineTo(2f) + verticalLineTo(16.65f) + curveTo(2f, 19.6f, 4.4f, 22f, 7.35f, 22f) + horizontalLineTo(16.65f) + curveTo(19.6f, 22f, 22f, 19.6f, 22f, 16.65f) + verticalLineTo(11.07f) + curveTo(22f, 11f, 22f, 10.91f, 21.99f, 10.84f) + close() + moveTo(14.5f, 16.25f) + horizontalLineTo(12.81f) + verticalLineTo(18f) + curveTo(12.81f, 18.41f, 12.47f, 18.75f, 12.06f, 18.75f) + curveTo(11.65f, 18.75f, 11.31f, 18.41f, 11.31f, 18f) + verticalLineTo(16.25f) + horizontalLineTo(9.5f) + curveTo(9.09f, 16.25f, 8.75f, 15.91f, 8.75f, 15.5f) + curveTo(8.75f, 15.09f, 9.09f, 14.75f, 9.5f, 14.75f) + horizontalLineTo(11.31f) + verticalLineTo(13f) + curveTo(11.31f, 12.59f, 11.65f, 12.25f, 12.06f, 12.25f) + curveTo(12.47f, 12.25f, 12.81f, 12.59f, 12.81f, 13f) + verticalLineTo(14.75f) + horizontalLineTo(14.5f) + curveTo(14.91f, 14.75f, 15.25f, 15.09f, 15.25f, 15.5f) + curveTo(15.25f, 15.91f, 14.91f, 16.25f, 14.5f, 16.25f) + close() + } + } + }.build() + + return _IconsaxFolderAdd!! + } + +@Suppress("ObjectPropertyName") +private var _IconsaxFolderAdd: ImageVector? = null diff --git a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxGlobe.kt b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxGlobe.kt new file mode 100644 index 00000000..b59f1e3b --- /dev/null +++ b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxGlobe.kt @@ -0,0 +1,140 @@ +package dev.krtirtho.spotube.resources.iconsax + +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.PathData +import androidx.compose.ui.graphics.vector.group +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.unit.dp + +val Iconsax.IconsaxGlobe: ImageVector + get() { + if (_IconsaxGlobe != null) { + return _IconsaxGlobe!! + } + _IconsaxGlobe = ImageVector.Builder( + name = "IconsaxGlobe", + defaultWidth = 24.dp, + defaultHeight = 24.dp, + viewportWidth = 24f, + viewportHeight = 24f + ).apply { + group( + clipPathData = PathData { + moveTo(0f, 0f) + horizontalLineToRelative(24f) + verticalLineToRelative(24f) + horizontalLineToRelative(-24f) + close() + } + ) { + path( + fill = SolidColor(Color.White), + fillAlpha = 0.4f, + strokeAlpha = 0.4f + ) { + moveTo(7.65f, 20.91f) + curveTo(7.62f, 20.91f, 7.58f, 20.93f, 7.55f, 20.93f) + curveTo(5.61f, 19.97f, 4.03f, 18.38f, 3.06f, 16.44f) + curveTo(3.06f, 16.41f, 3.08f, 16.37f, 3.08f, 16.34f) + curveTo(4.3f, 16.7f, 5.56f, 16.97f, 6.81f, 17.18f) + curveTo(7.03f, 18.44f, 7.29f, 19.69f, 7.65f, 20.91f) + close() + } + path( + fill = SolidColor(Color.White), + fillAlpha = 0.4f, + strokeAlpha = 0.4f + ) { + moveTo(20.94f, 16.45f) + curveTo(19.95f, 18.44f, 18.3f, 20.05f, 16.29f, 21.02f) + curveTo(16.67f, 19.75f, 16.99f, 18.47f, 17.2f, 17.18f) + curveTo(18.46f, 16.97f, 19.7f, 16.7f, 20.92f, 16.34f) + curveTo(20.91f, 16.38f, 20.94f, 16.42f, 20.94f, 16.45f) + close() + } + path( + fill = SolidColor(Color.White), + fillAlpha = 0.4f, + strokeAlpha = 0.4f + ) { + moveTo(21.02f, 7.71f) + curveTo(19.76f, 7.33f, 18.49f, 7.02f, 17.2f, 6.8f) + curveTo(16.99f, 5.51f, 16.68f, 4.23f, 16.29f, 2.98f) + curveTo(18.36f, 3.97f, 20.03f, 5.64f, 21.02f, 7.71f) + close() + } + path( + fill = SolidColor(Color.White), + fillAlpha = 0.4f, + strokeAlpha = 0.4f + ) { + moveTo(7.65f, 3.091f) + curveTo(7.29f, 4.311f, 7.03f, 5.551f, 6.82f, 6.811f) + curveTo(5.53f, 7.011f, 4.25f, 7.331f, 2.98f, 7.711f) + curveTo(3.95f, 5.701f, 5.56f, 4.051f, 7.55f, 3.061f) + curveTo(7.58f, 3.061f, 7.62f, 3.091f, 7.65f, 3.091f) + close() + } + path(fill = SolidColor(Color.White)) { + moveTo(15.49f, 6.59f) + curveTo(13.17f, 6.33f, 10.83f, 6.33f, 8.51f, 6.59f) + curveTo(8.76f, 5.22f, 9.08f, 3.85f, 9.53f, 2.53f) + curveTo(9.55f, 2.45f, 9.54f, 2.39f, 9.55f, 2.31f) + curveTo(10.34f, 2.12f, 11.15f, 2f, 12f, 2f) + curveTo(12.84f, 2f, 13.66f, 2.12f, 14.44f, 2.31f) + curveTo(14.45f, 2.39f, 14.45f, 2.45f, 14.47f, 2.53f) + curveTo(14.92f, 3.86f, 15.24f, 5.22f, 15.49f, 6.59f) + close() + } + path(fill = SolidColor(Color.White)) { + moveTo(6.59f, 15.49f) + curveTo(5.21f, 15.24f, 3.85f, 14.92f, 2.53f, 14.47f) + curveTo(2.45f, 14.45f, 2.39f, 14.46f, 2.31f, 14.45f) + curveTo(2.12f, 13.66f, 2f, 12.85f, 2f, 12f) + curveTo(2f, 11.16f, 2.12f, 10.34f, 2.31f, 9.56f) + curveTo(2.39f, 9.55f, 2.45f, 9.55f, 2.53f, 9.53f) + curveTo(3.86f, 9.09f, 5.21f, 8.76f, 6.59f, 8.51f) + curveTo(6.34f, 10.83f, 6.34f, 13.17f, 6.59f, 15.49f) + close() + } + path(fill = SolidColor(Color.White)) { + moveTo(22f, 12f) + curveTo(22f, 12.85f, 21.88f, 13.66f, 21.69f, 14.45f) + curveTo(21.61f, 14.46f, 21.55f, 14.45f, 21.47f, 14.47f) + curveTo(20.14f, 14.91f, 18.78f, 15.24f, 17.41f, 15.49f) + curveTo(17.67f, 13.17f, 17.67f, 10.83f, 17.41f, 8.51f) + curveTo(18.78f, 8.76f, 20.15f, 9.08f, 21.47f, 9.53f) + curveTo(21.55f, 9.55f, 21.61f, 9.56f, 21.69f, 9.56f) + curveTo(21.88f, 10.35f, 22f, 11.16f, 22f, 12f) + close() + } + path(fill = SolidColor(Color.White)) { + moveTo(15.49f, 17.41f) + curveTo(15.24f, 18.79f, 14.92f, 20.15f, 14.47f, 21.47f) + curveTo(14.45f, 21.55f, 14.45f, 21.61f, 14.44f, 21.69f) + curveTo(13.66f, 21.88f, 12.84f, 22f, 12f, 22f) + curveTo(11.15f, 22f, 10.34f, 21.88f, 9.55f, 21.69f) + curveTo(9.54f, 21.61f, 9.55f, 21.55f, 9.53f, 21.47f) + curveTo(9.09f, 20.14f, 8.76f, 18.79f, 8.51f, 17.41f) + curveTo(9.67f, 17.54f, 10.83f, 17.63f, 12f, 17.63f) + curveTo(13.17f, 17.63f, 14.34f, 17.54f, 15.49f, 17.41f) + close() + } + path(fill = SolidColor(Color.White)) { + moveTo(15.763f, 15.763f) + curveTo(13.262f, 16.079f, 10.738f, 16.079f, 8.237f, 15.763f) + curveTo(7.921f, 13.262f, 7.921f, 10.738f, 8.237f, 8.237f) + curveTo(10.738f, 7.921f, 13.262f, 7.921f, 15.763f, 8.237f) + curveTo(16.079f, 10.738f, 16.079f, 13.262f, 15.763f, 15.763f) + close() + } + } + }.build() + + return _IconsaxGlobe!! + } + +@Suppress("ObjectPropertyName") +private var _IconsaxGlobe: ImageVector? = null diff --git a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxImportArrow2.kt b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxImportArrow2.kt new file mode 100644 index 00000000..198e667e --- /dev/null +++ b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxImportArrow2.kt @@ -0,0 +1,67 @@ +package dev.krtirtho.spotube.resources.iconsax + +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.StrokeCap +import androidx.compose.ui.graphics.StrokeJoin +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.unit.dp + +val Iconsax.IconsaxImportArrow2: ImageVector + get() { + if (_IconsaxImportArrow2 != null) { + return _IconsaxImportArrow2!! + } + _IconsaxImportArrow2 = ImageVector.Builder( + name = "IconsaxImportArrow2", + defaultWidth = 24.dp, + defaultHeight = 24.dp, + viewportWidth = 24f, + viewportHeight = 24f + ).apply { + path( + fillAlpha = 0.4f, + stroke = SolidColor(Color.White), + strokeAlpha = 0.4f, + strokeLineWidth = 1.5f, + strokeLineCap = StrokeCap.Round, + strokeLineJoin = StrokeJoin.Round + ) { + moveTo(22.001f, 2f) + lineTo(13.801f, 10.2f) + } + path( + fillAlpha = 0.4f, + stroke = SolidColor(Color.White), + strokeAlpha = 0.4f, + strokeLineWidth = 1.5f, + strokeLineCap = StrokeCap.Round, + strokeLineJoin = StrokeJoin.Round + ) { + moveTo(13f, 6.17f) + verticalLineTo(11f) + horizontalLineTo(17.83f) + } + path( + stroke = SolidColor(Color.White), + strokeLineWidth = 1.5f, + strokeLineCap = StrokeCap.Round, + strokeLineJoin = StrokeJoin.Round + ) { + moveTo(11f, 2f) + horizontalLineTo(9f) + curveTo(4f, 2f, 2f, 4f, 2f, 9f) + verticalLineTo(15f) + curveTo(2f, 20f, 4f, 22f, 9f, 22f) + horizontalLineTo(15f) + curveTo(20f, 22f, 22f, 20f, 22f, 15f) + verticalLineTo(13f) + } + }.build() + + return _IconsaxImportArrow2!! + } + +@Suppress("ObjectPropertyName") +private var _IconsaxImportArrow2: ImageVector? = null diff --git a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxImportArrow2Bulk.kt b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxImportArrow2Bulk.kt new file mode 100644 index 00000000..7c31a0cf --- /dev/null +++ b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxImportArrow2Bulk.kt @@ -0,0 +1,61 @@ +package dev.krtirtho.spotube.resources.iconsax + +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.unit.dp + +val Iconsax.IconsaxImportArrow2Bulk: ImageVector + get() { + if (_IconsaxImportArrow2Bulk != null) { + return _IconsaxImportArrow2Bulk!! + } + _IconsaxImportArrow2Bulk = ImageVector.Builder( + name = "IconsaxImportArrow2Bulk", + defaultWidth = 24.dp, + defaultHeight = 24.dp, + viewportWidth = 24f, + viewportHeight = 24f + ).apply { + path( + fill = SolidColor(Color.White), + fillAlpha = 0.4f, + strokeAlpha = 0.4f + ) { + moveTo(16.8f, 9f) + horizontalLineTo(7.2f) + curveTo(4f, 9f, 2f, 11f, 2f, 14.2f) + verticalLineTo(16.79f) + curveTo(2f, 20f, 4f, 22f, 7.2f, 22f) + horizontalLineTo(16.79f) + curveTo(19.99f, 22f, 21.99f, 20f, 21.99f, 16.8f) + verticalLineTo(14.2f) + curveTo(22f, 11f, 20f, 9f, 16.8f, 9f) + close() + } + path(fill = SolidColor(Color.White)) { + moveTo(15.88f, 12.43f) + lineTo(12.53f, 15.78f) + curveTo(12.24f, 16.07f, 11.76f, 16.07f, 11.47f, 15.78f) + lineTo(8.12f, 12.43f) + curveTo(7.83f, 12.14f, 7.83f, 11.66f, 8.12f, 11.37f) + curveTo(8.41f, 11.08f, 8.89f, 11.08f, 9.18f, 11.37f) + lineTo(11.25f, 13.44f) + verticalLineTo(2.75f) + curveTo(11.25f, 2.34f, 11.59f, 2f, 12f, 2f) + curveTo(12.41f, 2f, 12.75f, 2.34f, 12.75f, 2.75f) + verticalLineTo(13.44f) + lineTo(14.82f, 11.37f) + curveTo(14.97f, 11.22f, 15.16f, 11.15f, 15.35f, 11.15f) + curveTo(15.54f, 11.15f, 15.73f, 11.22f, 15.88f, 11.37f) + curveTo(16.18f, 11.66f, 16.18f, 12.13f, 15.88f, 12.43f) + close() + } + }.build() + + return _IconsaxImportArrow2Bulk!! + } + +@Suppress("ObjectPropertyName") +private var _IconsaxImportArrow2Bulk: ImageVector? = null diff --git a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxLink.kt b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxLink.kt new file mode 100644 index 00000000..a91f5e06 --- /dev/null +++ b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxLink.kt @@ -0,0 +1,65 @@ +package dev.krtirtho.spotube.resources.iconsax + +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.StrokeCap +import androidx.compose.ui.graphics.StrokeJoin +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.PathData +import androidx.compose.ui.graphics.vector.group +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.unit.dp + +val Iconsax.IconsaxLink: ImageVector + get() { + if (_IconsaxLink != null) { + return _IconsaxLink!! + } + _IconsaxLink = ImageVector.Builder( + name = "IconsaxLink", + defaultWidth = 24.dp, + defaultHeight = 24.dp, + viewportWidth = 24f, + viewportHeight = 24f + ).apply { + group( + clipPathData = PathData { + moveTo(0f, 0f) + horizontalLineToRelative(24f) + verticalLineToRelative(24f) + horizontalLineToRelative(-24f) + close() + } + ) { + path( + stroke = SolidColor(Color.White), + strokeLineWidth = 1.5f, + strokeLineCap = StrokeCap.Round, + strokeLineJoin = StrokeJoin.Round + ) { + moveTo(13.06f, 10.94f) + curveTo(15.31f, 13.19f, 15.31f, 16.83f, 13.06f, 19.07f) + curveTo(10.81f, 21.31f, 7.17f, 21.32f, 4.93f, 19.07f) + curveTo(2.69f, 16.82f, 2.68f, 13.18f, 4.93f, 10.94f) + } + path( + fillAlpha = 0.4f, + stroke = SolidColor(Color.White), + strokeAlpha = 0.4f, + strokeLineWidth = 1.5f, + strokeLineCap = StrokeCap.Round, + strokeLineJoin = StrokeJoin.Round + ) { + moveTo(10.59f, 13.41f) + curveTo(8.25f, 11.07f, 8.25f, 7.27f, 10.59f, 4.92f) + curveTo(12.93f, 2.57f, 16.73f, 2.58f, 19.08f, 4.92f) + curveTo(21.43f, 7.26f, 21.42f, 11.06f, 19.08f, 13.41f) + } + } + }.build() + + return _IconsaxLink!! + } + +@Suppress("ObjectPropertyName") +private var _IconsaxLink: ImageVector? = null diff --git a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxMirroringScreen.kt b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxMirroringScreen.kt new file mode 100644 index 00000000..d6dc0d2e --- /dev/null +++ b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxMirroringScreen.kt @@ -0,0 +1,90 @@ +package dev.krtirtho.spotube.resources.iconsax + +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.PathData +import androidx.compose.ui.graphics.vector.group +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.unit.dp + +val Iconsax.IconsaxMirroringScreen: ImageVector + get() { + if (_IconsaxMirroringScreen != null) { + return _IconsaxMirroringScreen!! + } + _IconsaxMirroringScreen = ImageVector.Builder( + name = "IconsaxMirroringScreen", + defaultWidth = 24.dp, + defaultHeight = 24.dp, + viewportWidth = 24f, + viewportHeight = 24f + ).apply { + group( + clipPathData = PathData { + moveTo(0f, 0f) + horizontalLineToRelative(24f) + verticalLineToRelative(24f) + horizontalLineToRelative(-24f) + close() + } + ) { + path( + fill = SolidColor(Color.White), + fillAlpha = 0.4f, + strokeAlpha = 0.4f + ) { + moveTo(2f, 9f) + verticalLineTo(8f) + curveTo(2f, 5.24f, 4.24f, 3f, 7f, 3f) + horizontalLineTo(17f) + curveTo(19.76f, 3f, 22f, 5.24f, 22f, 8f) + verticalLineTo(16f) + curveTo(22f, 18.76f, 19.76f, 21f, 17f, 21f) + horizontalLineTo(16f) + horizontalLineTo(7f) + curveTo(4.24f, 21f, 2f, 18.76f, 2f, 16f) + verticalLineTo(9f) + close() + } + path(fill = SolidColor(Color.White)) { + moveTo(16.14f, 15.439f) + curveTo(15.77f, 15.439f, 15.45f, 15.159f, 15.4f, 14.789f) + curveTo(14.97f, 11.409f, 12.51f, 8.949f, 9.13f, 8.519f) + curveTo(8.72f, 8.469f, 8.43f, 8.089f, 8.48f, 7.679f) + curveTo(8.53f, 7.269f, 8.91f, 6.979f, 9.32f, 7.029f) + curveTo(13.39f, 7.549f, 16.36f, 10.519f, 16.89f, 14.599f) + curveTo(16.94f, 15.009f, 16.65f, 15.389f, 16.24f, 15.439f) + curveTo(16.21f, 15.439f, 16.18f, 15.439f, 16.14f, 15.439f) + close() + } + path(fill = SolidColor(Color.White)) { + moveTo(13.44f, 16.298f) + curveTo(13.07f, 16.298f, 12.75f, 16.018f, 12.7f, 15.648f) + curveTo(12.39f, 13.268f, 10.66f, 11.528f, 8.27f, 11.218f) + curveTo(7.86f, 11.168f, 7.57f, 10.788f, 7.62f, 10.378f) + curveTo(7.67f, 9.968f, 8.05f, 9.678f, 8.46f, 9.728f) + curveTo(11.54f, 10.128f, 13.79f, 12.368f, 14.19f, 15.458f) + curveTo(14.24f, 15.868f, 13.95f, 16.248f, 13.54f, 16.298f) + curveTo(13.51f, 16.298f, 13.47f, 16.298f, 13.44f, 16.298f) + close() + } + path(fill = SolidColor(Color.White)) { + moveTo(10.39f, 16.809f) + curveTo(10.02f, 16.809f, 9.7f, 16.529f, 9.65f, 16.159f) + curveTo(9.52f, 15.139f, 8.78f, 14.399f, 7.76f, 14.269f) + curveTo(7.35f, 14.219f, 7.06f, 13.839f, 7.11f, 13.429f) + curveTo(7.16f, 13.019f, 7.54f, 12.729f, 7.95f, 12.779f) + curveTo(9.64f, 12.999f, 10.92f, 14.279f, 11.14f, 15.969f) + curveTo(11.19f, 16.379f, 10.9f, 16.759f, 10.49f, 16.809f) + curveTo(10.46f, 16.809f, 10.42f, 16.809f, 10.39f, 16.809f) + close() + } + } + }.build() + + return _IconsaxMirroringScreen!! + } + +@Suppress("ObjectPropertyName") +private var _IconsaxMirroringScreen: ImageVector? = null diff --git a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxMusicPlay.kt b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxMusicPlay.kt new file mode 100644 index 00000000..5a28f4b5 --- /dev/null +++ b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxMusicPlay.kt @@ -0,0 +1,109 @@ +package dev.krtirtho.spotube.resources.iconsax + +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.PathData +import androidx.compose.ui.graphics.vector.group +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.unit.dp + +val Iconsax.IconsaxMusicPlay: ImageVector + get() { + if (_IconsaxMusicPlay != null) { + return _IconsaxMusicPlay!! + } + _IconsaxMusicPlay = ImageVector.Builder( + name = "IconsaxMusicPlay", + defaultWidth = 24.dp, + defaultHeight = 24.dp, + viewportWidth = 24f, + viewportHeight = 24f + ).apply { + group( + clipPathData = PathData { + moveTo(0f, 0f) + horizontalLineToRelative(24f) + verticalLineToRelative(24f) + horizontalLineToRelative(-24f) + close() + } + ) { + path(fill = SolidColor(Color.White)) { + moveTo(13.18f, 11.861f) + curveTo(12.78f, 11.861f, 12.42f, 11.641f, 12.25f, 11.281f) + lineTo(10.8f, 8.391f) + lineTo(10.38f, 9.171f) + curveTo(10.15f, 9.601f, 9.69f, 9.871f, 9.2f, 9.871f) + horizontalLineTo(8.47f) + curveTo(8.06f, 9.871f, 7.72f, 9.531f, 7.72f, 9.121f) + curveTo(7.72f, 8.711f, 8.06f, 8.371f, 8.47f, 8.371f) + horizontalLineTo(9.11f) + lineTo(9.9f, 6.911f) + curveTo(10.09f, 6.571f, 10.47f, 6.341f, 10.83f, 6.361f) + curveTo(11.22f, 6.361f, 11.57f, 6.591f, 11.75f, 6.931f) + lineTo(13.18f, 9.791f) + lineTo(13.52f, 9.101f) + curveTo(13.75f, 8.641f, 14.2f, 8.361f, 14.72f, 8.361f) + horizontalLineTo(15.53f) + curveTo(15.94f, 8.361f, 16.28f, 8.701f, 16.28f, 9.111f) + curveTo(16.28f, 9.521f, 15.94f, 9.861f, 15.53f, 9.861f) + horizontalLineTo(14.82f) + lineTo(14.11f, 11.271f) + curveTo(13.93f, 11.641f, 13.58f, 11.861f, 13.18f, 11.861f) + close() + } + path( + fill = SolidColor(Color.White), + fillAlpha = 0.4f, + strokeAlpha = 0.4f + ) { + moveTo(2.75f, 18.651f) + curveTo(2.34f, 18.651f, 2f, 18.311f, 2f, 17.901f) + verticalLineTo(12.201f) + curveTo(1.95f, 9.491f, 2.96f, 6.931f, 4.84f, 5.011f) + curveTo(6.72f, 3.101f, 9.24f, 2.051f, 11.95f, 2.051f) + curveTo(17.49f, 2.051f, 22f, 6.561f, 22f, 12.101f) + verticalLineTo(17.801f) + curveTo(22f, 18.211f, 21.66f, 18.551f, 21.25f, 18.551f) + curveTo(20.84f, 18.551f, 20.5f, 18.211f, 20.5f, 17.801f) + verticalLineTo(12.101f) + curveTo(20.5f, 7.391f, 16.67f, 3.551f, 11.95f, 3.551f) + curveTo(9.64f, 3.551f, 7.5f, 4.441f, 5.91f, 6.061f) + curveTo(4.31f, 7.691f, 3.46f, 9.861f, 3.5f, 12.181f) + verticalLineTo(17.891f) + curveTo(3.5f, 18.311f, 3.17f, 18.651f, 2.75f, 18.651f) + close() + } + path(fill = SolidColor(Color.White)) { + moveTo(5.94f, 12.451f) + horizontalLineTo(5.81f) + curveTo(3.71f, 12.451f, 2f, 14.161f, 2f, 16.261f) + verticalLineTo(18.141f) + curveTo(2f, 20.241f, 3.71f, 21.951f, 5.81f, 21.951f) + horizontalLineTo(5.94f) + curveTo(8.04f, 21.951f, 9.75f, 20.241f, 9.75f, 18.141f) + verticalLineTo(16.261f) + curveTo(9.75f, 14.161f, 8.04f, 12.451f, 5.94f, 12.451f) + close() + } + path(fill = SolidColor(Color.White)) { + moveTo(18.19f, 12.451f) + horizontalLineTo(18.06f) + curveTo(15.96f, 12.451f, 14.25f, 14.161f, 14.25f, 16.261f) + verticalLineTo(18.141f) + curveTo(14.25f, 20.241f, 15.96f, 21.951f, 18.06f, 21.951f) + horizontalLineTo(18.19f) + curveTo(20.29f, 21.951f, 22f, 20.241f, 22f, 18.141f) + verticalLineTo(16.261f) + curveTo(22f, 14.161f, 20.29f, 12.451f, 18.19f, 12.451f) + close() + } + } + }.build() + + return _IconsaxMusicPlay!! + } + +@Suppress("ObjectPropertyName") +private var _IconsaxMusicPlay: ImageVector? = null diff --git a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxRefreshArrow2.kt b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxRefreshArrow2.kt new file mode 100644 index 00000000..2be1ec7d --- /dev/null +++ b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxRefreshArrow2.kt @@ -0,0 +1,83 @@ +package dev.krtirtho.spotube.resources.iconsax + +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.unit.dp + +val Iconsax.IconsaxRefreshArrow2: ImageVector + get() { + if (_IconsaxRefreshArrow2 != null) { + return _IconsaxRefreshArrow2!! + } + _IconsaxRefreshArrow2 = ImageVector.Builder( + name = "IconsaxRefreshArrow2", + defaultWidth = 24.dp, + defaultHeight = 24.dp, + viewportWidth = 24f, + viewportHeight = 24f + ).apply { + path( + fill = SolidColor(Color.White), + fillAlpha = 0.4f, + strokeAlpha = 0.4f + ) { + moveTo(22f, 7.81f) + verticalLineTo(16.18f) + curveTo(22f, 19.82f, 19.83f, 21.99f, 16.19f, 21.99f) + horizontalLineTo(7.81f) + curveTo(4.17f, 22f, 2f, 19.83f, 2f, 16.19f) + verticalLineTo(7.81f) + curveTo(2f, 4.17f, 4.17f, 2f, 7.81f, 2f) + horizontalLineTo(16.18f) + curveTo(19.83f, 2f, 22f, 4.17f, 22f, 7.81f) + close() + } + path(fill = SolidColor(Color.White)) { + moveTo(12f, 18.25f) + curveTo(10.21f, 18.25f, 8.81f, 17.36f, 7.86f, 16.48f) + verticalLineTo(17.19f) + curveTo(7.86f, 17.6f, 7.52f, 17.94f, 7.11f, 17.94f) + curveTo(6.7f, 17.94f, 6.36f, 17.6f, 6.36f, 17.19f) + verticalLineTo(14.44f) + curveTo(6.36f, 14.03f, 6.7f, 13.69f, 7.11f, 13.69f) + horizontalLineTo(9.59f) + curveTo(10f, 13.69f, 10.34f, 14.03f, 10.34f, 14.44f) + curveTo(10.34f, 14.85f, 10f, 15.19f, 9.59f, 15.19f) + horizontalLineTo(8.69f) + curveTo(9.43f, 15.93f, 10.58f, 16.75f, 12f, 16.75f) + curveTo(14.62f, 16.75f, 16.75f, 14.62f, 16.75f, 12f) + curveTo(16.75f, 11.59f, 17.09f, 11.25f, 17.5f, 11.25f) + curveTo(17.91f, 11.25f, 18.25f, 11.59f, 18.25f, 12f) + curveTo(18.25f, 15.45f, 15.45f, 18.25f, 12f, 18.25f) + close() + moveTo(6.5f, 12.75f) + curveTo(6.09f, 12.75f, 5.75f, 12.41f, 5.75f, 12f) + curveTo(5.75f, 8.55f, 8.55f, 5.75f, 12f, 5.75f) + curveTo(14.15f, 5.75f, 15.73f, 6.68f, 16.75f, 7.57f) + verticalLineTo(6.81f) + curveTo(16.75f, 6.4f, 17.09f, 6.06f, 17.5f, 6.06f) + curveTo(17.91f, 6.06f, 18.25f, 6.4f, 18.25f, 6.81f) + verticalLineTo(9.55f) + curveTo(18.25f, 9.58f, 18.25f, 9.61f, 18.25f, 9.63f) + curveTo(18.24f, 9.74f, 18.21f, 9.84f, 18.16f, 9.93f) + curveTo(18.11f, 10.02f, 18.04f, 10.1f, 17.95f, 10.17f) + curveTo(17.88f, 10.22f, 17.8f, 10.26f, 17.71f, 10.29f) + curveTo(17.64f, 10.31f, 17.57f, 10.32f, 17.5f, 10.32f) + horizontalLineTo(15.07f) + curveTo(14.66f, 10.32f, 14.32f, 9.98f, 14.32f, 9.57f) + curveTo(14.32f, 9.16f, 14.66f, 8.82f, 15.07f, 8.82f) + horizontalLineTo(15.9f) + curveTo(15.1f, 8.08f, 13.81f, 7.26f, 12.02f, 7.26f) + curveTo(9.4f, 7.26f, 7.27f, 9.39f, 7.27f, 12.01f) + curveTo(7.25f, 12.41f, 6.91f, 12.75f, 6.5f, 12.75f) + close() + } + }.build() + + return _IconsaxRefreshArrow2!! + } + +@Suppress("ObjectPropertyName") +private var _IconsaxRefreshArrow2: ImageVector? = null diff --git a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxStopCircle.kt b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxStopCircle.kt new file mode 100644 index 00000000..d095cbbc --- /dev/null +++ b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxStopCircle.kt @@ -0,0 +1,63 @@ +package dev.krtirtho.spotube.resources.iconsax + +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.PathData +import androidx.compose.ui.graphics.vector.group +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.unit.dp + +val Iconsax.IconsaxStopCircle: ImageVector + get() { + if (_IconsaxStopCircle != null) { + return _IconsaxStopCircle!! + } + _IconsaxStopCircle = ImageVector.Builder( + name = "IconsaxStopCircle", + defaultWidth = 24.dp, + defaultHeight = 24.dp, + viewportWidth = 24f, + viewportHeight = 24f + ).apply { + group( + clipPathData = PathData { + moveTo(0f, 0f) + horizontalLineToRelative(24f) + verticalLineToRelative(24f) + horizontalLineToRelative(-24f) + close() + } + ) { + path( + fill = SolidColor(Color.White), + fillAlpha = 0.4f, + strokeAlpha = 0.4f + ) { + moveTo(11.97f, 22f) + curveTo(17.493f, 22f, 21.97f, 17.523f, 21.97f, 12f) + curveTo(21.97f, 6.477f, 17.493f, 2f, 11.97f, 2f) + curveTo(6.447f, 2f, 1.97f, 6.477f, 1.97f, 12f) + curveTo(1.97f, 17.523f, 6.447f, 22f, 11.97f, 22f) + close() + } + path(fill = SolidColor(Color.White)) { + moveTo(10.77f, 16.229f) + horizontalLineTo(13.23f) + curveTo(14.89f, 16.229f, 16.23f, 14.889f, 16.23f, 13.229f) + verticalLineTo(10.769f) + curveTo(16.23f, 9.11f, 14.89f, 7.77f, 13.23f, 7.77f) + horizontalLineTo(10.77f) + curveTo(9.11f, 7.77f, 7.77f, 9.11f, 7.77f, 10.769f) + verticalLineTo(13.229f) + curveTo(7.77f, 14.889f, 9.11f, 16.229f, 10.77f, 16.229f) + close() + } + } + }.build() + + return _IconsaxStopCircle!! + } + +@Suppress("ObjectPropertyName") +private var _IconsaxStopCircle: ImageVector? = null diff --git a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxTextalignLeft.kt b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxTextalignLeft.kt new file mode 100644 index 00000000..cb9d5daa --- /dev/null +++ b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxTextalignLeft.kt @@ -0,0 +1,87 @@ +package dev.krtirtho.spotube.resources.iconsax + +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.PathData +import androidx.compose.ui.graphics.vector.group +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.unit.dp + +val Iconsax.IconsaxTextalignLeft: ImageVector + get() { + if (_IconsaxTextalignLeft != null) { + return _IconsaxTextalignLeft!! + } + _IconsaxTextalignLeft = ImageVector.Builder( + name = "IconsaxTextalignLeft", + defaultWidth = 24.dp, + defaultHeight = 24.dp, + viewportWidth = 24f, + viewportHeight = 24f + ).apply { + group( + clipPathData = PathData { + moveTo(0f, 0f) + horizontalLineToRelative(24f) + verticalLineToRelative(24f) + horizontalLineToRelative(-24f) + close() + } + ) { + path(fill = SolidColor(Color.White)) { + moveTo(21f, 5.25f) + horizontalLineTo(3f) + curveTo(2.59f, 5.25f, 2.25f, 4.91f, 2.25f, 4.5f) + curveTo(2.25f, 4.09f, 2.59f, 3.75f, 3f, 3.75f) + horizontalLineTo(21f) + curveTo(21.41f, 3.75f, 21.75f, 4.09f, 21.75f, 4.5f) + curveTo(21.75f, 4.91f, 21.41f, 5.25f, 21f, 5.25f) + close() + } + path( + fill = SolidColor(Color.White), + fillAlpha = 0.4f, + strokeAlpha = 0.4f + ) { + moveTo(12.47f, 10.25f) + horizontalLineTo(3f) + curveTo(2.59f, 10.25f, 2.25f, 9.91f, 2.25f, 9.5f) + curveTo(2.25f, 9.09f, 2.59f, 8.75f, 3f, 8.75f) + horizontalLineTo(12.47f) + curveTo(12.88f, 8.75f, 13.22f, 9.09f, 13.22f, 9.5f) + curveTo(13.22f, 9.91f, 12.89f, 10.25f, 12.47f, 10.25f) + close() + } + path(fill = SolidColor(Color.White)) { + moveTo(21f, 15.25f) + horizontalLineTo(3f) + curveTo(2.59f, 15.25f, 2.25f, 14.91f, 2.25f, 14.5f) + curveTo(2.25f, 14.09f, 2.59f, 13.75f, 3f, 13.75f) + horizontalLineTo(21f) + curveTo(21.41f, 13.75f, 21.75f, 14.09f, 21.75f, 14.5f) + curveTo(21.75f, 14.91f, 21.41f, 15.25f, 21f, 15.25f) + close() + } + path( + fill = SolidColor(Color.White), + fillAlpha = 0.4f, + strokeAlpha = 0.4f + ) { + moveTo(12.47f, 20.25f) + horizontalLineTo(3f) + curveTo(2.59f, 20.25f, 2.25f, 19.91f, 2.25f, 19.5f) + curveTo(2.25f, 19.09f, 2.59f, 18.75f, 3f, 18.75f) + horizontalLineTo(12.47f) + curveTo(12.88f, 18.75f, 13.22f, 19.09f, 13.22f, 19.5f) + curveTo(13.22f, 19.91f, 12.89f, 20.25f, 12.47f, 20.25f) + close() + } + } + }.build() + + return _IconsaxTextalignLeft!! + } + +@Suppress("ObjectPropertyName") +private var _IconsaxTextalignLeft: ImageVector? = null diff --git a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxVerticalSetting.kt b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxVerticalSetting.kt new file mode 100644 index 00000000..60258c82 --- /dev/null +++ b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/IconsaxVerticalSetting.kt @@ -0,0 +1,130 @@ +package dev.krtirtho.spotube.resources.iconsax + +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.PathData +import androidx.compose.ui.graphics.vector.group +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.unit.dp + +val Iconsax.IconsaxVerticalSetting: ImageVector + get() { + if (_IconsaxVerticalSetting != null) { + return _IconsaxVerticalSetting!! + } + _IconsaxVerticalSetting = ImageVector.Builder( + name = "IconsaxVerticalSetting", + defaultWidth = 24.dp, + defaultHeight = 24.dp, + viewportWidth = 24f, + viewportHeight = 24f + ).apply { + group( + clipPathData = PathData { + moveTo(0f, 0f) + horizontalLineToRelative(24f) + verticalLineToRelative(24f) + horizontalLineToRelative(-24f) + close() + } + ) { + path( + fill = SolidColor(Color.White), + fillAlpha = 0.4f, + strokeAlpha = 0.4f + ) { + moveTo(18.51f, 1.801f) + curveTo(18.01f, 1.801f, 17.61f, 2.201f, 17.61f, 2.701f) + verticalLineTo(7.351f) + curveTo(17.61f, 7.851f, 18.01f, 8.251f, 18.51f, 8.251f) + curveTo(19.01f, 8.251f, 19.41f, 7.851f, 19.41f, 7.351f) + verticalLineTo(2.701f) + curveTo(19.41f, 2.201f, 19.01f, 1.801f, 18.51f, 1.801f) + close() + } + path(fill = SolidColor(Color.White)) { + moveTo(12f, 15.75f) + curveTo(11.5f, 15.75f, 11.1f, 16.15f, 11.1f, 16.65f) + verticalLineTo(21.3f) + curveTo(11.1f, 21.8f, 11.5f, 22.2f, 12f, 22.2f) + curveTo(12.5f, 22.2f, 12.9f, 21.8f, 12.9f, 21.3f) + verticalLineTo(16.65f) + curveTo(12.9f, 16.16f, 12.5f, 15.75f, 12f, 15.75f) + close() + } + path( + fill = SolidColor(Color.White), + fillAlpha = 0.4f, + strokeAlpha = 0.4f + ) { + moveTo(5.49f, 1.801f) + curveTo(4.99f, 1.801f, 4.59f, 2.201f, 4.59f, 2.701f) + verticalLineTo(7.351f) + curveTo(4.59f, 7.851f, 4.99f, 8.251f, 5.49f, 8.251f) + curveTo(5.99f, 8.251f, 6.39f, 7.851f, 6.39f, 7.351f) + verticalLineTo(2.701f) + curveTo(6.39f, 2.201f, 5.98f, 1.801f, 5.49f, 1.801f) + close() + } + path( + fill = SolidColor(Color.White), + fillAlpha = 0.4f, + strokeAlpha = 0.4f + ) { + moveTo(7.35f, 10.17f) + horizontalLineTo(3.63f) + curveTo(3.13f, 10.17f, 2.73f, 10.57f, 2.73f, 11.07f) + curveTo(2.73f, 11.57f, 3.13f, 11.97f, 3.63f, 11.97f) + horizontalLineTo(4.59f) + verticalLineTo(21.3f) + curveTo(4.59f, 21.8f, 4.99f, 22.2f, 5.49f, 22.2f) + curveTo(5.99f, 22.2f, 6.39f, 21.8f, 6.39f, 21.3f) + verticalLineTo(11.97f) + horizontalLineTo(7.35f) + curveTo(7.85f, 11.97f, 8.25f, 11.57f, 8.25f, 11.07f) + curveTo(8.25f, 10.57f, 7.84f, 10.17f, 7.35f, 10.17f) + close() + } + path( + fill = SolidColor(Color.White), + fillAlpha = 0.4f, + strokeAlpha = 0.4f + ) { + moveTo(20.37f, 10.17f) + horizontalLineTo(16.65f) + curveTo(16.15f, 10.17f, 15.75f, 10.57f, 15.75f, 11.07f) + curveTo(15.75f, 11.57f, 16.15f, 11.97f, 16.65f, 11.97f) + horizontalLineTo(17.61f) + verticalLineTo(21.3f) + curveTo(17.61f, 21.8f, 18.01f, 22.2f, 18.51f, 22.2f) + curveTo(19.01f, 22.2f, 19.41f, 21.8f, 19.41f, 21.3f) + verticalLineTo(11.97f) + horizontalLineTo(20.37f) + curveTo(20.87f, 11.97f, 21.27f, 11.57f, 21.27f, 11.07f) + curveTo(21.27f, 10.57f, 20.87f, 10.17f, 20.37f, 10.17f) + close() + } + path(fill = SolidColor(Color.White)) { + moveTo(13.86f, 12.031f) + horizontalLineTo(12.9f) + verticalLineTo(2.701f) + curveTo(12.9f, 2.201f, 12.5f, 1.801f, 12f, 1.801f) + curveTo(11.5f, 1.801f, 11.1f, 2.201f, 11.1f, 2.701f) + verticalLineTo(12.031f) + horizontalLineTo(10.14f) + curveTo(9.64f, 12.031f, 9.24f, 12.431f, 9.24f, 12.931f) + curveTo(9.24f, 13.431f, 9.64f, 13.831f, 10.14f, 13.831f) + horizontalLineTo(13.86f) + curveTo(14.36f, 13.831f, 14.76f, 13.431f, 14.76f, 12.931f) + curveTo(14.76f, 12.431f, 14.36f, 12.031f, 13.86f, 12.031f) + close() + } + } + }.build() + + return _IconsaxVerticalSetting!! + } + +@Suppress("ObjectPropertyName") +private var _IconsaxVerticalSetting: ImageVector? = null diff --git a/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/LineDiscord.kt b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/LineDiscord.kt new file mode 100644 index 00000000..37d96b17 --- /dev/null +++ b/composeApp/src/commonMain/kotlin/dev/krtirtho/spotube/resources/iconsax/LineDiscord.kt @@ -0,0 +1,59 @@ +package dev.krtirtho.spotube.resources.iconsax + +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.unit.dp + +val Iconsax.LineDiscord: ImageVector + get() { + if (_LineDiscord != null) { + return _LineDiscord!! + } + _LineDiscord = ImageVector.Builder( + name = "LineDiscord", + defaultWidth = 24.dp, + defaultHeight = 24.dp, + viewportWidth = 24f, + viewportHeight = 24f + ).apply { + path(fill = SolidColor(Color.Black)) { + moveTo(18.942f, 5.555f) + curveTo(17.647f, 4.95f, 16.263f, 4.509f, 14.816f, 4.259f) + curveTo(14.638f, 4.58f, 14.43f, 5.012f, 14.287f, 5.356f) + curveTo(12.749f, 5.125f, 11.224f, 5.125f, 9.714f, 5.356f) + curveTo(9.571f, 5.012f, 9.359f, 4.58f, 9.179f, 4.259f) + curveTo(7.731f, 4.509f, 6.345f, 4.951f, 5.05f, 5.559f) + curveTo(2.439f, 9.505f, 1.731f, 13.353f, 2.085f, 17.146f) + curveTo(3.817f, 18.439f, 5.495f, 19.225f, 7.145f, 19.739f) + curveTo(7.553f, 19.178f, 7.916f, 18.582f, 8.229f, 17.954f) + curveTo(7.633f, 17.728f, 7.062f, 17.448f, 6.523f, 17.124f) + curveTo(6.666f, 17.017f, 6.806f, 16.907f, 6.941f, 16.792f) + curveTo(10.232f, 18.332f, 13.807f, 18.332f, 17.059f, 16.792f) + curveTo(17.196f, 16.907f, 17.336f, 17.017f, 17.477f, 17.124f) + curveTo(16.936f, 17.45f, 16.364f, 17.729f, 15.767f, 17.956f) + curveTo(16.08f, 18.582f, 16.442f, 19.18f, 16.851f, 19.741f) + curveTo(18.503f, 19.227f, 20.183f, 18.441f, 21.915f, 17.146f) + curveTo(22.33f, 12.748f, 21.206f, 8.936f, 18.942f, 5.555f) + close() + moveTo(8.678f, 14.813f) + curveTo(7.69f, 14.813f, 6.88f, 13.891f, 6.88f, 12.768f) + curveTo(6.88f, 11.645f, 7.672f, 10.721f, 8.678f, 10.721f) + curveTo(9.683f, 10.721f, 10.493f, 11.643f, 10.476f, 12.768f) + curveTo(10.477f, 13.891f, 9.683f, 14.813f, 8.678f, 14.813f) + close() + moveTo(15.322f, 14.813f) + curveTo(14.334f, 14.813f, 13.524f, 13.891f, 13.524f, 12.768f) + curveTo(13.524f, 11.645f, 14.317f, 10.721f, 15.322f, 10.721f) + curveTo(16.327f, 10.721f, 17.138f, 11.643f, 17.12f, 12.768f) + curveTo(17.12f, 13.891f, 16.327f, 14.813f, 15.322f, 14.813f) + close() + } + }.build() + + return _LineDiscord!! + } + +@Suppress("ObjectPropertyName") +private var _LineDiscord: ImageVector? = null