Compare commits

...

2 Commits

Author SHA1 Message Date
f1rq
f78b2c43c3 Updates 2025-04-29 16:11:29 +02:00
f1rq
e534e95020 Updates 2025-04-29 16:10:25 +02:00
33 changed files with 2210 additions and 1898 deletions

View File

@ -1,26 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AppInsightsSettings">
<option name="tabSettings">
<map>
<entry key="Firebase Crashlytics">
<value>
<InsightsFilterSettings>
<option name="connection">
<ConnectionSetting>
<option name="appId" value="PLACEHOLDER" />
<option name="mobileSdkAppId" value="" />
<option name="projectId" value="" />
<option name="projectNumber" value="" />
</ConnectionSetting>
</option>
<option name="signal" value="SIGNAL_UNSPECIFIED" />
<option name="timeIntervalDays" value="THIRTY_DAYS" />
<option name="visibilityType" value="ALL" />
</InsightsFilterSettings>
</value>
</entry>
</map>
</option>
</component>
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AppInsightsSettings">
<option name="tabSettings">
<map>
<entry key="Firebase Crashlytics">
<value>
<InsightsFilterSettings>
<option name="connection">
<ConnectionSetting>
<option name="appId" value="PLACEHOLDER" />
<option name="mobileSdkAppId" value="" />
<option name="projectId" value="" />
<option name="projectNumber" value="" />
</ConnectionSetting>
</option>
<option name="signal" value="SIGNAL_UNSPECIFIED" />
<option name="timeIntervalDays" value="THIRTY_DAYS" />
<option name="visibilityType" value="ALL" />
</InsightsFilterSettings>
</value>
</entry>
</map>
</option>
</component>
</project>

12
.idea/discord.xml generated
View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DiscordProjectSettings">
<option name="show" value="PROJECT_FILES" />
<option name="description" value="" />
</component>
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DiscordProjectSettings">
<option name="show" value="PROJECT_FILES" />
<option name="description" value="" />
</component>
</project>

View File

@ -1,59 +1,59 @@
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlin.compose)
}
android {
namespace = "com.f1rq.lifemap"
compileSdk = 35
defaultConfig {
applicationId = "com.f1rq.lifemap"
minSdk = 26
targetSdk = 35
versionCode = 1
versionName = "1.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
kotlinOptions {
jvmTarget = "11"
}
buildFeatures {
compose = true
}
}
dependencies {
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.lifecycle.runtime.ktx)
implementation(libs.androidx.activity.compose)
implementation(platform(libs.androidx.compose.bom))
implementation(libs.androidx.ui)
implementation(libs.androidx.ui.graphics)
implementation(libs.androidx.ui.tooling.preview)
implementation(libs.androidx.material3)
implementation(libs.androidx.navigation.compose)
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
androidTestImplementation(platform(libs.androidx.compose.bom))
androidTestImplementation(libs.androidx.ui.test.junit4)
debugImplementation(libs.androidx.ui.tooling)
debugImplementation(libs.androidx.ui.test.manifest)
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlin.compose)
}
android {
namespace = "com.f1rq.lifemap"
compileSdk = 35
defaultConfig {
applicationId = "com.f1rq.lifemap"
minSdk = 26
targetSdk = 35
versionCode = 1
versionName = "1.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
kotlinOptions {
jvmTarget = "11"
}
buildFeatures {
compose = true
}
}
dependencies {
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.lifecycle.runtime.ktx)
implementation(libs.androidx.activity.compose)
implementation(platform(libs.androidx.compose.bom))
implementation(libs.androidx.ui)
implementation(libs.androidx.ui.graphics)
implementation(libs.androidx.ui.tooling.preview)
implementation(libs.androidx.material3)
implementation(libs.androidx.navigation.compose)
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
androidTestImplementation(platform(libs.androidx.compose.bom))
androidTestImplementation(libs.androidx.ui.test.junit4)
debugImplementation(libs.androidx.ui.tooling)
debugImplementation(libs.androidx.ui.test.manifest)
}

View File

@ -1,3 +1,87 @@
<<<<<<< HEAD
package com.f1rq.lifemap
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Scaffold
import androidx.compose.ui.Modifier
import androidx.core.view.WindowCompat
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.currentBackStackEntryAsState
import androidx.navigation.compose.rememberNavController
import androidx.compose.runtime.SideEffect
import androidx.compose.ui.platform.LocalView
import com.f1rq.lifemap.screens.ListView
import com.f1rq.lifemap.screens.MapView
import com.f1rq.lifemap.screens.SettingsScreen
import com.f1rq.lifemap.screens.NotificationsScreen
import com.f1rq.lifemap.ui.theme.LifeMapTheme
import com.f1rq.lifemap.ui.theme.ActiveNavColor
import com.f1rq.lifemap.ui.theme.InactiveNavColor
import com.f1rq.lifemap.components.TopBar
import com.f1rq.lifemap.components.NavBar
import com.f1rq.lifemap.screens.settingsScreens.SettingsNotificationsScreen
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
WindowCompat.setDecorFitsSystemWindows(window, false)
setContent {
LifeMapTheme {
val navController = rememberNavController()
val view = LocalView.current
val darkTheme = !isSystemInDarkTheme()
SideEffect {
WindowCompat.setDecorFitsSystemWindows(window, false)
val insetsController = WindowCompat.getInsetsController(window, view)
insetsController.isAppearanceLightStatusBars = true
insetsController.isAppearanceLightNavigationBars = true
}
Scaffold(
topBar = {
TopBar(
onSettingsButtonClick = { navController.navigate("settings")},
onNotificationsButtonClick = { navController.navigate("notifications")}
)
},
bottomBar = {
val navBackStackEntry = navController.currentBackStackEntryAsState()
val currentRoute = navBackStackEntry.value?.destination?.route
NavBar(
onMapViewClicked = { navController.navigate("mapview") },
onListViewClicked = { navController.navigate("listview") },
mapViewBackgroundColor = if (currentRoute == "mapview") ActiveNavColor else InactiveNavColor,
listViewBackgroundColor = if (currentRoute == "listview") ActiveNavColor else InactiveNavColor
)
}
) { innerPadding ->
NavHost(
navController = navController,
startDestination = "mapview",
modifier = Modifier.padding(innerPadding)
) {
composable("mapview") { MapView(Modifier) }
composable("listview") { ListView(Modifier) }
composable("settings") { SettingsScreen(navController = navController, Modifier)}
composable("notifications") { NotificationsScreen(Modifier)}
composable("settings_notifications") { SettingsNotificationsScreen(Modifier) }
}
}
}
}
}
}
=======
package com.f1rq.lifemap
import android.os.Bundle
@ -80,3 +164,4 @@ class MainActivity : ComponentActivity() {
}
}
}
>>>>>>> 774f07c0804f103a0523e1f7da3f969046a53aec

View File

@ -1,100 +1,100 @@
package com.f1rq.lifemap.components
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.*
import androidx.compose.material3.CardDefaults
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.Text
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Edit
import androidx.compose.ui.draw.shadow
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.tooling.preview.Preview
import com.f1rq.lifemap.ui.theme.MainBG
import com.f1rq.lifemap.ui.theme.MainTextColor
import com.f1rq.lifemap.ui.theme.PrimaryColor
import com.f1rq.lifemap.R.drawable.add_event_button
import com.f1rq.lifemap.R.drawable.navbar_mapview_button
@Composable
fun AddEventCard(
modifier: Modifier = Modifier,
onCreateEventClick: () -> Unit = {}
) {
Card(
modifier = modifier
.fillMaxWidth()
.padding(8.dp),
shape = RoundedCornerShape(16.dp),
elevation = CardDefaults.cardElevation(defaultElevation = 4.dp),
colors = CardDefaults.cardColors(
containerColor = MainBG,
)
) {
Row(
modifier = Modifier
.padding(
horizontal = 16.dp,
vertical = 12.dp,
),
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.SpaceBetween
) {
Column(
modifier = Modifier
.weight(1f)
) {
Text(
text = "Add event",
style = MaterialTheme.typography.titleMedium,
color = MainTextColor
)
Text(
text = "With localization, date etc.",
style = MaterialTheme.typography.bodySmall,
color = MainTextColor
)
}
Box(
modifier = Modifier
.shadow(
elevation = 3.dp,
shape = RoundedCornerShape(12.dp),
clip = false
)
.background(
color = MainBG,
shape = RoundedCornerShape(12.dp)
)
.size(56.dp)
) {
IconButton(
onClick = onCreateEventClick,
modifier = Modifier.fillMaxSize()
) {
Icon(
painter = painterResource(id = add_event_button),
contentDescription = "Edit",
tint = PrimaryColor
)
}
}
}
}
}
@Preview(showBackground = true)
@Composable
fun AddEventCardPreview() {
AddEventCard()
}
package com.f1rq.lifemap.components
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.*
import androidx.compose.material3.CardDefaults
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.Text
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Edit
import androidx.compose.ui.draw.shadow
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.tooling.preview.Preview
import com.f1rq.lifemap.ui.theme.MainBG
import com.f1rq.lifemap.ui.theme.MainTextColor
import com.f1rq.lifemap.ui.theme.PrimaryColor
import com.f1rq.lifemap.R.drawable.add_event_button
import com.f1rq.lifemap.R.drawable.navbar_mapview_button
@Composable
fun AddEventCard(
modifier: Modifier = Modifier,
onCreateEventClick: () -> Unit = {}
) {
Card(
modifier = modifier
.fillMaxWidth()
.padding(8.dp),
shape = RoundedCornerShape(16.dp),
elevation = CardDefaults.cardElevation(defaultElevation = 4.dp),
colors = CardDefaults.cardColors(
containerColor = MainBG,
)
) {
Row(
modifier = Modifier
.padding(
horizontal = 16.dp,
vertical = 12.dp,
),
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.SpaceBetween
) {
Column(
modifier = Modifier
.weight(1f)
) {
Text(
text = "Add event",
style = MaterialTheme.typography.titleMedium,
color = MainTextColor
)
Text(
text = "With localization, date etc.",
style = MaterialTheme.typography.bodySmall,
color = MainTextColor
)
}
Box(
modifier = Modifier
.shadow(
elevation = 3.dp,
shape = RoundedCornerShape(12.dp),
clip = false
)
.background(
color = MainBG,
shape = RoundedCornerShape(12.dp)
)
.size(56.dp)
) {
IconButton(
onClick = onCreateEventClick,
modifier = Modifier.fillMaxSize()
) {
Icon(
painter = painterResource(id = add_event_button),
contentDescription = "Edit",
tint = PrimaryColor
)
}
}
}
}
}
@Preview(showBackground = true)
@Composable
fun AddEventCardPreview() {
AddEventCard()
}

View File

