From ac3ee9abbd23bebf8c5497e1cdcc62f19f33c91b Mon Sep 17 00:00:00 2001 From: Fabio Date: Fri, 11 Apr 2025 11:11:59 +0200 Subject: [PATCH] Added top bar --- .../java/com/f1rq/lifemap/MainActivity.kt | 19 + .../java/com/f1rq/lifemap/screens/MapView.kt | 2 + .../lifemap/screens/NotificationsScreen.kt | 18 + .../f1rq/lifemap/screens/SettingsScreen.kt | 18 + .../main/ui-packages/add_event/VERSION.txt | 1 + .../main/ui-packages/add_event/add_event.json | 360 ++++++++++++++ .../add_event/add_event_preview.png | Bin 0 -> 6936 bytes .../main/ui-packages/add_event/config.json | 4 + app/src/main/ui-packages/add_event/icon.svg | 3 + .../navigation_bar/navigation_bar.json | 2 +- .../main/ui-packages/top_app_bar/FONTS.txt | 1 + .../main/ui-packages/top_app_bar/VERSION.txt | 1 + .../main/ui-packages/top_app_bar/config.json | 4 + app/src/main/ui-packages/top_app_bar/icon.svg | 3 + .../main/ui-packages/top_app_bar/icon1.svg | 3 + .../ui-packages/top_app_bar/top_app_bar.json | 457 ++++++++++++++++++ .../top_app_bar/top_app_bar_preview.png | Bin 0 -> 4798 bytes 17 files changed, 895 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/com/f1rq/lifemap/screens/NotificationsScreen.kt create mode 100644 app/src/main/java/com/f1rq/lifemap/screens/SettingsScreen.kt create mode 100644 app/src/main/ui-packages/add_event/VERSION.txt create mode 100644 app/src/main/ui-packages/add_event/add_event.json create mode 100644 app/src/main/ui-packages/add_event/add_event_preview.png create mode 100644 app/src/main/ui-packages/add_event/config.json create mode 100644 app/src/main/ui-packages/add_event/icon.svg create mode 100644 app/src/main/ui-packages/top_app_bar/FONTS.txt create mode 100644 app/src/main/ui-packages/top_app_bar/VERSION.txt create mode 100644 app/src/main/ui-packages/top_app_bar/config.json create mode 100644 app/src/main/ui-packages/top_app_bar/icon.svg create mode 100644 app/src/main/ui-packages/top_app_bar/icon1.svg create mode 100644 app/src/main/ui-packages/top_app_bar/top_app_bar.json create mode 100644 app/src/main/ui-packages/top_app_bar/top_app_bar_preview.png diff --git a/app/src/main/java/com/f1rq/lifemap/MainActivity.kt b/app/src/main/java/com/f1rq/lifemap/MainActivity.kt index 24c1d7c..39066d7 100644 --- a/app/src/main/java/com/f1rq/lifemap/MainActivity.kt +++ b/app/src/main/java/com/f1rq/lifemap/MainActivity.kt @@ -3,18 +3,29 @@ package com.f1rq.lifemap import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.wrapContentHeight +import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Scaffold import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.draw.shadow import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable import androidx.navigation.compose.currentBackStackEntryAsState import androidx.navigation.compose.rememberNavController import com.f1rq.lifemap.navigationbar.NavigationBar +import com.f1rq.lifemap.topappbar.TopAppBar 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 @@ -27,6 +38,12 @@ class MainActivity : ComponentActivity() { val navController = rememberNavController() Scaffold( + topBar = { + TopAppBar( + onSettingsIconTapped = { navController.navigate("settings")}, + onNotificationsIconTapped = { navController.navigate("notifications")} + ) + }, bottomBar = { val navBackStackEntry = navController.currentBackStackEntryAsState() val currentRoute = navBackStackEntry.value?.destination?.route @@ -46,6 +63,8 @@ class MainActivity : ComponentActivity() { ) { composable("mapview") { MapView(Modifier) } composable("listview") { ListView(Modifier) } + composable("settings") { SettingsScreen(Modifier)} + composable("notifications") { NotificationsScreen(Modifier)} } } } diff --git a/app/src/main/java/com/f1rq/lifemap/screens/MapView.kt b/app/src/main/java/com/f1rq/lifemap/screens/MapView.kt index 343bd02..3efd0b0 100644 --- a/app/src/main/java/com/f1rq/lifemap/screens/MapView.kt +++ b/app/src/main/java/com/f1rq/lifemap/screens/MapView.kt @@ -6,6 +6,7 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import com.f1rq.lifemap.addevent.AddEvent @Composable fun MapView(modifier: Modifier = Modifier) { @@ -13,6 +14,7 @@ fun MapView(modifier: Modifier = Modifier) { modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center ) { + AddEvent() Text("Map view") } } \ No newline at end of file diff --git a/app/src/main/java/com/f1rq/lifemap/screens/NotificationsScreen.kt b/app/src/main/java/com/f1rq/lifemap/screens/NotificationsScreen.kt new file mode 100644 index 0000000..e10557e --- /dev/null +++ b/app/src/main/java/com/f1rq/lifemap/screens/NotificationsScreen.kt @@ -0,0 +1,18 @@ +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 + +@Composable +fun NotificationsScreen(modifier: Modifier = Modifier) { + Box( + modifier = Modifier.fillMaxSize(), + contentAlignment = Alignment.Center + ) { + Text("Notifications") + } +} \ No newline at end of file diff --git a/app/src/main/java/com/f1rq/lifemap/screens/SettingsScreen.kt b/app/src/main/java/com/f1rq/lifemap/screens/SettingsScreen.kt new file mode 100644 index 0000000..8c6b282 --- /dev/null +++ b/app/src/main/java/com/f1rq/lifemap/screens/SettingsScreen.kt @@ -0,0 +1,18 @@ +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 + +@Composable +fun SettingsScreen(modifier: Modifier = Modifier) { + Box( + modifier = Modifier.fillMaxSize(), + contentAlignment = Alignment.Center + ) { + Text("Settings screen") + } +} \ No newline at end of file diff --git a/app/src/main/ui-packages/add_event/VERSION.txt b/app/src/main/ui-packages/add_event/VERSION.txt new file mode 100644 index 0000000..a487dd1 --- /dev/null +++ b/app/src/main/ui-packages/add_event/VERSION.txt @@ -0,0 +1 @@ +0.3.12 \ No newline at end of file diff --git a/app/src/main/ui-packages/add_event/add_event.json b/app/src/main/ui-packages/add_event/add_event.json new file mode 100644 index 0000000..a23c724 --- /dev/null +++ b/app/src/main/ui-packages/add_event/add_event.json @@ -0,0 +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": [] +} \ No newline at end of file diff --git a/app/src/main/ui-packages/add_event/add_event_preview.png b/app/src/main/ui-packages/add_event/add_event_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..6bbbc9c027a9e961df619c5739c5af5ab48d6ea8 GIT binary patch literal 6936 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 eS~cW#?VkWAlbAq!CM$ga0000 + + diff --git a/app/src/main/ui-packages/navigation_bar/navigation_bar.json b/app/src/main/ui-packages/navigation_bar/navigation_bar.json index 733df75..0adb41b 100644 --- a/app/src/main/ui-packages/navigation_bar/navigation_bar.json +++ b/app/src/main/ui-packages/navigation_bar/navigation_bar.json @@ -5,7 +5,7 @@ "type": "figma", "file": "7RzB5mC9Qj82hGEbAM11GM", "node": "38:3", - "version": "2205486309991144776", + "version": "2205685389783780702", "component-id": "915162a5cdf4f7f91ace42d239b4d1faf0d5c6e7" }, "default": "Navigation bar", diff --git a/app/src/main/ui-packages/top_app_bar/FONTS.txt b/app/src/main/ui-packages/top_app_bar/FONTS.txt new file mode 100644 index 0000000..86bbcc4 --- /dev/null +++ b/app/src/main/ui-packages/top_app_bar/FONTS.txt @@ -0,0 +1 @@ +Roboto \ No newline at end of file diff --git a/app/src/main/ui-packages/top_app_bar/VERSION.txt b/app/src/main/ui-packages/top_app_bar/VERSION.txt new file mode 100644 index 0000000..a487dd1 --- /dev/null +++ b/app/src/main/ui-packages/top_app_bar/VERSION.txt @@ -0,0 +1 @@ +0.3.12 \ No newline at end of file diff --git a/app/src/main/ui-packages/top_app_bar/config.json b/app/src/main/ui-packages/top_app_bar/config.json new file mode 100644 index 0000000..dfafd61 --- /dev/null +++ b/app/src/main/ui-packages/top_app_bar/config.json @@ -0,0 +1,4 @@ +{ + "preview-theme": "androidx.compose.material3.MaterialTheme", + "ambient-translations-path": "app/src/main/ui-package-resources/style-mappings/m3_design_kit.json" +} \ No newline at end of file diff --git a/app/src/main/ui-packages/top_app_bar/icon.svg b/app/src/main/ui-packages/top_app_bar/icon.svg new file mode 100644 index 0000000..fc358a8 --- /dev/null +++ b/app/src/main/ui-packages/top_app_bar/icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/app/src/main/ui-packages/top_app_bar/icon1.svg b/app/src/main/ui-packages/top_app_bar/icon1.svg new file mode 100644 index 0000000..176fd23 --- /dev/null +++ b/app/src/main/ui-packages/top_app_bar/icon1.svg @@ -0,0 +1,3 @@ + + + diff --git a/app/src/main/ui-packages/top_app_bar/top_app_bar.json b/app/src/main/ui-packages/top_app_bar/top_app_bar.json new file mode 100644 index 0000000..72094ef --- /dev/null +++ b/app/src/main/ui-packages/top_app_bar/top_app_bar.json @@ -0,0 +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": [] +} \ No newline at end of file diff --git a/app/src/main/ui-packages/top_app_bar/top_app_bar_preview.png b/app/src/main/ui-packages/top_app_bar/top_app_bar_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..508ea9dbdc35f9cd243ef04bb35b06dd1155a8e5 GIT binary patch literal 4798 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 literal 0 HcmV?d00001