@ -1,3 +1,117 @@
<<<<<<< HEAD
package com.f1rq.lifemap.components
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Card
import androidx.compose.material3.CardDefaults
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.unit.dp
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.drawBehind
import androidx.compose.ui.geometry.Offset
import androidx.compose.ui.geometry.Size
import androidx.compose.ui.graphics.Brush
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.Dp
import com.f1rq.lifemap.ui.theme.MainBG
import com.f1rq.lifemap.ui.theme.InactiveNavColor
import com.f1rq.lifemap.ui.theme.ActiveNavColor
import com.f1rq.lifemap.ui.theme.PrimaryColor
import com.f1rq.lifemap.R.drawable.navbar_listview_button
import com.f1rq.lifemap.R.drawable.navbar_mapview_button
import com.google.relay.compose.BoxScopeInstanceImpl.align
@Composable
fun NavBar(
modifier: Modifier = Modifier,
onMapViewClicked: () -> Unit = {},
onListViewClicked: () -> Unit = {},
mapViewBackgroundColor: Color = ActiveNavColor,
listViewBackgroundColor: Color = InactiveNavColor,
) {
Box(
modifier = modifier
.fillMaxWidth()
) {
Card(
modifier = Modifier.fillMaxWidth(),
colors = CardDefaults.cardColors(containerColor = MainBG),
elevation = CardDefaults.cardElevation(defaultElevation = 6.dp),
) {
Row(
modifier = Modifier
.padding(
top = 12.dp,
bottom = WindowInsets.navigationBars.asPaddingValues().calculateBottomPadding() + 6.dp,
),
verticalAlignment = Alignment.CenterVertically
) {
Box(
modifier = Modifier
.weight(1f),
contentAlignment = Alignment.Center
) {
IconButton(
onClick = onMapViewClicked,
modifier = Modifier
.size(48.dp)
.background(
color = mapViewBackgroundColor,
shape = RoundedCornerShape(16.dp)
)
) {
Icon(
painter = painterResource(id = navbar_mapview_button),
contentDescription = "Map View",
modifier = Modifier.requiredSize(24.dp),
tint = PrimaryColor
)
}
}
Box(
modifier = Modifier
.weight(1f),
contentAlignment = Alignment.Center
) {
IconButton(
onClick = onListViewClicked,
modifier = Modifier
.size(48.dp)
.background(
color = listViewBackgroundColor,
shape = RoundedCornerShape(16.dp)
)
) {
Icon(
painter = painterResource(id = navbar_listview_button),
contentDescription = "List View",
modifier = Modifier.requiredSize(24.dp),
tint = PrimaryColor
)
}
}
}
}
}
}
@Preview
@Composable
fun NavBarPreview() {
NavBar()
=======
package com.f1rq.lifemap.components
import androidx.compose.foundation.layout.*
@ -104,4 +218,5 @@ fun NavBar(
@Composable
fun NavBarPreview() {
NavBar()
>>>>>>> 774f07c0804f103a0523e1f7da3f969046a53aec
}

View File

@ -1,63 +1,63 @@
package com.f1rq.lifemap.components
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Edit
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.material3.*
import androidx.compose.material3.Icon
import androidx.compose.ui.Alignment
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.unit.dp
import com.f1rq.lifemap.ui.theme.MainBG
import com.f1rq.lifemap.ui.theme.MainTextColor
import com.f1rq.lifemap.ui.theme.PrimaryColor
@Composable
fun SettingsLabel(
modifier: Modifier = Modifier,
text: String,
iconResource: ImageVector = Icons.Default.Edit,
desc: String? = null,
onClick: () -> Unit = {},
) {
Card(
modifier = modifier
.fillMaxWidth()
.padding(8.dp),
shape = RoundedCornerShape(16.dp),
colors = CardDefaults.cardColors(
containerColor = MainBG,
),
onClick = onClick,
) {
Row(
modifier = Modifier
.padding(
horizontal = 16.dp,
vertical = 12.dp,
),
verticalAlignment = Alignment.CenterVertically
) {
Icon(
imageVector = iconResource,
contentDescription = desc,
tint = PrimaryColor
)
Spacer(modifier = Modifier.size(12.dp))
Text(
text = text,
style = MaterialTheme.typography.titleMedium,
color = MainTextColor
)
}
}
}
package com.f1rq.lifemap.components
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Edit
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.material3.*
import androidx.compose.material3.Icon
import androidx.compose.ui.Alignment
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.unit.dp
import com.f1rq.lifemap.ui.theme.MainBG
import com.f1rq.lifemap.ui.theme.MainTextColor
import com.f1rq.lifemap.ui.theme.PrimaryColor
@Composable
fun SettingsLabel(
modifier: Modifier = Modifier,
text: String,
iconResource: ImageVector = Icons.Default.Edit,
desc: String? = null,
onClick: () -> Unit = {},
) {
Card(
modifier = modifier
.fillMaxWidth()
.padding(8.dp),
shape = RoundedCornerShape(16.dp),
colors = CardDefaults.cardColors(
containerColor = MainBG,
),
onClick = onClick,
) {
Row(
modifier = Modifier
.padding(
horizontal = 16.dp,
vertical = 12.dp,
),
verticalAlignment = Alignment.CenterVertically
) {
Icon(
imageVector = iconResource,
contentDescription = desc,
tint = PrimaryColor
)
Spacer(modifier = Modifier.size(12.dp))
Text(
text = text,
style = MaterialTheme.typography.titleMedium,
color = MainTextColor
)
}
}
}

View File

@ -1,112 +1,112 @@
package com.f1rq.lifemap.components
import android.graphics.drawable.shapes.Shape
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.*
import androidx.compose.material3.CardDefaults
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.Text
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.RectangleShape
import androidx.compose.ui.unit.dp
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.Dp
import com.f1rq.lifemap.ui.theme.MainBG
import com.f1rq.lifemap.ui.theme.MainTextColor
import com.f1rq.lifemap.ui.theme.PrimaryColor
import com.f1rq.lifemap.R.drawable.notifications_button
import com.f1rq.lifemap.R.drawable.settings_button
@Composable
fun TopBar(
modifier: Modifier = Modifier,
onNotificationsButtonClick: () -> Unit = {},
onSettingsButtonClick: () -> Unit = {}
) {
Card(
modifier = Modifier
.fillMaxWidth(),
shape = RoundedCornerShape(
topStart = 0.dp,
topEnd = 0.dp,
bottomStart = 16.dp,
bottomEnd = 16.dp
),
elevation = CardDefaults.cardElevation(defaultElevation = 6.dp),
colors = CardDefaults.cardColors(
containerColor = MainBG,
)
) {
Row(
modifier = Modifier
.padding(
start = 20.0.dp,
top = WindowInsets.statusBars.asPaddingValues().calculateTopPadding(),
end = 20.0.dp,
bottom = 15.0.dp
),
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.SpaceBetween
) {
Column(
modifier = Modifier
.weight(1f)
) {
Text(
text = "LifeMap",
style = MaterialTheme.typography.titleMedium,
fontSize = MaterialTheme.typography.titleLarge.fontSize,
fontFamily = MaterialTheme.typography.titleLarge.fontFamily,
fontWeight = FontWeight(700.0.toInt()),
color = MainTextColor,
)
Text(
text = "Personal life events",
style = MaterialTheme.typography.bodySmall,
fontSize = MaterialTheme.typography.labelMedium.fontSize,
color = MainTextColor
)
}
Box(
modifier = Modifier
) {
Row(
horizontalArrangement = Arrangement.spacedBy((-6).dp),
verticalAlignment = Alignment.CenterVertically
) {
IconButton(
onClick = onNotificationsButtonClick,
) {
Icon(
painter = painterResource(id = notifications_button),
contentDescription = "Notifications button",
tint = PrimaryColor
)
}
IconButton(
onClick = onSettingsButtonClick,
) {
Icon(
painter = painterResource(id = settings_button),
contentDescription = "Settings button",
tint = PrimaryColor
)
}
}
}
}
}
}
@Preview(showBackground = true)
@Composable
fun TopBarPreview() {
TopBar()
}
package com.f1rq.lifemap.components
import android.graphics.drawable.shapes.Shape
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.*
import androidx.compose.material3.CardDefaults
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.Text
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.RectangleShape
import androidx.compose.ui.unit.dp
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.Dp
import com.f1rq.lifemap.ui.theme.MainBG
import com.f1rq.lifemap.ui.theme.MainTextColor
import com.f1rq.lifemap.ui.theme.PrimaryColor
import com.f1rq.lifemap.R.drawable.notifications_button
import com.f1rq.lifemap.R.drawable.settings_button
@Composable
fun TopBar(
modifier: Modifier = Modifier,
onNotificationsButtonClick: () -> Unit = {},
onSettingsButtonClick: () -> Unit = {}
) {
Card(
modifier = Modifier
.fillMaxWidth(),
shape = RoundedCornerShape(
topStart = 0.dp,
topEnd = 0.dp,
bottomStart = 16.dp,
bottomEnd = 16.dp
),
elevation = CardDefaults.cardElevation(defaultElevation = 6.dp),
colors = CardDefaults.cardColors(
containerColor = MainBG,
)
) {
Row(
modifier = Modifier
.padding(
start = 20.0.dp,
top = WindowInsets.statusBars.asPaddingValues().calculateTopPadding(),
end = 20.0.dp,
bottom = 15.0.dp
),
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.SpaceBetween
) {
Column(
modifier = Modifier
.weight(1f)
) {
Text(
text = "LifeMap",
style = MaterialTheme.typography.titleMedium,
fontSize = MaterialTheme.typography.titleLarge.fontSize,
fontFamily = MaterialTheme.typography.titleLarge.fontFamily,
fontWeight = FontWeight(700.0.toInt()),
color = MainTextColor,
)
Text(
text = "Personal life events",
style = MaterialTheme.typography.bodySmall,
fontSize = MaterialTheme.typography.labelMedium.fontSize,
color = MainTextColor
)
}
Box(
modifier = Modifier
) {
Row(
horizontalArrangement = Arrangement.spacedBy((-6).dp),
verticalAlignment = Alignment.CenterVertically
) {
IconButton(
onClick = onNotificationsButtonClick,
) {
Icon(
painter = painterResource(id = notifications_button),
contentDescription = "Notifications button",
tint = PrimaryColor
)
}
IconButton(
onClick = onSettingsButtonClick,
) {
Icon(
painter = painterResource(id = settings_button),
contentDescription = "Settings button",
tint = PrimaryColor
)
}
}
}
}
}
}
@Preview(showBackground = true)
@Composable
fun TopBarPreview() {
TopBar()
}

View File

@ -1,20 +1,20 @@
package com.f1rq.lifemap.screens
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.systemBarsPadding
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
@Composable
fun ListView(modifier: Modifier = Modifier) {
Box(
modifier = Modifier
.fillMaxSize(),
contentAlignment = Alignment.Center
) {
Text("List view")
}
package com.f1rq.lifemap.screens
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.systemBarsPadding
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
@Composable
fun ListView(modifier: Modifier = Modifier) {
Box(
modifier = Modifier
.fillMaxSize(),
contentAlignment = Alignment.Center
) {
Text("List view")
}
}

View File

@ -1,35 +1,35 @@
package com.f1rq.lifemap.screens
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import com.f1rq.lifemap.components.AddEventCard
@Composable
fun MapView(modifier: Modifier = Modifier) {
Box(
modifier = Modifier
.fillMaxSize()
) {
Text(
text = "Map view",
modifier = Modifier.align(Alignment.Center)
)
AddEventCard(
onCreateEventClick = {},
modifier = Modifier.align(Alignment.BottomCenter)
)
}
}
@Preview
@Composable
fun MapViewPreview() {
MapView()
package com.f1rq.lifemap.screens
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import com.f1rq.lifemap.components.AddEventCard
@Composable
fun MapView(modifier: Modifier = Modifier) {
Box(
modifier = Modifier
.fillMaxSize()
) {
Text(
text = "Map view",
modifier = Modifier.align(Alignment.Center)
)
AddEventCard(
onCreateEventClick = {},
modifier = Modifier.align(Alignment.BottomCenter)
)
}
}
@Preview
@Composable
fun MapViewPreview() {
MapView()
}

View File

@ -1,39 +1,39 @@
package com.f1rq.lifemap.screens
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import com.f1rq.lifemap.ui.theme.MainTextColor
@Composable
fun NotificationsScreen(modifier: Modifier = Modifier) {
Box(
modifier = Modifier
.fillMaxSize()
) {
Column(
verticalArrangement = Arrangement.spacedBy(4.dp),
) {
Text(
text = "Settings",
style = MaterialTheme.typography.titleMedium,
fontSize = MaterialTheme.typography.titleLarge.fontSize,
fontFamily = MaterialTheme.typography.titleLarge.fontFamily,
color = MainTextColor,
modifier = Modifier
.padding(
top = 24.dp,
start = 24.dp
),
)
}
}
package com.f1rq.lifemap.screens
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import com.f1rq.lifemap.ui.theme.MainTextColor
@Composable
fun NotificationsScreen(modifier: Modifier = Modifier) {
Box(
modifier = Modifier
.fillMaxSize()
) {
Column(
verticalArrangement = Arrangement.spacedBy(4.dp),
) {
Text(
text = "Settings",
style = MaterialTheme.typography.titleMedium,
fontSize = MaterialTheme.typography.titleLarge.fontSize,
fontFamily = MaterialTheme.typography.titleLarge.fontFamily,
color = MainTextColor,
modifier = Modifier
.padding(
top = 24.dp,
start = 24.dp
),
)
}
}
}

View File

@ -1,3 +1,82 @@
<<<<<<< HEAD
package com.f1rq.lifemap.screens
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.automirrored.outlined.List
import androidx.compose.material.icons.filled.MailOutline
import androidx.compose.material.icons.filled.Notifications
import androidx.compose.material.icons.outlined.Email
import androidx.compose.material.icons.outlined.Notifications
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import androidx.navigation.NavController
import com.f1rq.lifemap.components.SettingsLabel
import com.f1rq.lifemap.ui.theme.MainTextColor
import com.f1rq.lifemap.R.drawable.contact_icon
import com.f1rq.lifemap.R.drawable.feedback_icon
@Composable
fun SettingsScreen(navController: NavController, modifier: Modifier = Modifier) {
Box(
modifier = Modifier
.fillMaxSize()
) {
Column (
verticalArrangement = Arrangement.spacedBy(4.dp),
) {
Text(
text = "Settings",
style = MaterialTheme.typography.titleMedium,
fontSize = MaterialTheme.typography.titleLarge.fontSize,
fontFamily = MaterialTheme.typography.titleLarge.fontFamily,
color = MainTextColor,
modifier = Modifier
.padding(
top = 24.dp,
start = 24.dp
),
)
SettingsLabel(
text = "Notifications",
iconResource = Icons.Outlined.Notifications,
desc = "Notifications",
modifier = Modifier
.padding(
horizontal = 16.dp
),
onClick = { navController.navigate("settings_notifications") }
)
SettingsLabel(
text = "Contact",
iconResource = Icons.Outlined.Email,
desc = "Contact us",
modifier = Modifier
.padding(
horizontal = 16.dp
)
)
SettingsLabel(
text = "Report a bug",
iconResource = Icons.Outlined.Email,
desc = "Report a bug",
modifier = Modifier
.padding(
horizontal = 16.dp
)
)
}
}
=======
package com.f1rq.lifemap.screens
import androidx.compose.foundation.layout.Arrangement
@ -43,4 +122,5 @@ fun SettingsScreen(navController: NavController, modifier: Modifier = Modifier)
desc = "Report a bug"
)
}
>>>>>>> 774f07c0804f103a0523e1f7da3f969046a53aec
}

View File

@ -1,3 +1,24 @@
<<<<<<< HEAD
package com.f1rq.lifemap.screens.settingsScreens
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
@Composable
fun SettingsNotificationsScreen(modifier: Modifier = Modifier) {
Box(
modifier = Modifier
.fillMaxSize(),
contentAlignment = Alignment.Center
) {
Text("Notifications settings")
}
}
=======
package com.f1rq.lifemap.screens.settingsScreens
import androidx.compose.foundation.layout.Arrangement
@ -48,3 +69,4 @@ fun SettingsNotificationsScreen(navController: NavController, modifier: Modifier
}
}
}
>>>>>>> 774f07c0804f103a0523e1f7da3f969046a53aec

View File

@ -1,12 +1,12 @@
package com.f1rq.lifemap.ui.theme
import androidx.compose.ui.graphics.Color
val MainBG = Color(0xFFECECEC)
val SecondaryBG = Color(0xFFDDDDDD)
val PrimaryColor = Color(0xFF49454F)
val MainTextColor = Color(0xFF1D1B20)
val ActiveNavColor = Color(0xFFDDDDDD)
val InactiveNavColor = Color.Transparent
package com.f1rq.lifemap.ui.theme
import androidx.compose.ui.graphics.Color
val MainBG = Color(0xFFECECEC)
val SecondaryBG = Color(0xFFDDDDDD)
val PrimaryColor = Color(0xFF49454F)
val MainTextColor = Color(0xFF1D1B20)
val ActiveNavColor = Color(0xFFDDDDDD)
val InactiveNavColor = Color.Transparent

View File

@ -1,9 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="18dp"
android:height="18dp"
android:viewportWidth="18"
android:viewportHeight="18">
<path
android:pathData="M2,16H3.425L13.2,6.225L11.775,4.8L2,14.575V16ZM0,18V13.75L13.2,0.575C13.4,0.3917 13.6208,0.25 13.8625,0.15C14.1042,0.05 14.3583,0 14.625,0C14.8917,0 15.15,0.05 15.4,0.15C15.65,0.25 15.8667,0.4 16.05,0.6L17.425,2C17.625,2.1833 17.7708,2.4 17.8625,2.65C17.9542,2.9 18,3.15 18,3.4C18,3.6667 17.9542,3.9208 17.8625,4.1625C17.7708,4.4042 17.625,4.625 17.425,4.825L4.25,18H0ZM12.475,5.525L11.775,4.8L13.2,6.225L12.475,5.525Z"
android:fillColor="#49454F"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="18dp"
android:height="18dp"
android:viewportWidth="18"
android:viewportHeight="18">
<path
android:pathData="M2,16H3.425L13.2,6.225L11.775,4.8L2,14.575V16ZM0,18V13.75L13.2,0.575C13.4,0.3917 13.6208,0.25 13.8625,0.15C14.1042,0.05 14.3583,0 14.625,0C14.8917,0 15.15,0.05 15.4,0.15C15.65,0.25 15.8667,0.4 16.05,0.6L17.425,2C17.625,2.1833 17.7708,2.4 17.8625,2.65C17.9542,2.9 18,3.15 18,3.4C18,3.6667 17.9542,3.9208 17.8625,4.1625C17.7708,4.4042 17.625,4.625 17.425,4.825L4.25,18H0ZM12.475,5.525L11.775,4.8L13.2,6.225L12.475,5.525Z"
android:fillColor="#49454F"/>
</vector>

View File

@ -0,0 +1,5 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
<path android:fillColor="@android:color/white" android:pathData="M20,4L4,4c-1.1,0 -1.99,0.9 -1.99,2L2,18c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2zM20,18L4,18L4,8l8,5 8,-5v10zM12,11L4,6h16l-8,5z"/>
</vector>

View File

@ -0,0 +1,5 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
<path android:fillColor="@android:color/white" android:pathData="M20,2L4,2c-1.1,0 -1.99,0.9 -1.99,2L2,22l4,-4h14c1.1,0 2,-0.9 2,-2L22,4c0,-1.1 -0.9,-2 -2,-2zM13,14h-2v-2h2v2zM13,10h-2L11,6h2v4z"/>
</vector>

View File

@ -1,9 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="19dp"
android:height="15dp"
android:viewportWidth="19"
android:viewportHeight="15">
<path
android:pathData="M4.5,0.5H18.5V2.5H4.5V0.5ZM4.5,8.5V6.5H18.5V8.5H4.5ZM1.5,0C1.8978,0 2.2794,0.158 2.5607,0.4393C2.842,0.7206 3,1.1022 3,1.5C3,1.8978 2.842,2.2794 2.5607,2.5607C2.2794,2.842 1.8978,3 1.5,3C1.1022,3 0.7206,2.842 0.4393,2.5607C0.158,2.2794 0,1.8978 0,1.5C0,1.1022 0.158,0.7206 0.4393,0.4393C0.7206,0.158 1.1022,0 1.5,0ZM1.5,6C1.8978,6 2.2794,6.158 2.5607,6.4393C2.842,6.7206 3,7.1022 3,7.5C3,7.8978 2.842,8.2794 2.5607,8.5607C2.2794,8.842 1.8978,9 1.5,9C1.1022,9 0.7206,8.842 0.4393,8.5607C0.158,8.2794 0,7.8978 0,7.5C0,7.1022 0.158,6.7206 0.4393,6.4393C0.7206,6.158 1.1022,6 1.5,6ZM4.5,14.5V12.5H18.5V14.5H4.5ZM1.5,12C1.8978,12 2.2794,12.158 2.5607,12.4393C2.842,12.7206 3,13.1022 3,13.5C3,13.8978 2.842,14.2794 2.5607,14.5607C2.2794,14.842 1.8978,15 1.5,15C1.1022,15 0.7206,14.842 0.4393,14.5607C0.158,14.2794 0,13.8978 0,13.5C0,13.1022 0.158,12.7206 0.4393,12.4393C0.7206,12.158 1.1022,12 1.5,12Z"
android:fillColor="#49454F"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="19dp"
android:height="15dp"
android:viewportWidth="19"
android:viewportHeight="15">
<path
android:pathData="M4.5,0.5H18.5V2.5H4.5V0.5ZM4.5,8.5V6.5H18.5V8.5H4.5ZM1.5,0C1.8978,0 2.2794,0.158 2.5607,0.4393C2.842,0.7206 3,1.1022 3,1.5C3,1.8978 2.842,2.2794 2.5607,2.5607C2.2794,2.842 1.8978,3 1.5,3C1.1022,3 0.7206,2.842 0.4393,2.5607C0.158,2.2794 0,1.8978 0,1.5C0,1.1022 0.158,0.7206 0.4393,0.4393C0.7206,0.158 1.1022,0 1.5,0ZM1.5,6C1.8978,6 2.2794,6.158 2.5607,6.4393C2.842,6.7206 3,7.1022 3,7.5C3,7.8978 2.842,8.2794 2.5607,8.5607C2.2794,8.842 1.8978,9 1.5,9C1.1022,9 0.7206,8.842 0.4393,8.5607C0.158,8.2794 0,7.8978 0,7.5C0,7.1022 0.158,6.7206 0.4393,6.4393C0.7206,6.158 1.1022,6 1.5,6ZM4.5,14.5V12.5H18.5V14.5H4.5ZM1.5,12C1.8978,12 2.2794,12.158 2.5607,12.4393C2.842,12.7206 3,13.1022 3,13.5C3,13.8978 2.842,14.2794 2.5607,14.5607C2.2794,14.842 1.8978,15 1.5,15C1.1022,15 0.7206,14.842 0.4393,14.5607C0.158,14.2794 0,13.8978 0,13.5C0,13.1022 0.158,12.7206 0.4393,12.4393C0.7206,12.158 1.1022,12 1.5,12Z"
android:fillColor="#49454F"/>
</vector>

View File

@ -1,9 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp"
android:height="20dp"
android:viewportWidth="20"
android:viewportHeight="20">
<path
android:pathData="M15.9,15.39C15.64,14.59 14.89,14 14,14H13V11C13,10.7348 12.8946,10.4804 12.7071,10.2929C12.5196,10.1054 12.2652,10 12,10H6V8H8C8.2652,8 8.5196,7.8946 8.7071,7.7071C8.8946,7.5196 9,7.2652 9,7V5H11C11.5304,5 12.0391,4.7893 12.4142,4.4142C12.7893,4.0391 13,3.5304 13,3V2.59C15.93,3.77 18,6.64 18,10C18,12.08 17.2,13.97 15.9,15.39ZM9,17.93C5.05,17.44 2,14.08 2,10C2,9.38 2.08,8.78 2.21,8.21L7,13V14C7,14.5304 7.2107,15.0391 7.5858,15.4142C7.9609,15.7893 8.4696,16 9,16M10,0C8.6868,0 7.3864,0.2587 6.1732,0.7612C4.9599,1.2637 3.8575,2.0003 2.9289,2.9289C1.0536,4.8043 0,7.3478 0,10C0,12.6522 1.0536,15.1957 2.9289,17.0711C3.8575,17.9997 4.9599,18.7362 6.1732,19.2388C7.3864,19.7413 8.6868,20 10,20C12.6522,20 15.1957,18.9464 17.0711,17.0711C18.9464,15.1957 20,12.6522 20,10C20,8.6868 19.7413,7.3864 19.2388,6.1732C18.7362,4.9599 17.9997,3.8575 17.0711,2.9289C16.1425,2.0003 15.0401,1.2637 13.8268,0.7612C12.6136,0.2587 11.3132,0 10,0Z"
android:fillColor="#49454F"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp"
android:height="20dp"
android:viewportWidth="20"
android:viewportHeight="20">
<path
android:pathData="M15.9,15.39C15.64,14.59 14.89,14 14,14H13V11C13,10.7348 12.8946,10.4804 12.7071,10.2929C12.5196,10.1054 12.2652,10 12,10H6V8H8C8.2652,8 8.5196,7.8946 8.7071,7.7071C8.8946,7.5196 9,7.2652 9,7V5H11C11.5304,5 12.0391,4.7893 12.4142,4.4142C12.7893,4.0391 13,3.5304 13,3V2.59C15.93,3.77 18,6.64 18,10C18,12.08 17.2,13.97 15.9,15.39ZM9,17.93C5.05,17.44 2,14.08 2,10C2,9.38 2.08,8.78 2.21,8.21L7,13V14C7,14.5304 7.2107,15.0391 7.5858,15.4142C7.9609,15.7893 8.4696,16 9,16M10,0C8.6868,0 7.3864,0.2587 6.1732,0.7612C4.9599,1.2637 3.8575,2.0003 2.9289,2.9289C1.0536,4.8043 0,7.3478 0,10C0,12.6522 1.0536,15.1957 2.9289,17.0711C3.8575,17.9997 4.9599,18.7362 6.1732,19.2388C7.3864,19.7413 8.6868,20 10,20C12.6522,20 15.1957,18.9464 17.0711,17.0711C18.9464,15.1957 20,12.6522 20,10C20,8.6868 19.7413,7.3864 19.2388,6.1732C18.7362,4.9599 17.9997,3.8575 17.0711,2.9289C16.1425,2.0003 15.0401,1.2637 13.8268,0.7612C12.6136,0.2587 11.3132,0 10,0Z"
android:fillColor="#49454F"/>
</vector>

View File

@ -1,9 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="16dp"
android:height="20dp"
android:viewportWidth="16"
android:viewportHeight="20">
<path
android:pathData="M0,17V15H2V8C2,6.6167 2.4167,5.3917 3.25,4.325C4.0833,3.2417 5.1667,2.5333 6.5,2.2V1.5C6.5,1.0833 6.6417,0.7333 6.925,0.45C7.225,0.15 7.5833,0 8,0C8.4167,0 8.7667,0.15 9.05,0.45C9.35,0.7333 9.5,1.0833 9.5,1.5V2.2C10.8333,2.5333 11.9167,3.2417 12.75,4.325C13.5833,5.3917 14,6.6167 14,8V15H16V17H0ZM8,20C7.45,20 6.975,19.8083 6.575,19.425C6.1917,19.025 6,18.55 6,18H10C10,18.55 9.8,19.025 9.4,19.425C9.0167,19.8083 8.55,20 8,20ZM4,15H12V8C12,6.9 11.6083,5.9583 10.825,5.175C10.0417,4.3917 9.1,4 8,4C6.9,4 5.9583,4.3917 5.175,5.175C4.3917,5.9583 4,6.9 4,8V15Z"
android:fillColor="#49454F"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="16dp"
android:height="20dp"
android:viewportWidth="16"
android:viewportHeight="20">
<path
android:pathData="M0,17V15H2V8C2,6.6167 2.4167,5.3917 3.25,4.325C4.0833,3.2417 5.1667,2.5333 6.5,2.2V1.5C6.5,1.0833 6.6417,0.7333 6.925,0.45C7.225,0.15 7.5833,0 8,0C8.4167,0 8.7667,0.15 9.05,0.45C9.35,0.7333 9.5,1.0833 9.5,1.5V2.2C10.8333,2.5333 11.9167,3.2417 12.75,4.325C13.5833,5.3917 14,6.6167 14,8V15H16V17H0ZM8,20C7.45,20 6.975,19.8083 6.575,19.425C6.1917,19.025 6,18.55 6,18H10C10,18.55 9.8,19.025 9.4,19.425C9.0167,19.8083 8.55,20 8,20ZM4,15H12V8C12,6.9 11.6083,5.9583 10.825,5.175C10.0417,4.3917 9.1,4 8,4C6.9,4 5.9583,4.3917 5.175,5.175C4.3917,5.9583 4,6.9 4,8V15Z"
android:fillColor="#49454F"/>
</vector>

View File

@ -1,9 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp"
android:height="20dp"
android:viewportWidth="20"
android:viewportHeight="20">
<path
android:pathData="M9.7293,6C10.7902,6 11.8076,6.4214 12.5578,7.1716C13.3079,7.9217 13.7293,8.9391 13.7293,10C13.7293,11.0609 13.3079,12.0783 12.5578,12.8284C11.8076,13.5786 10.7902,14 9.7293,14C8.6685,14 7.6511,13.5786 6.9009,12.8284C6.1508,12.0783 5.7293,11.0609 5.7293,10C5.7293,8.9391 6.1508,7.9217 6.9009,7.1716C7.6511,6.4214 8.6685,6 9.7293,6ZM9.7293,8C9.1989,8 8.6902,8.2107 8.3151,8.5858C7.9401,8.9609 7.7293,9.4696 7.7293,10C7.7293,10.5304 7.9401,11.0391 8.3151,11.4142C8.6902,11.7893 9.1989,12 9.7293,12C10.2598,12 10.7685,11.7893 11.1435,11.4142C11.5186,11.0391 11.7293,10.5304 11.7293,10C11.7293,9.4696 11.5186,8.9609 11.1435,8.5858C10.7685,8.2107 10.2598,8 9.7293,8ZM7.7293,20C7.4793,20 7.2693,19.82 7.2293,19.58L6.8593,16.93C6.2293,16.68 5.6893,16.34 5.1693,15.94L2.6793,16.95C2.4593,17.03 2.1893,16.95 2.0693,16.73L0.0693,13.27C-0.0607,13.05 -0.0007,12.78 0.1893,12.63L2.2993,10.97L2.2293,10L2.2993,9L0.1893,7.37C-0.0007,7.22 -0.0607,6.95 0.0693,6.73L2.0693,3.27C2.1893,3.05 2.4593,2.96 2.6793,3.05L5.1693,4.05C5.6893,3.66 6.2293,3.32 6.8593,3.07L7.2293,0.42C7.2693,0.18 7.4793,0 7.7293,0H11.7293C11.9793,0 12.1893,0.18 12.2293,0.42L12.5993,3.07C13.2293,3.32 13.7693,3.66 14.2893,4.05L16.7793,3.05C16.9993,2.96 17.2693,3.05 17.3893,3.27L19.3893,6.73C19.5193,6.95 19.4593,7.22 19.2693,7.37L17.1593,9L17.2293,10L17.1593,11L19.2693,12.63C19.4593,12.78 19.5193,13.05 19.3893,13.27L17.3893,16.73C17.2693,16.95 16.9993,17.04 16.7793,16.95L14.2893,15.95C13.7693,16.34 13.2293,16.68 12.5993,16.93L12.2293,19.58C12.1893,19.82 11.9793,20 11.7293,20H7.7293ZM8.9793,2L8.6093,4.61C7.4093,4.86 6.3493,5.5 5.5793,6.39L3.1693,5.35L2.4193,6.65L4.5293,8.2C4.1293,9.37 4.1293,10.64 4.5293,11.8L2.4093,13.36L3.1593,14.66L5.5893,13.62C6.3593,14.5 7.4093,15.14 8.5993,15.38L8.9693,18H10.4893L10.8593,15.39C12.0493,15.14 13.0993,14.5 13.8693,13.62L16.2993,14.66L17.0493,13.36L14.9293,11.81C15.3293,10.64 15.3293,9.37 14.9293,8.2L17.0393,6.65L16.2893,5.35L13.8793,6.39C13.1093,5.5 12.0493,4.86 10.8493,4.62L10.4793,2H8.9793Z"
android:fillColor="#49454F"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp"
android:height="20dp"
android:viewportWidth="20"
android:viewportHeight="20">
<path
android:pathData="M9.7293,6C10.7902,6 11.8076,6.4214 12.5578,7.1716C13.3079,7.9217 13.7293,8.9391 13.7293,10C13.7293,11.0609 13.3079,12.0783 12.5578,12.8284C11.8076,13.5786 10.7902,14 9.7293,14C8.6685,14 7.6511,13.5786 6.9009,12.8284C6.1508,12.0783 5.7293,11.0609 5.7293,10C5.7293,8.9391 6.1508,7.9217 6.9009,7.1716C7.6511,6.4214 8.6685,6 9.7293,6ZM9.7293,8C9.1989,8 8.6902,8.2107 8.3151,8.5858C7.9401,8.9609 7.7293,9.4696 7.7293,10C7.7293,10.5304 7.9401,11.0391 8.3151,11.4142C8.6902,11.7893 9.1989,12 9.7293,12C10.2598,12 10.7685,11.7893 11.1435,11.4142C11.5186,11.0391 11.7293,10.5304 11.7293,10C11.7293,9.4696 11.5186,8.9609 11.1435,8.5858C10.7685,8.2107 10.2598,8 9.7293,8ZM7.7293,20C7.4793,20 7.2693,19.82 7.2293,19.58L6.8593,16.93C6.2293,16.68 5.6893,16.34 5.1693,15.94L2.6793,16.95C2.4593,17.03 2.1893,16.95 2.0693,16.73L0.0693,13.27C-0.0607,13.05 -0.0007,12.78 0.1893,12.63L2.2993,10.97L2.2293,10L2.2993,9L0.1893,7.37C-0.0007,7.22 -0.0607,6.95 0.0693,6.73L2.0693,3.27C2.1893,3.05 2.4593,2.96 2.6793,3.05L5.1693,4.05C5.6893,3.66 6.2293,3.32 6.8593,3.07L7.2293,0.42C7.2693,0.18 7.4793,0 7.7293,0H11.7293C11.9793,0 12.1893,0.18 12.2293,0.42L12.5993,3.07C13.2293,3.32 13.7693,3.66 14.2893,4.05L16.7793,3.05C16.9993,2.96 17.2693,3.05 17.3893,3.27L19.3893,6.73C19.5193,6.95 19.4593,7.22 19.2693,7.37L17.1593,9L17.2293,10L17.1593,11L19.2693,12.63C19.4593,12.78 19.5193,13.05 19.3893,13.27L17.3893,16.73C17.2693,16.95 16.9993,17.04 16.7793,16.95L14.2893,15.95C13.7693,16.34 13.2293,16.68 12.5993,16.93L12.2293,19.58C12.1893,19.82 11.9793,20 11.7293,20H7.7293ZM8.9793,2L8.6093,4.61C7.4093,4.86 6.3493,5.5 5.5793,6.39L3.1693,5.35L2.4193,6.65L4.5293,8.2C4.1293,9.37 4.1293,10.64 4.5293,11.8L2.4093,13.36L3.1593,14.66L5.5893,13.62C6.3593,14.5 7.4093,15.14 8.5993,15.38L8.9693,18H10.4893L10.8593,15.39C12.0493,15.14 13.0993,14.5 13.8693,13.62L16.2993,14.66L17.0493,13.36L14.9293,11.81C15.3293,10.64 15.3293,9.37 14.9293,8.2L17.0393,6.65L16.2893,5.35L13.8793,6.39C13.1093,5.5 12.0493,4.86 10.8493,4.62L10.4793,2H8.9793Z"
android:fillColor="#49454F"/>
</vector>

View File

@ -1,360 +1,360 @@
{
"name": "add_event",
"version": 33,
"source-key": {
"type": "figma",
"file": "7RzB5mC9Qj82hGEbAM11GM",
"node": "76:4",
"version": "2205685389783780702",
"component-id": "7df95c19403de2b4b8280d6464fc1c747d4921a5"
},
"default": "Add event",
"design": {
"atoms": [
{
"type": "group",
"id": "top_level",
"root": "true"
},
{
"type": "group",
"id": "top_level_synth"
},
{
"type": "group",
"id": "Background"
},
{
"type": "group",
"id": "Content"
},
{
"type": "group",
"id": "Title"
},
{
"type": "group",
"id": "FAB"
},
{
"type": "text",
"id": "LifeMap title"
},
{
"type": "text",
"id": "subtitle"
},
{
"type": "group",
"id": "state-layer"
},
{
"type": "group",
"id": "icon"
},
{
"type": "vector",
"id": "icon1"
},
{
"type": "group",
"id": "layer"
}
],
"modes": {
"Add event": {
"rules": [
{
"id": "top_level",
"is-structured": false,
"children": [
"top_level_synth",
"Background"
],
"clip-content": false
},
{
"id": "top_level_synth",
"opacity": 100.0,
"size-constraints": {
"width-constraints": {
"sizing-mode": "shrink"
},
"height-constraints": {
"sizing-mode": "shrink"
}
},
"arrangement": "row",
"main-axis-align": "start",
"cross-axis-align": "start",
"children": [
"Content"
],
"clip-content": false
},
{
"id": "Background",
"border-radius": 12.0,
"stroke-width": 1.0,
"stroke-color": {
"alpha": 1.0,
"hue": 269.99999999999994,
"saturation": 0.057692307692307626,
"value": 0.8156862745098039
},
"is-structured": false,
"children": [
"layer"
],
"background-color": {
"alpha": 1.0,
"hue": 0.0,
"saturation": 0.0,
"value": 0.9215686274509803
}
},
{
"id": "Content",
"padding": 20.0,
"border-radius": 12.0,
"size-constraints": {
"width-constraints": {
"sizing-mode": "fixed",
"value": 375.0
},
"height-constraints": {
"sizing-mode": "fixed",
"value": 82.0
}
},
"arrangement": "row",
"main-axis-align": "space-between",
"children": [
"Title",
"FAB"
]
},
{
"id": "Title",
"padding": {
"top": 5.0
},
"size-constraints": {
"width-constraints": {
"sizing-mode": "fixed",
"value": 156.0
},
"height-constraints": {
"sizing-mode": "fixed",
"value": 48.0
}
},
"cross-axis-align": "start",
"children": [
"LifeMap title",
"subtitle"
],
"item-spacing": -1.0,
"clip-content": false
},
{
"id": "FAB",
"border-radius": 16.0,
"drop-shadow": {
"color": {
"alpha": 0.2980392156862745,
"hue": 0.0,
"saturation": 0.0,
"value": 0.0
},
"blur": 3.0,
"offset-x": 0.0,
"offset-y": 1.0,
"spread": 0.0,
"blend-mode": "normal"
},
"tap-handler": "$on add button tapped",
"size-constraints": {
"width-constraints": {
"sizing-mode": "shrink"
},
"height-constraints": {
"sizing-mode": "shrink"
}
},
"arrangement": "row",
"children": [
"state-layer"
],
"background-color": {
"alpha": 1.0,
"hue": 0.0,
"saturation": 0.0,
"value": 0.9215686274509803
}
},
{
"id": "LifeMap title",
"font-weight": "^md.sys.typescale.title-large.weight",
"color": "^md.sys.color.on-surface",
"text-content": "Add event",
"overflow": "visible",
"text-align": "left",
"text-size": "^md.sys.typescale.title-large.size",
"letter-spacing": "^md.sys.typescale.title-large.tracking",
"line-height": "^md.sys.typescale.title-large.line-height",
"typeface": "^md.sys.typescale.title-large.font"
},
{
"id": "subtitle",
"font-weight": "^md.sys.typescale.label-medium.weight",
"color": "^md.sys.color.on-surface",
"text-content": "With localization, date etc.",
"overflow": "visible",
"text-align": "left",
"text-size": "^md.sys.typescale.label-medium.size",
"letter-spacing": "^md.sys.typescale.label-medium.tracking",
"line-height": "^md.sys.typescale.label-medium.line-height",
"typeface": "^md.sys.typescale.label-medium.font"
},
{
"id": "state-layer",
"padding": 16.0,
"size-constraints": {
"width-constraints": {
"sizing-mode": "shrink"
},
"height-constraints": {
"sizing-mode": "shrink"
}
},
"arrangement": "row",
"children": [
"icon"
],
"clip-content": false
},
{
"id": "icon",
"size-constraints": {
"width-constraints": {
"sizing-mode": "fixed",
"value": 24.0
},
"height-constraints": {
"sizing-mode": "fixed",
"value": 24.0
}
},
"is-structured": false,
"children": [
"icon1"
],
"clip-content": false
},
{
"id": "icon1",
"margin": 3.0,
"size-constraints": {
"width-constraints": {
"sizing-mode": "proportional",
"value": 1.0
},
"height-constraints": {
"sizing-mode": "proportional",
"value": 1.0
}
},
"vector-content": "icon.svg"
},
{
"id": "layer",
"padding": 10.0,
"item-spacing": 10.0,
"clip-content": false
}
]
}
}
},
"parameters": {
"on add button tapped": {
"data-type": "void-callback",
"required": false,
"description": ""
}
},
"ambients": {
"md.sys.color.on-surface": {
"data-type": "color",
"description": null
},
"md.sys.typescale.title-large.font": {
"data-type": "typeface",
"description": null
},
"md.sys.typescale.title-large.weight": {
"data-type": "double",
"description": null
},
"md.sys.typescale.title-large.size": {
"data-type": "double",
"description": null
},
"md.sys.typescale.title-large.tracking": {
"data-type": "double",
"description": null
},
"md.sys.typescale.title-large.line-height": {
"data-type": "double",
"description": null
},
"md.sys.typescale.label-medium.font": {
"data-type": "typeface",
"description": null
},
"md.sys.typescale.label-medium.weight": {
"data-type": "double",
"description": null
},
"md.sys.typescale.label-medium.size": {
"data-type": "double",
"description": null
},
"md.sys.typescale.label-medium.tracking": {
"data-type": "double",
"description": null
},
"md.sys.typescale.label-medium.line-height": {
"data-type": "double",
"description": null
}
},
"previews": [
{
"design": "Add event",
"size": {
"width": 375.0,
"height": 82.0
},
"ambients": {
"md.sys.color.on-surface": {
"alpha": 1.0,
"hue": 264.0,
"saturation": 0.15625,
"value": 0.12549019607843137
},
"md.sys.typescale.title-large.weight": 400.0,
"md.sys.typescale.title-large.size": 22.0,
"md.sys.typescale.title-large.line-height": 1.272727279663086,
"md.sys.typescale.label-medium.weight": 500.0,
"md.sys.typescale.label-medium.size": 12.0,
"md.sys.typescale.label-medium.tracking": 0.5,
"md.sys.typescale.label-medium.line-height": 1.3333332824707032
}
}
],
"adin-component-search-paths": [],
"image-search-paths": [],
"vector-search-paths": []
{
"name": "add_event",
"version": 33,
"source-key": {
"type": "figma",
"file": "7RzB5mC9Qj82hGEbAM11GM",
"node": "76:4",
"version": "2205685389783780702",
"component-id": "7df95c19403de2b4b8280d6464fc1c747d4921a5"
},
"default": "Add event",
"design": {
"atoms": [
{
"type": "group",
"id": "top_level",
"root": "true"
},
{
"type": "group",
"id": "top_level_synth"
},
{
"type": "group",
"id": "Background"
},
{
"type": "group",
"id": "Content"
},
{
"type": "group",
"id": "Title"
},
{
"type": "group",
"id": "FAB"
},
{
"type": "text",
"id": "LifeMap title"
},
{
"type": "text",
"id": "subtitle"
},
{
"type": "group",
"id": "state-layer"
},
{
"type": "group",
"id": "icon"
},
{
"type": "vector",
"id": "icon1"
},
{
"type": "group",
"id": "layer"
}
],
"modes": {
"Add event": {
"rules": [
{
"id": "top_level",
"is-structured": false,
"children": [
"top_level_synth",
"Background"
],
"clip-content": false
},
{
"id": "top_level_synth",
"opacity": 100.0,
"size-constraints": {
"width-constraints": {
"sizing-mode": "shrink"
},
"height-constraints": {
"sizing-mode": "shrink"
}
},
"arrangement": "row",
"main-axis-align": "start",
"cross-axis-align": "start",
"children": [
"Content"
],
"clip-content": false
},
{
"id": "Background",
"border-radius": 12.0,
"stroke-width": 1.0,
"stroke-color": {
"alpha": 1.0,
"hue": 269.99999999999994,
"saturation": 0.057692307692307626,
"value": 0.8156862745098039
},
"is-structured": false,
"children": [
"layer"
],
"background-color": {
"alpha": 1.0,
"hue": 0.0,
"saturation": 0.0,
"value": 0.9215686274509803
}
},
{
"id": "Content",
"padding": 20.0,
"border-radius": 12.0,
"size-constraints": {
"width-constraints": {
"sizing-mode": "fixed",
"value": 375.0
},
"height-constraints": {
"sizing-mode": "fixed",
"value": 82.0
}
},
"arrangement": "row",
"main-axis-align": "space-between",
"children": [
"Title",
"FAB"
]
},
{
"id": "Title",
"padding": {
"top": 5.0
},
"size-constraints": {
"width-constraints": {
"sizing-mode": "fixed",
"value": 156.0
},
"height-constraints": {
"sizing-mode": "fixed",
"value": 48.0
}
},
"cross-axis-align": "start",
"children": [
"LifeMap title",
"subtitle"
],
"item-spacing": -1.0,
"clip-content": false
},
{
"id": "FAB",
"border-radius": 16.0,
"drop-shadow": {
"color": {
"alpha": 0.2980392156862745,
"hue": 0.0,
"saturation": 0.0,
"value": 0.0
},
"blur": 3.0,
"offset-x": 0.0,
"offset-y": 1.0,
"spread": 0.0,
"blend-mode": "normal"
},
"tap-handler": "$on add button tapped",
"size-constraints": {
"width-constraints": {
"sizing-mode": "shrink"
},
"height-constraints": {
"sizing-mode": "shrink"
}
},
"arrangement": "row",
"children": [
"state-layer"
],
"background-color": {
"alpha": 1.0,
"hue": 0.0,
"saturation": 0.0,
"value": 0.9215686274509803
}
},
{
"id": "LifeMap title",
"font-weight": "^md.sys.typescale.title-large.weight",
"color": "^md.sys.color.on-surface",
"text-content": "Add event",
"overflow": "visible",
"text-align": "left",
"text-size": "^md.sys.typescale.title-large.size",
"letter-spacing": "^md.sys.typescale.title-large.tracking",
"line-height": "^md.sys.typescale.title-large.line-height",
"typeface": "^md.sys.typescale.title-large.font"
},
{
"id": "subtitle",
"font-weight": "^md.sys.typescale.label-medium.weight",
"color": "^md.sys.color.on-surface",
"text-content": "With localization, date etc.",
"overflow": "visible",
"text-align": "left",
"text-size": "^md.sys.typescale.label-medium.size",
"letter-spacing": "^md.sys.typescale.label-medium.tracking",
"line-height": "^md.sys.typescale.label-medium.line-height",
"typeface": "^md.sys.typescale.label-medium.font"
},
{
"id": "state-layer",
"padding": 16.0,
"size-constraints": {
"width-constraints": {
"sizing-mode": "shrink"
},
"height-constraints": {
"sizing-mode": "shrink"
}
},
"arrangement": "row",
"children": [
"icon"
],
"clip-content": false
},
{
"id": "icon",
"size-constraints": {
"width-constraints": {
"sizing-mode": "fixed",
"value": 24.0
},
"height-constraints": {
"sizing-mode": "fixed",
"value": 24.0
}
},
"is-structured": false,
"children": [
"icon1"
],
"clip-content": false
},
{
"id": "icon1",
"margin": 3.0,
"size-constraints": {
"width-constraints": {
"sizing-mode": "proportional",
"value": 1.0
},
"height-constraints": {
"sizing-mode": "proportional",
"value": 1.0
}
},
"vector-content": "icon.svg"
},
{
"id": "layer",
"padding": 10.0,
"item-spacing": 10.0,
"clip-content": false
}
]
}
}
},
"parameters": {
"on add button tapped": {
"data-type": "void-callback",
"required": false,
"description": ""
}
},
"ambients": {
"md.sys.color.on-surface": {
"data-type": "color",
"description": null
},
"md.sys.typescale.title-large.font": {
"data-type": "typeface",
"description": null
},
"md.sys.typescale.title-large.weight": {
"data-type": "double",
"description": null
},
"md.sys.typescale.title-large.size": {
"data-type": "double",
"description": null
},
"md.sys.typescale.title-large.tracking": {
"data-type": "double",
"description": null
},
"md.sys.typescale.title-large.line-height": {
"data-type": "double",
"description": null
},
"md.sys.typescale.label-medium.font": {
"data-type": "typeface",
"description": null
},
"md.sys.typescale.label-medium.weight": {
"data-type": "double",
"description": null
},
"md.sys.typescale.label-medium.size": {
"data-type": "double",
"description": null
},
"md.sys.typescale.label-medium.tracking": {
"data-type": "double",
"description": null
},
"md.sys.typescale.label-medium.line-height": {
"data-type": "double",
"description": null
}
},
"previews": [
{
"design": "Add event",
"size": {
"width": 375.0,
"height": 82.0
},
"ambients": {
"md.sys.color.on-surface": {
"alpha": 1.0,
"hue": 264.0,
"saturation": 0.15625,
"value": 0.12549019607843137
},
"md.sys.typescale.title-large.weight": 400.0,
"md.sys.typescale.title-large.size": 22.0,
"md.sys.typescale.title-large.line-height": 1.272727279663086,
"md.sys.typescale.label-medium.weight": 500.0,
"md.sys.typescale.label-medium.size": 12.0,
"md.sys.typescale.label-medium.tracking": 0.5,
"md.sys.typescale.label-medium.line-height": 1.3333332824707032
}
}
],
"adin-component-search-paths": [],
"image-search-paths": [],
"vector-search-paths": []
}

View File

@ -1,4 +1,4 @@
{
"preview-theme": "androidx.compose.material3.MaterialTheme",
"ambient-translations-path": "app/src/main/ui-package-resources/style-mappings/m3_design_kit.json"
{
"preview-theme": "androidx.compose.material3.MaterialTheme",
"ambient-translations-path": "app/src/main/ui-package-resources/style-mappings/m3_design_kit.json"
}

View File

@ -1,3 +1,3 @@
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M2 16H3.425L13.2 6.225L11.775 4.8L2 14.575V16ZM0 18V13.75L13.2 0.575C13.4 0.391667 13.6208 0.25 13.8625 0.15C14.1042 0.05 14.3583 0 14.625 0C14.8917 0 15.15 0.05 15.4 0.15C15.65 0.25 15.8667 0.4 16.05 0.6L17.425 2C17.625 2.18333 17.7708 2.4 17.8625 2.65C17.9542 2.9 18 3.15 18 3.4C18 3.66667 17.9542 3.92083 17.8625 4.1625C17.7708 4.40417 17.625 4.625 17.425 4.825L4.25 18H0ZM12.475 5.525L11.775 4.8L13.2 6.225L12.475 5.525Z" fill="#49454F"/>
</svg>
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M2 16H3.425L13.2 6.225L11.775 4.8L2 14.575V16ZM0 18V13.75L13.2 0.575C13.4 0.391667 13.6208 0.25 13.8625 0.15C14.1042 0.05 14.3583 0 14.625 0C14.8917 0 15.15 0.05 15.4 0.15C15.65 0.25 15.8667 0.4 16.05 0.6L17.425 2C17.625 2.18333 17.7708 2.4 17.8625 2.65C17.9542 2.9 18 3.15 18 3.4C18 3.66667 17.9542 3.92083 17.8625 4.1625C17.7708 4.40417 17.625 4.625 17.425 4.825L4.25 18H0ZM12.475 5.525L11.775 4.8L13.2 6.225L12.475 5.525Z" fill="#49454F"/>
</svg>

Before

Width:  |  Height:  |  Size: 555 B

After

Width:  |  Height:  |  Size: 558 B

View File

@ -1,332 +1,332 @@
{
"name": "navigation_bar",
"version": 33,
"source-key": {
"type": "figma",
"file": "7RzB5mC9Qj82hGEbAM11GM",
"node": "38:3",
"version": "2205685389783780702",
"component-id": "915162a5cdf4f7f91ace42d239b4d1faf0d5c6e7"
},
"default": "Navigation bar",
"documentation": "bottom nav bar",
"design": {
"atoms": [
{
"type": "group",
"id": "top_level",
"root": "true"
},
{
"type": "group",
"id": "world view"
},
{
"type": "group",
"id": "list view"
},
{
"type": "group",
"id": "icon-container"
},
{
"type": "group",
"id": "state-layer"
},
{
"type": "group",
"id": "Frame"
},
{
"type": "vector",
"id": "Vector"
},
{
"type": "group",
"id": "icon-container1"
},
{
"type": "group",
"id": "state-layer1"
},
{
"type": "group",
"id": "Frame1"
},
{
"type": "vector",
"id": "Vector1"
}
],
"modes": {
"Navigation bar": {
"rules": [
{
"id": "top_level",
"padding": {
"left": 8.0,
"right": 8.0
},
"size-constraints": {
"width-constraints": {
"sizing-mode": "proportional",
"value": 1.0
},
"height-constraints": {
"sizing-mode": "shrink"
}
},
"arrangement": "row",
"cross-axis-align": "end",
"children": [
"world view",
"list view"
],
"background-color": {
"alpha": 1.0,
"hue": 0.0,
"saturation": 0.0,
"value": 0.9215686274509803
},
"clip-content": false
},
{
"id": "world view",
"padding": {
"top": 12.0,
"bottom": 16.0
},
"tap-handler": "$on world view tapped",
"size-constraints": {
"width-constraints": {
"sizing-mode": "proportional",
"value": 1.0
},
"height-constraints": {
"sizing-mode": "shrink"
}
},
"children": [
"icon-container"
],
"item-spacing": 4.0,
"clip-content": false
},
{
"id": "list view",
"padding": {
"top": 12.0,
"bottom": 16.0
},
"tap-handler": "$on list view tapped",
"size-constraints": {
"width-constraints": {
"sizing-mode": "proportional",
"value": 1.0
},
"height-constraints": {
"sizing-mode": "shrink"
}
},
"children": [
"icon-container1"
],
"item-spacing": 4.0,
"clip-content": false
},
{
"id": "icon-container",
"border-radius": 16.0,
"size-constraints": {
"width-constraints": {
"sizing-mode": "shrink"
},
"height-constraints": {
"sizing-mode": "shrink"
}
},
"children": [
"state-layer"
]
},
{
"id": "state-layer",
"padding": {
"left": 20.0,
"top": 4.0,
"right": 20.0,
"bottom": 4.0
},
"size-constraints": {
"width-constraints": {
"sizing-mode": "fixed",
"value": 48.0
},
"height-constraints": {
"sizing-mode": "fixed",
"value": 48.0
}
},
"arrangement": "row",
"children": [
"Frame"
],
"background-color": "$world view background color",
"clip-content": false
},
{
"id": "Frame",
"size-constraints": {
"width-constraints": {
"sizing-mode": "fixed",
"value": 24.0
},
"height-constraints": {
"sizing-mode": "fixed",
"value": 24.0
}
},
"is-structured": false,
"children": [
"Vector"
]
},
{
"id": "Vector",
"margin": 2.0,
"size-constraints": {
"width-constraints": {
"sizing-mode": "proportional",
"value": 1.0
},
"height-constraints": {
"sizing-mode": "proportional",
"value": 1.0
}
},
"vector-content": "vector.svg"
},
{
"id": "icon-container1",
"border-radius": 16.0,
"size-constraints": {
"width-constraints": {
"sizing-mode": "shrink"
},
"height-constraints": {
"sizing-mode": "shrink"
}
},
"children": [
"state-layer1"
]
},
{
"id": "state-layer1",
"padding": {
"left": 20.0,
"top": 4.0,
"right": 20.0,
"bottom": 4.0
},
"size-constraints": {
"width-constraints": {
"sizing-mode": "fixed",
"value": 48.0
},
"height-constraints": {
"sizing-mode": "fixed",
"value": 48.0
}
},
"arrangement": "row",
"children": [
"Frame1"
],
"background-color": "$list view background color",
"clip-content": false
},
{
"id": "Frame1",
"size-constraints": {
"width-constraints": {
"sizing-mode": "fixed",
"value": 24.0
},
"height-constraints": {
"sizing-mode": "fixed",
"value": 24.0
}
},
"is-structured": false,
"children": [
"Vector1"
]
},
{
"id": "Vector1",
"margin": {
"left": 2.5,
"top": 4.5,
"right": 3.0,
"bottom": 4.5
},
"size-constraints": {
"width-constraints": {
"sizing-mode": "proportional",
"value": 1.0
},
"height-constraints": {
"sizing-mode": "proportional",
"value": 1.0
}
},
"vector-content": "vector1.svg"
}
]
}
}
},
"parameters": {
"on world view tapped": {
"data-type": "void-callback",
"required": false,
"description": ""
},
"on list view tapped": {
"data-type": "void-callback",
"required": false,
"description": ""
},
"world view background color": {
"data-type": "color",
"required": false,
"description": ""
},
"list view background color": {
"data-type": "color",
"required": false,
"description": ""
}
},
"previews": [
{
"design": "Navigation bar",
"size": {
"width": 375.0,
"height": 76.0
},
"parameters": {
"world view background color": {
"alpha": 1.0,
"hue": 0.0,
"saturation": 0.0,
"value": 0.8666666666666667
}
}
}
],
"adin-component-search-paths": [],
"image-search-paths": [],
"vector-search-paths": []
{
"name": "navigation_bar",
"version": 33,
"source-key": {
"type": "figma",
"file": "7RzB5mC9Qj82hGEbAM11GM",
"node": "38:3",
"version": "2205685389783780702",
"component-id": "915162a5cdf4f7f91ace42d239b4d1faf0d5c6e7"
},
"default": "Navigation bar",
"documentation": "bottom nav bar",
"design": {
"atoms": [
{
"type": "group",
"id": "top_level",
"root": "true"
},
{
"type": "group",
"id": "world view"
},
{
"type": "group",
"id": "list view"
},
{
"type": "group",
"id": "icon-container"
},
{
"type": "group",
"id": "state-layer"
},
{
"type": "group",
"id": "Frame"
},
{
"type": "vector",
"id": "Vector"
},
{
"type": "group",
"id": "icon-container1"
},
{
"type": "group",
"id": "state-layer1"
},
{
"type": "group",
"id": "Frame1"
},
{
"type": "vector",
"id": "Vector1"
}
],
"modes": {
"Navigation bar": {
"rules": [
{
"id": "top_level",
"padding": {
"left": 8.0,
"right": 8.0
},
"size-constraints": {
"width-constraints": {
"sizing-mode": "proportional",
"value": 1.0
},
"height-constraints": {
"sizing-mode": "shrink"
}
},
"arrangement": "row",
"cross-axis-align": "end",
"children": [
"world view",
"list view"
],
"background-color": {
"alpha": 1.0,
"hue": 0.0,
"saturation": 0.0,
"value": 0.9215686274509803
},
"clip-content": false
},
{
"id": "world view",
"padding": {
"top": 12.0,
"bottom": 16.0
},
"tap-handler": "$on world view tapped",
"size-constraints": {
"width-constraints": {
"sizing-mode": "proportional",
"value": 1.0
},
"height-constraints": {
"sizing-mode": "shrink"
}
},
"children": [
"icon-container"
],
"item-spacing": 4.0,
"clip-content": false
},
{
"id": "list view",
"padding": {
"top": 12.0,
"bottom": 16.0
},
"tap-handler": "$on list view tapped",
"size-constraints": {
"width-constraints": {
"sizing-mode": "proportional",
"value": 1.0
},
"height-constraints": {
"sizing-mode": "shrink"
}
},
"children": [
"icon-container1"
],
"item-spacing": 4.0,
"clip-content": false
},
{
"id": "icon-container",
"border-radius": 16.0,
"size-constraints": {
"width-constraints": {
"sizing-mode": "shrink"
},
"height-constraints": {
"sizing-mode": "shrink"
}
},
"children": [
"state-layer"
]
},
{
"id": "state-layer",
"padding": {
"left": 20.0,
"top": 4.0,
"right": 20.0,
"bottom": 4.0
},
"size-constraints": {
"width-constraints": {
"sizing-mode": "fixed",
"value": 48.0
},
"height-constraints": {
"sizing-mode": "fixed",
"value": 48.0
}
},
"arrangement": "row",
"children": [
"Frame"
],
"background-color": "$world view background color",
"clip-content": false
},
{
"id": "Frame",
"size-constraints": {
"width-constraints": {
"sizing-mode": "fixed",
"value": 24.0
},
"height-constraints": {
"sizing-mode": "fixed",
"value": 24.0
}
},
"is-structured": false,
"children": [
"Vector"
]
},
{
"id": "Vector",
"margin": 2.0,
"size-constraints": {
"width-constraints": {
"sizing-mode": "proportional",
"value": 1.0
},
"height-constraints": {
"sizing-mode": "proportional",
"value": 1.0
}
},
"vector-content": "vector.svg"
},
{
"id": "icon-container1",
"border-radius": 16.0,
"size-constraints": {
"width-constraints": {
"sizing-mode": "shrink"
},
"height-constraints": {
"sizing-mode": "shrink"
}
},
"children": [
"state-layer1"
]
},
{
"id": "state-layer1",
"padding": {
"left": 20.0,
"top": 4.0,
"right": 20.0,
"bottom": 4.0
},
"size-constraints": {
"width-constraints": {
"sizing-mode": "fixed",
"value": 48.0
},
"height-constraints": {
"sizing-mode": "fixed",
"value": 48.0
}
},
"arrangement": "row",
"children": [
"Frame1"
],
"background-color": "$list view background color",
"clip-content": false
},
{
"id": "Frame1",
"size-constraints": {
"width-constraints": {
"sizing-mode": "fixed",
"value": 24.0
},
"height-constraints": {
"sizing-mode": "fixed",
"value": 24.0
}
},
"is-structured": false,
"children": [
"Vector1"
]
},
{
"id": "Vector1",
"margin": {
"left": 2.5,
"top": 4.5,
"right": 3.0,
"bottom": 4.5
},
"size-constraints": {
"width-constraints": {
"sizing-mode": "proportional",
"value": 1.0
},
"height-constraints": {
"sizing-mode": "proportional",
"value": 1.0
}
},
"vector-content": "vector1.svg"
}
]
}
}
},
"parameters": {
"on world view tapped": {
"data-type": "void-callback",
"required": false,
"description": ""
},
"on list view tapped": {
"data-type": "void-callback",
"required": false,
"description": ""
},
"world view background color": {
"data-type": "color",
"required": false,
"description": ""
},
"list view background color": {
"data-type": "color",
"required": false,
"description": ""
}
},
"previews": [
{
"design": "Navigation bar",
"size": {
"width": 375.0,
"height": 76.0
},
"parameters": {
"world view background color": {
"alpha": 1.0,
"hue": 0.0,
"saturation": 0.0,
"value": 0.8666666666666667
}
}
}
],
"adin-component-search-paths": [],
"image-search-paths": [],
"vector-search-paths": []
}

View File

@ -1,3 +1,3 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M15.9 15.39C15.64 14.59 14.89 14 14 14H13V11C13 10.7348 12.8946 10.4804 12.7071 10.2929C12.5196 10.1054 12.2652 10 12 10H6V8H8C8.26522 8 8.51957 7.89464 8.70711 7.70711C8.89464 7.51957 9 7.26522 9 7V5H11C11.5304 5 12.0391 4.78929 12.4142 4.41421C12.7893 4.03914 13 3.53043 13 3V2.59C15.93 3.77 18 6.64 18 10C18 12.08 17.2 13.97 15.9 15.39ZM9 17.93C5.05 17.44 2 14.08 2 10C2 9.38 2.08 8.78 2.21 8.21L7 13V14C7 14.5304 7.21071 15.0391 7.58579 15.4142C7.96086 15.7893 8.46957 16 9 16M10 0C8.68678 0 7.38642 0.258658 6.17317 0.761205C4.95991 1.26375 3.85752 2.00035 2.92893 2.92893C1.05357 4.8043 0 7.34784 0 10C0 12.6522 1.05357 15.1957 2.92893 17.0711C3.85752 17.9997 4.95991 18.7362 6.17317 19.2388C7.38642 19.7413 8.68678 20 10 20C12.6522 20 15.1957 18.9464 17.0711 17.0711C18.9464 15.1957 20 12.6522 20 10C20 8.68678 19.7413 7.38642 19.2388 6.17317C18.7362 4.95991 17.9997 3.85752 17.0711 2.92893C16.1425 2.00035 15.0401 1.26375 13.8268 0.761205C12.6136 0.258658 11.3132 0 10 0Z" fill="#49454F"/>
</svg>
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M15.9 15.39C15.64 14.59 14.89 14 14 14H13V11C13 10.7348 12.8946 10.4804 12.7071 10.2929C12.5196 10.1054 12.2652 10 12 10H6V8H8C8.26522 8 8.51957 7.89464 8.70711 7.70711C8.89464 7.51957 9 7.26522 9 7V5H11C11.5304 5 12.0391 4.78929 12.4142 4.41421C12.7893 4.03914 13 3.53043 13 3V2.59C15.93 3.77 18 6.64 18 10C18 12.08 17.2 13.97 15.9 15.39ZM9 17.93C5.05 17.44 2 14.08 2 10C2 9.38 2.08 8.78 2.21 8.21L7 13V14C7 14.5304 7.21071 15.0391 7.58579 15.4142C7.96086 15.7893 8.46957 16 9 16M10 0C8.68678 0 7.38642 0.258658 6.17317 0.761205C4.95991 1.26375 3.85752 2.00035 2.92893 2.92893C1.05357 4.8043 0 7.34784 0 10C0 12.6522 1.05357 15.1957 2.92893 17.0711C3.85752 17.9997 4.95991 18.7362 6.17317 19.2388C7.38642 19.7413 8.68678 20 10 20C12.6522 20 15.1957 18.9464 17.0711 17.0711C18.9464 15.1957 20 12.6522 20 10C20 8.68678 19.7413 7.38642 19.2388 6.17317C18.7362 4.95991 17.9997 3.85752 17.0711 2.92893C16.1425 2.00035 15.0401 1.26375 13.8268 0.761205C12.6136 0.258658 11.3132 0 10 0Z" fill="#49454F"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1,3 +1,3 @@
<svg width="19" height="15" viewBox="0 0 19 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4.5 0.5H18.5V2.5H4.5V0.5ZM4.5 8.5V6.5H18.5V8.5H4.5ZM1.5 0C1.89782 0 2.27936 0.158035 2.56066 0.43934C2.84196 0.720644 3 1.10218 3 1.5C3 1.89782 2.84196 2.27936 2.56066 2.56066C2.27936 2.84196 1.89782 3 1.5 3C1.10218 3 0.720644 2.84196 0.43934 2.56066C0.158035 2.27936 0 1.89782 0 1.5C0 1.10218 0.158035 0.720644 0.43934 0.43934C0.720644 0.158035 1.10218 0 1.5 0ZM1.5 6C1.89782 6 2.27936 6.15804 2.56066 6.43934C2.84196 6.72064 3 7.10218 3 7.5C3 7.89782 2.84196 8.27936 2.56066 8.56066C2.27936 8.84196 1.89782 9 1.5 9C1.10218 9 0.720644 8.84196 0.43934 8.56066C0.158035 8.27936 0 7.89782 0 7.5C0 7.10218 0.158035 6.72064 0.43934 6.43934C0.720644 6.15804 1.10218 6 1.5 6ZM4.5 14.5V12.5H18.5V14.5H4.5ZM1.5 12C1.89782 12 2.27936 12.158 2.56066 12.4393C2.84196 12.7206 3 13.1022 3 13.5C3 13.8978 2.84196 14.2794 2.56066 14.5607C2.27936 14.842 1.89782 15 1.5 15C1.10218 15 0.720644 14.842 0.43934 14.5607C0.158035 14.2794 0 13.8978 0 13.5C0 13.1022 0.158035 12.7206 0.43934 12.4393C0.720644 12.158 1.10218 12 1.5 12Z" fill="#49454F"/>
</svg>
<svg width="19" height="15" viewBox="0 0 19 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4.5 0.5H18.5V2.5H4.5V0.5ZM4.5 8.5V6.5H18.5V8.5H4.5ZM1.5 0C1.89782 0 2.27936 0.158035 2.56066 0.43934C2.84196 0.720644 3 1.10218 3 1.5C3 1.89782 2.84196 2.27936 2.56066 2.56066C2.27936 2.84196 1.89782 3 1.5 3C1.10218 3 0.720644 2.84196 0.43934 2.56066C0.158035 2.27936 0 1.89782 0 1.5C0 1.10218 0.158035 0.720644 0.43934 0.43934C0.720644 0.158035 1.10218 0 1.5 0ZM1.5 6C1.89782 6 2.27936 6.15804 2.56066 6.43934C2.84196 6.72064 3 7.10218 3 7.5C3 7.89782 2.84196 8.27936 2.56066 8.56066C2.27936 8.84196 1.89782 9 1.5 9C1.10218 9 0.720644 8.84196 0.43934 8.56066C0.158035 8.27936 0 7.89782 0 7.5C0 7.10218 0.158035 6.72064 0.43934 6.43934C0.720644 6.15804 1.10218 6 1.5 6ZM4.5 14.5V12.5H18.5V14.5H4.5ZM1.5 12C1.89782 12 2.27936 12.158 2.56066 12.4393C2.84196 12.7206 3 13.1022 3 13.5C3 13.8978 2.84196 14.2794 2.56066 14.5607C2.27936 14.842 1.89782 15 1.5 15C1.10218 15 0.720644 14.842 0.43934 14.5607C0.158035 14.2794 0 13.8978 0 13.5C0 13.1022 0.158035 12.7206 0.43934 12.4393C0.720644 12.158 1.10218 12 1.5 12Z" fill="#49454F"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1,4 +1,4 @@
{
"preview-theme": "androidx.compose.material3.MaterialTheme",
"ambient-translations-path": "app/src/main/ui-package-resources/style-mappings/m3_design_kit.json"
{
"preview-theme": "androidx.compose.material3.MaterialTheme",
"ambient-translations-path": "app/src/main/ui-package-resources/style-mappings/m3_design_kit.json"
}

View File

@ -1,3 +1,3 @@
<svg width="16" height="20" viewBox="0 0 16 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 17V15H2V8C2 6.61667 2.41667 5.39167 3.25 4.325C4.08333 3.24167 5.16667 2.53333 6.5 2.2V1.5C6.5 1.08333 6.64167 0.733333 6.925 0.449999C7.225 0.15 7.58333 0 8 0C8.41667 0 8.76667 0.15 9.05 0.449999C9.35 0.733333 9.5 1.08333 9.5 1.5V2.2C10.8333 2.53333 11.9167 3.24167 12.75 4.325C13.5833 5.39167 14 6.61667 14 8V15H16V17H0ZM8 20C7.45 20 6.975 19.8083 6.575 19.425C6.19167 19.025 6 18.55 6 18H10C10 18.55 9.8 19.025 9.4 19.425C9.01667 19.8083 8.55 20 8 20ZM4 15H12V8C12 6.9 11.6083 5.95833 10.825 5.175C10.0417 4.39167 9.1 4 8 4C6.9 4 5.95833 4.39167 5.175 5.175C4.39167 5.95833 4 6.9 4 8V15Z" fill="#49454F"/>
</svg>
<svg width="16" height="20" viewBox="0 0 16 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 17V15H2V8C2 6.61667 2.41667 5.39167 3.25 4.325C4.08333 3.24167 5.16667 2.53333 6.5 2.2V1.5C6.5 1.08333 6.64167 0.733333 6.925 0.449999C7.225 0.15 7.58333 0 8 0C8.41667 0 8.76667 0.15 9.05 0.449999C9.35 0.733333 9.5 1.08333 9.5 1.5V2.2C10.8333 2.53333 11.9167 3.24167 12.75 4.325C13.5833 5.39167 14 6.61667 14 8V15H16V17H0ZM8 20C7.45 20 6.975 19.8083 6.575 19.425C6.19167 19.025 6 18.55 6 18H10C10 18.55 9.8 19.025 9.4 19.425C9.01667 19.8083 8.55 20 8 20ZM4 15H12V8C12 6.9 11.6083 5.95833 10.825 5.175C10.0417 4.39167 9.1 4 8 4C6.9 4 5.95833 4.39167 5.175 5.175C4.39167 5.95833 4 6.9 4 8V15Z" fill="#49454F"/>
</svg>

Before

Width:  |  Height:  |  Size: 724 B

After

Width:  |  Height:  |  Size: 727 B

View File

@ -1,3 +1,3 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M9.72933 6C10.7902 6 11.8076 6.42143 12.5578 7.17157C13.3079 7.92172 13.7293 8.93913 13.7293 10C13.7293 11.0609 13.3079 12.0783 12.5578 12.8284C11.8076 13.5786 10.7902 14 9.72933 14C8.66847 14 7.65105 13.5786 6.9009 12.8284C6.15076 12.0783 5.72933 11.0609 5.72933 10C5.72933 8.93913 6.15076 7.92172 6.9009 7.17157C7.65105 6.42143 8.66847 6 9.72933 6ZM9.72933 8C9.1989 8 8.69019 8.21071 8.31512 8.58579C7.94005 8.96086 7.72933 9.46957 7.72933 10C7.72933 10.5304 7.94005 11.0391 8.31512 11.4142C8.69019 11.7893 9.1989 12 9.72933 12C10.2598 12 10.7685 11.7893 11.1435 11.4142C11.5186 11.0391 11.7293 10.5304 11.7293 10C11.7293 9.46957 11.5186 8.96086 11.1435 8.58579C10.7685 8.21071 10.2598 8 9.72933 8ZM7.72933 20C7.47933 20 7.26933 19.82 7.22933 19.58L6.85933 16.93C6.22933 16.68 5.68933 16.34 5.16933 15.94L2.67933 16.95C2.45933 17.03 2.18933 16.95 2.06933 16.73L0.0693316 13.27C-0.0606684 13.05 -0.000668302 12.78 0.189332 12.63L2.29933 10.97L2.22933 10L2.29933 9L0.189332 7.37C-0.000668302 7.22 -0.0606684 6.95 0.0693316 6.73L2.06933 3.27C2.18933 3.05 2.45933 2.96 2.67933 3.05L5.16933 4.05C5.68933 3.66 6.22933 3.32 6.85933 3.07L7.22933 0.42C7.26933 0.18 7.47933 0 7.72933 0H11.7293C11.9793 0 12.1893 0.18 12.2293 0.42L12.5993 3.07C13.2293 3.32 13.7693 3.66 14.2893 4.05L16.7793 3.05C16.9993 2.96 17.2693 3.05 17.3893 3.27L19.3893 6.73C19.5193 6.95 19.4593 7.22 19.2693 7.37L17.1593 9L17.2293 10L17.1593 11L19.2693 12.63C19.4593 12.78 19.5193 13.05 19.3893 13.27L17.3893 16.73C17.2693 16.95 16.9993 17.04 16.7793 16.95L14.2893 15.95C13.7693 16.34 13.2293 16.68 12.5993 16.93L12.2293 19.58C12.1893 19.82 11.9793 20 11.7293 20H7.72933ZM8.97933 2L8.60933 4.61C7.40933 4.86 6.34933 5.5 5.57933 6.39L3.16933 5.35L2.41933 6.65L4.52933 8.2C4.12933 9.37 4.12933 10.64 4.52933 11.8L2.40933 13.36L3.15933 14.66L5.58933 13.62C6.35933 14.5 7.40933 15.14 8.59933 15.38L8.96933 18H10.4893L10.8593 15.39C12.0493 15.14 13.0993 14.5 13.8693 13.62L16.2993 14.66L17.0493 13.36L14.9293 11.81C15.3293 10.64 15.3293 9.37 14.9293 8.2L17.0393 6.65L16.2893 5.35L13.8793 6.39C13.1093 5.5 12.0493 4.86 10.8493 4.62L10.4793 2H8.97933Z" fill="#49454F"/>
</svg>
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M9.72933 6C10.7902 6 11.8076 6.42143 12.5578 7.17157C13.3079 7.92172 13.7293 8.93913 13.7293 10C13.7293 11.0609 13.3079 12.0783 12.5578 12.8284C11.8076 13.5786 10.7902 14 9.72933 14C8.66847 14 7.65105 13.5786 6.9009 12.8284C6.15076 12.0783 5.72933 11.0609 5.72933 10C5.72933 8.93913 6.15076 7.92172 6.9009 7.17157C7.65105 6.42143 8.66847 6 9.72933 6ZM9.72933 8C9.1989 8 8.69019 8.21071 8.31512 8.58579C7.94005 8.96086 7.72933 9.46957 7.72933 10C7.72933 10.5304 7.94005 11.0391 8.31512 11.4142C8.69019 11.7893 9.1989 12 9.72933 12C10.2598 12 10.7685 11.7893 11.1435 11.4142C11.5186 11.0391 11.7293 10.5304 11.7293 10C11.7293 9.46957 11.5186 8.96086 11.1435 8.58579C10.7685 8.21071 10.2598 8 9.72933 8ZM7.72933 20C7.47933 20 7.26933 19.82 7.22933 19.58L6.85933 16.93C6.22933 16.68 5.68933 16.34 5.16933 15.94L2.67933 16.95C2.45933 17.03 2.18933 16.95 2.06933 16.73L0.0693316 13.27C-0.0606684 13.05 -0.000668302 12.78 0.189332 12.63L2.29933 10.97L2.22933 10L2.29933 9L0.189332 7.37C-0.000668302 7.22 -0.0606684 6.95 0.0693316 6.73L2.06933 3.27C2.18933 3.05 2.45933 2.96 2.67933 3.05L5.16933 4.05C5.68933 3.66 6.22933 3.32 6.85933 3.07L7.22933 0.42C7.26933 0.18 7.47933 0 7.72933 0H11.7293C11.9793 0 12.1893 0.18 12.2293 0.42L12.5993 3.07C13.2293 3.32 13.7693 3.66 14.2893 4.05L16.7793 3.05C16.9993 2.96 17.2693 3.05 17.3893 3.27L19.3893 6.73C19.5193 6.95 19.4593 7.22 19.2693 7.37L17.1593 9L17.2293 10L17.1593 11L19.2693 12.63C19.4593 12.78 19.5193 13.05 19.3893 13.27L17.3893 16.73C17.2693 16.95 16.9993 17.04 16.7793 16.95L14.2893 15.95C13.7693 16.34 13.2293 16.68 12.5993 16.93L12.2293 19.58C12.1893 19.82 11.9793 20 11.7293 20H7.72933ZM8.97933 2L8.60933 4.61C7.40933 4.86 6.34933 5.5 5.57933 6.39L3.16933 5.35L2.41933 6.65L4.52933 8.2C4.12933 9.37 4.12933 10.64 4.52933 11.8L2.40933 13.36L3.15933 14.66L5.58933 13.62C6.35933 14.5 7.40933 15.14 8.59933 15.38L8.96933 18H10.4893L10.8593 15.39C12.0493 15.14 13.0993 14.5 13.8693 13.62L16.2993 14.66L17.0493 13.36L14.9293 11.81C15.3293 10.64 15.3293 9.37 14.9293 8.2L17.0393 6.65L16.2893 5.35L13.8793 6.39C13.1093 5.5 12.0493 4.86 10.8493 4.62L10.4793 2H8.97933Z" fill="#49454F"/>
</svg>

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -1,457 +1,457 @@
{
"name": "top_app_bar",
"version": 33,
"source-key": {
"type": "figma",
"file": "7RzB5mC9Qj82hGEbAM11GM",
"node": "71:3",
"version": "2205685389783780702",
"component-id": "be1e47a9eb28efdd3c5b0590ec33e84c60626aa5"
},
"default": "Top app bar",
"design": {
"atoms": [
{
"type": "group",
"id": "top_level",
"root": "true"
},
{
"type": "group",
"id": "Title"
},
{
"type": "group",
"id": "Buttons"
},
{
"type": "text",
"id": "LifeMap title"
},
{
"type": "text",
"id": "subtitle"
},
{
"type": "group",
"id": "Notifications icon"
},
{
"type": "group",
"id": "Settings icon"
},
{
"type": "group",
"id": "container"
},
{
"type": "group",
"id": "state-layer"
},
{
"type": "group",
"id": "Icon"
},
{
"type": "vector",
"id": "icon"
},
{
"type": "group",
"id": "container1"
},
{
"type": "group",
"id": "state-layer1"
},
{
"type": "group",
"id": "Icon1"
},
{
"type": "vector",
"id": "icon1"
}
],
"modes": {
"Top app bar": {
"rules": [
{
"id": "top_level",
"padding": {
"left": 20.0,
"top": 55.0,
"right": 20.0,
"bottom": 20.0
},
"size-constraints": {
"width-constraints": {
"sizing-mode": "proportional",
"value": 1.0
},
"height-constraints": {
"sizing-mode": "shrink"
}
},
"stroke-alignment": "center",
"arrangement": "row",
"main-axis-align": "space-between",
"children": [
"Title",
"Buttons"
],
"background-color": {
"alpha": 1.0,
"hue": 0.0,
"saturation": 0.0,
"value": 0.9215686274509803
},
"clip-content": false
},
{
"id": "Title",
"size-constraints": {
"width-constraints": {
"sizing-mode": "shrink"
},
"height-constraints": {
"sizing-mode": "shrink"
}
},
"cross-axis-align": "start",
"children": [
"LifeMap title",
"subtitle"
],
"item-spacing": -1.0,
"clip-content": false
},
{
"id": "Buttons",
"size-constraints": {
"width-constraints": {
"sizing-mode": "shrink"
},
"height-constraints": {
"sizing-mode": "shrink"
}
},
"arrangement": "row",
"main-axis-align": "start",
"children": [
"Notifications icon",
"Settings icon"
],
"clip-content": false
},
{
"id": "LifeMap title",
"font-weight": "^md.sys.typescale.title-large.weight",
"color": "^md.sys.color.on-surface",
"annotated-text-content": {
"text": "LifeMap",
"annotated-text-span-list": [
{
"span-start": 0,
"span-length": 7,
"annotated-text-style": {
"font-weight": 700.0,
"text-size": 22.0,
"letter-spacing": 0.0,
"line-height": 1.272727279663086,
"typeface": "Roboto"
}
}
]
},
"overflow": "visible",
"text-align": "left",
"text-size": "^md.sys.typescale.title-large.size",
"letter-spacing": "^md.sys.typescale.title-large.tracking",
"line-height": "^md.sys.typescale.title-large.line-height",
"typeface": "^md.sys.typescale.title-large.font"
},
{
"id": "subtitle",
"font-weight": "^md.sys.typescale.label-medium.weight",
"color": "^md.sys.color.on-surface",
"text-content": "Personal life events",
"overflow": "visible",
"text-align": "left",
"text-size": "^md.sys.typescale.label-medium.size",
"letter-spacing": "^md.sys.typescale.label-medium.tracking",
"line-height": "^md.sys.typescale.label-medium.line-height",
"typeface": "^md.sys.typescale.label-medium.font"
},
{
"id": "Notifications icon",
"tap-handler": "$on notifications icon tapped",
"size-constraints": {
"width-constraints": {
"sizing-mode": "fixed",
"value": 32.0
},
"height-constraints": {
"sizing-mode": "fixed",
"value": 32.0
}
},
"children": [
"container"
],
"item-spacing": 10.0,
"clip-content": false
},
{
"id": "Settings icon",
"tap-handler": "$on settings icon tapped",
"size-constraints": {
"width-constraints": {
"sizing-mode": "fixed",
"value": 32.0
},
"height-constraints": {
"sizing-mode": "fixed",
"value": 32.0
}
},
"children": [
"container1"
],
"item-spacing": 10.0,
"clip-content": false
},
{
"id": "container",
"border-radius": 100.0,
"size-constraints": {
"width-constraints": {
"sizing-mode": "shrink"
},
"height-constraints": {
"sizing-mode": "shrink"
}
},
"arrangement": "row",
"children": [
"state-layer"
],
"item-spacing": 10.0
},
{
"id": "state-layer",
"padding": 8.0,
"size-constraints": {
"width-constraints": {
"sizing-mode": "shrink"
},
"height-constraints": {
"sizing-mode": "shrink"
}
},
"arrangement": "row",
"children": [
"Icon"
],
"item-spacing": 10.0,
"clip-content": false
},
{
"id": "Icon",
"size-constraints": {
"width-constraints": {
"sizing-mode": "fixed",
"value": 24.0
},
"height-constraints": {
"sizing-mode": "fixed",
"value": 24.0
}
},
"is-structured": false,
"children": [
"icon"
]
},
{
"id": "icon",
"margin": {
"left": 4.0,
"top": 2.0,
"right": 4.0,
"bottom": 2.0
},
"size-constraints": {
"width-constraints": {
"sizing-mode": "proportional",
"value": 1.0
},
"height-constraints": {
"sizing-mode": "proportional",
"value": 1.0
}
},
"vector-content": "icon.svg"
},
{
"id": "container1",
"border-radius": 100.0,
"size-constraints": {
"width-constraints": {
"sizing-mode": "shrink"
},
"height-constraints": {
"sizing-mode": "shrink"
}
},
"arrangement": "row",
"children": [
"state-layer1"
],
"item-spacing": 10.0
},
{
"id": "state-layer1",
"padding": 8.0,
"size-constraints": {
"width-constraints": {
"sizing-mode": "shrink"
},
"height-constraints": {
"sizing-mode": "shrink"
}
},
"arrangement": "row",
"children": [
"Icon1"
],
"item-spacing": 10.0,
"clip-content": false
},
{
"id": "Icon1",
"size-constraints": {
"width-constraints": {
"sizing-mode": "fixed",
"value": 24.0
},
"height-constraints": {
"sizing-mode": "fixed",
"value": 24.0
}
},
"is-structured": false,
"children": [
"icon1"
]
},
{
"id": "icon1",
"margin": {
"left": 2.270660400390625,
"top": 2.0,
"right": 2.2706756591796875,
"bottom": 2.0
},
"size-constraints": {
"width-constraints": {
"sizing-mode": "proportional",
"value": 1.0
},
"height-constraints": {
"sizing-mode": "proportional",
"value": 1.0
}
},
"vector-content": "icon1.svg"
}
]
}
}
},
"parameters": {
"on notifications icon tapped": {
"data-type": "void-callback",
"required": false,
"description": ""
},
"on settings icon tapped": {
"data-type": "void-callback",
"required": false,
"description": ""
}
},
"ambients": {
"md.sys.color.on-surface": {
"data-type": "color",
"description": null
},
"md.sys.typescale.title-large.font": {
"data-type": "typeface",
"description": null
},
"md.sys.typescale.title-large.weight": {
"data-type": "double",
"description": null
},
"md.sys.typescale.title-large.size": {
"data-type": "double",
"description": null
},
"md.sys.typescale.title-large.tracking": {
"data-type": "double",
"description": null
},
"md.sys.typescale.title-large.line-height": {
"data-type": "double",
"description": null
},
"md.sys.typescale.label-medium.font": {
"data-type": "typeface",
"description": null
},
"md.sys.typescale.label-medium.weight": {
"data-type": "double",
"description": null
},
"md.sys.typescale.label-medium.size": {
"data-type": "double",
"description": null
},
"md.sys.typescale.label-medium.tracking": {
"data-type": "double",
"description": null
},
"md.sys.typescale.label-medium.line-height": {
"data-type": "double",
"description": null
}
},
"previews": [
{
"design": "Top app bar",
"size": {
"width": 375.0,
"height": 118.0
},
"ambients": {
"md.sys.color.on-surface": {
"alpha": 1.0,
"hue": 264.0,
"saturation": 0.15625,
"value": 0.12549019607843137
},
"md.sys.typescale.title-large.weight": 400.0,
"md.sys.typescale.title-large.size": 22.0,
"md.sys.typescale.title-large.line-height": 1.272727279663086,
"md.sys.typescale.label-medium.weight": 500.0,
"md.sys.typescale.label-medium.size": 12.0,
"md.sys.typescale.label-medium.tracking": 0.5,
"md.sys.typescale.label-medium.line-height": 1.3333332824707032
}
}
],
"adin-component-search-paths": [],
"image-search-paths": [],
"vector-search-paths": []
{
"name": "top_app_bar",
"version": 33,
"source-key": {
"type": "figma",
"file": "7RzB5mC9Qj82hGEbAM11GM",
"node": "71:3",
"version": "2205685389783780702",
"component-id": "be1e47a9eb28efdd3c5b0590ec33e84c60626aa5"
},
"default": "Top app bar",
"design": {
"atoms": [
{
"type": "group",
"id": "top_level",
"root": "true"
},
{
"type": "group",
"id": "Title"
},
{
"type": "group",
"id": "Buttons"
},
{
"type": "text",
"id": "LifeMap title"
},
{
"type": "text",
"id": "subtitle"
},
{
"type": "group",
"id": "Notifications icon"
},
{
"type": "group",
"id": "Settings icon"
},
{
"type": "group",
"id": "container"
},
{
"type": "group",
"id": "state-layer"
},
{
"type": "group",
"id": "Icon"
},
{
"type": "vector",
"id": "icon"
},
{
"type": "group",
"id": "container1"
},
{
"type": "group",
"id": "state-layer1"
},
{
"type": "group",
"id": "Icon1"
},
{
"type": "vector",
"id": "icon1"
}
],
"modes": {
"Top app bar": {
"rules": [
{
"id": "top_level",
"padding": {
"left": 20.0,
"top": 55.0,
"right": 20.0,
"bottom": 20.0
},
"size-constraints": {
"width-constraints": {
"sizing-mode": "proportional",
"value": 1.0
},
"height-constraints": {
"sizing-mode": "shrink"
}
},
"stroke-alignment": "center",
"arrangement": "row",
"main-axis-align": "space-between",
"children": [
"Title",
"Buttons"
],
"background-color": {
"alpha": 1.0,
"hue": 0.0,
"saturation": 0.0,
"value": 0.9215686274509803
},
"clip-content": false
},
{
"id": "Title",
"size-constraints": {
"width-constraints": {
"sizing-mode": "shrink"
},
"height-constraints": {
"sizing-mode": "shrink"
}
},
"cross-axis-align": "start",
"children": [
"LifeMap title",
"subtitle"
],
"item-spacing": -1.0,
"clip-content": false
},
{
"id": "Buttons",
"size-constraints": {
"width-constraints": {
"sizing-mode": "shrink"
},
"height-constraints": {
"sizing-mode": "shrink"
}
},
"arrangement": "row",
"main-axis-align": "start",
"children": [
"Notifications icon",
"Settings icon"
],
"clip-content": false
},
{
"id": "LifeMap title",
"font-weight": "^md.sys.typescale.title-large.weight",
"color": "^md.sys.color.on-surface",
"annotated-text-content": {
"text": "LifeMap",
"annotated-text-span-list": [
{
"span-start": 0,
"span-length": 7,
"annotated-text-style": {
"font-weight": 700.0,
"text-size": 22.0,
"letter-spacing": 0.0,
"line-height": 1.272727279663086,
"typeface": "Roboto"
}
}
]
},
"overflow": "visible",
"text-align": "left",
"text-size": "^md.sys.typescale.title-large.size",
"letter-spacing": "^md.sys.typescale.title-large.tracking",
"line-height": "^md.sys.typescale.title-large.line-height",
"typeface": "^md.sys.typescale.title-large.font"
},
{
"id": "subtitle",
"font-weight": "^md.sys.typescale.label-medium.weight",
"color": "^md.sys.color.on-surface",
"text-content": "Personal life events",
"overflow": "visible",
"text-align": "left",
"text-size": "^md.sys.typescale.label-medium.size",
"letter-spacing": "^md.sys.typescale.label-medium.tracking",
"line-height": "^md.sys.typescale.label-medium.line-height",
"typeface": "^md.sys.typescale.label-medium.font"
},
{
"id": "Notifications icon",
"tap-handler": "$on notifications icon tapped",
"size-constraints": {
"width-constraints": {
"sizing-mode": "fixed",
"value": 32.0
},
"height-constraints": {
"sizing-mode": "fixed",
"value": 32.0
}
},
"children": [
"container"
],
"item-spacing": 10.0,
"clip-content": false
},
{
"id": "Settings icon",
"tap-handler": "$on settings icon tapped",
"size-constraints": {
"width-constraints": {
"sizing-mode": "fixed",
"value": 32.0
},
"height-constraints": {
"sizing-mode": "fixed",
"value": 32.0
}
},
"children": [
"container1"
],
"item-spacing": 10.0,
"clip-content": false
},
{
"id": "container",
"border-radius": 100.0,
"size-constraints": {
"width-constraints": {
"sizing-mode": "shrink"
},
"height-constraints": {
"sizing-mode": "shrink"
}
},
"arrangement": "row",
"children": [
"state-layer"
],
"item-spacing": 10.0
},
{
"id": "state-layer",
"padding": 8.0,
"size-constraints": {
"width-constraints": {
"sizing-mode": "shrink"
},
"height-constraints": {
"sizing-mode": "shrink"
}
},
"arrangement": "row",
"children": [
"Icon"
],
"item-spacing": 10.0,
"clip-content": false
},
{
"id": "Icon",
"size-constraints": {
"width-constraints": {
"sizing-mode": "fixed",
"value": 24.0
},
"height-constraints": {
"sizing-mode": "fixed",
"value": 24.0
}
},
"is-structured": false,
"children": [
"icon"
]
},
{
"id": "icon",
"margin": {
"left": 4.0,
"top": 2.0,
"right": 4.0,
"bottom": 2.0
},
"size-constraints": {
"width-constraints": {
"sizing-mode": "proportional",
"value": 1.0
},
"height-constraints": {
"sizing-mode": "proportional",
"value": 1.0
}
},
"vector-content": "icon.svg"
},
{
"id": "container1",
"border-radius": 100.0,
"size-constraints": {
"width-constraints": {
"sizing-mode": "shrink"
},
"height-constraints": {
"sizing-mode": "shrink"
}
},
"arrangement": "row",
"children": [
"state-layer1"
],
"item-spacing": 10.0
},
{
"id": "state-layer1",
"padding": 8.0,
"size-constraints": {
"width-constraints": {
"sizing-mode": "shrink"
},
"height-constraints": {
"sizing-mode": "shrink"
}
},
"arrangement": "row",
"children": [
"Icon1"
],
"item-spacing": 10.0,
"clip-content": false
},
{
"id": "Icon1",
"size-constraints": {
"width-constraints": {
"sizing-mode": "fixed",
"value": 24.0
},
"height-constraints": {
"sizing-mode": "fixed",
"value": 24.0
}
},
"is-structured": false,
"children": [
"icon1"
]
},
{
"id": "icon1",
"margin": {
"left": 2.270660400390625,
"top": 2.0,
"right": 2.2706756591796875,
"bottom": 2.0
},
"size-constraints": {
"width-constraints": {
"sizing-mode": "proportional",
"value": 1.0
},
"height-constraints": {
"sizing-mode": "proportional",
"value": 1.0
}
},
"vector-content": "icon1.svg"
}
]
}
}
},
"parameters": {
"on notifications icon tapped": {
"data-type": "void-callback",
"required": false,
"description": ""
},
"on settings icon tapped": {
"data-type": "void-callback",
"required": false,
"description": ""
}
},
"ambients": {
"md.sys.color.on-surface": {
"data-type": "color",
"description": null
},
"md.sys.typescale.title-large.font": {
"data-type": "typeface",
"description": null
},
"md.sys.typescale.title-large.weight": {
"data-type": "double",
"description": null
},
"md.sys.typescale.title-large.size": {
"data-type": "double",
"description": null
},
"md.sys.typescale.title-large.tracking": {
"data-type": "double",
"description": null
},
"md.sys.typescale.title-large.line-height": {
"data-type": "double",
"description": null
},
"md.sys.typescale.label-medium.font": {
"data-type": "typeface",
"description": null
},
"md.sys.typescale.label-medium.weight": {
"data-type": "double",
"description": null
},
"md.sys.typescale.label-medium.size": {
"data-type": "double",
"description": null
},
"md.sys.typescale.label-medium.tracking": {
"data-type": "double",
"description": null
},
"md.sys.typescale.label-medium.line-height": {
"data-type": "double",
"description": null
}
},
"previews": [
{
"design": "Top app bar",
"size": {
"width": 375.0,
"height": 118.0
},
"ambients": {
"md.sys.color.on-surface": {
"alpha": 1.0,
"hue": 264.0,
"saturation": 0.15625,
"value": 0.12549019607843137
},
"md.sys.typescale.title-large.weight": 400.0,
"md.sys.typescale.title-large.size": 22.0,
"md.sys.typescale.title-large.line-height": 1.272727279663086,
"md.sys.typescale.label-medium.weight": 500.0,
"md.sys.typescale.label-medium.size": 12.0,
"md.sys.typescale.label-medium.tracking": 0.5,
"md.sys.typescale.label-medium.line-height": 1.3333332824707032
}
}
],
"adin-component-search-paths": [],
"image-search-paths": [],
"vector-search-paths": []
}

View File

@ -1,34 +1,34 @@
[versions]
agp = "8.9.1"
kotlin = "2.0.21"
coreKtx = "1.10.1"
junit = "4.13.2"
junitVersion = "1.1.5"
espressoCore = "3.5.1"
lifecycleRuntimeKtx = "2.6.1"
activityCompose = "1.8.0"
composeBom = "2024.09.00"
navigationCompose = "2.8.9"
[libraries]
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
junit = { group = "junit", name = "junit", version.ref = "junit" }
androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" }
androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycleRuntimeKtx" }
androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activityCompose" }
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" }
androidx-ui = { group = "androidx.compose.ui", name = "ui" }
androidx-ui-graphics = { group = "androidx.compose.ui", name = "ui-graphics" }
androidx-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" }
androidx-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" }
androidx-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" }
androidx-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4" }
androidx-material3 = { group = "androidx.compose.material3", name = "material3" }
androidx-navigation-compose = { group = "androidx.navigation", name = "navigation-compose", version.ref = "navigationCompose" }
[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
[versions]
agp = "8.9.1"
kotlin = "2.0.21"
coreKtx = "1.10.1"
junit = "4.13.2"
junitVersion = "1.1.5"
espressoCore = "3.5.1"
lifecycleRuntimeKtx = "2.6.1"
activityCompose = "1.8.0"
composeBom = "2024.09.00"
navigationCompose = "2.8.9"
[libraries]
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
junit = { group = "junit", name = "junit", version.ref = "junit" }
androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" }
androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycleRuntimeKtx" }
androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activityCompose" }
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" }
androidx-ui = { group = "androidx.compose.ui", name = "ui" }
androidx-ui-graphics = { group = "androidx.compose.ui", name = "ui-graphics" }
androidx-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" }
androidx-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" }
androidx-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" }
androidx-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4" }
androidx-material3 = { group = "androidx.compose.material3", name = "material3" }
androidx-navigation-compose = { group = "androidx.navigation", name = "navigation-compose", version.ref = "navigationCompose" }
[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }

370
gradlew vendored
View File

@ -1,185 +1,185 @@
#!/usr/bin/env sh
#
# Copyright 2015 the original author or authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
warn () {
echo "$*"
}
die () {
echo
echo "$*"
echo
exit 1
}
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
NONSTOP* )
nonstop=true
;;
esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ] ; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin or MSYS, switch paths to Windows format before running java
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=`expr $i + 1`
done
case $i in
0) set -- ;;
1) set -- "$args0" ;;
2) set -- "$args0" "$args1" ;;
3) set -- "$args0" "$args1" "$args2" ;;
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
# Escape application args
save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
APP_ARGS=`save "$@"`
# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
exec "$JAVACMD" "$@"
#!/usr/bin/env sh
#
# Copyright 2015 the original author or authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
warn () {
echo "$*"
}
die () {
echo
echo "$*"
echo
exit 1
}
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
NONSTOP* )
nonstop=true
;;
esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ] ; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin or MSYS, switch paths to Windows format before running java
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=`expr $i + 1`
done
case $i in
0) set -- ;;
1) set -- "$args0" ;;
2) set -- "$args0" "$args1" ;;
3) set -- "$args0" "$args1" "$args2" ;;
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
# Escape application args
save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
APP_ARGS=`save "$@"`
# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
exec "$JAVACMD" "$@"