Upgrade compose-material3 to 1.2.0-alpha05 version (#1011)

Co-authored-by: ElementBot <benoitm+elementbot@element.io>

Also upgrade compileSdk to 34.
This commit is contained in:
Jorge Martin Espinosa 2023-08-17 14:20:54 +02:00 committed by GitHub
parent 814c8edc4f
commit e3cfbc113b
791 changed files with 1657 additions and 1578 deletions

View file

@ -1,4 +1,6 @@
import com.google.devtools.ksp.gradle.KspTask
import kotlinx.kover.api.KoverTaskExtension import kotlinx.kover.api.KoverTaskExtension
import org.apache.tools.ant.taskdefs.optional.ReplaceRegExp
import org.jetbrains.kotlin.cli.common.toBooleanLenient import org.jetbrains.kotlin.cli.common.toBooleanLenient
buildscript { buildscript {
@ -343,3 +345,21 @@ subprojects {
tasks.findByName("recordPaparazziDebug")?.dependsOn(removeOldScreenshotsTask) tasks.findByName("recordPaparazziDebug")?.dependsOn(removeOldScreenshotsTask)
tasks.findByName("recordPaparazziRelease")?.dependsOn(removeOldScreenshotsTask) tasks.findByName("recordPaparazziRelease")?.dependsOn(removeOldScreenshotsTask)
} }
// Workaround for https://github.com/airbnb/Showkase/issues/335
subprojects {
tasks.withType<KspTask>() {
doLast {
fileTree(buildDir).apply { include("**/*ShowkaseExtension*.kt") }.files.forEach { file ->
ReplaceRegExp().apply {
setMatch("public fun Showkase.getMetadata")
setReplace("@Suppress(\"DEPRECATION\") public fun Showkase.getMetadata")
setFlags("g")
setByLine(true)
setFile(file)
execute()
}
}
}
}
}

View file

@ -22,7 +22,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
import io.element.android.libraries.designsystem.components.avatar.AvatarSize import io.element.android.libraries.designsystem.components.avatar.AvatarSize
import io.element.android.libraries.designsystem.preview.ElementThemedPreview import io.element.android.libraries.designsystem.preview.ElementThemedPreview
import io.element.android.libraries.designsystem.theme.components.Divider import io.element.android.libraries.designsystem.theme.components.HorizontalDivider
import io.element.android.libraries.matrix.ui.components.CheckableMatrixUserRow import io.element.android.libraries.matrix.ui.components.CheckableMatrixUserRow
import io.element.android.libraries.matrix.ui.components.CheckableUnresolvedUserRow import io.element.android.libraries.matrix.ui.components.CheckableUnresolvedUserRow
import io.element.android.libraries.matrix.ui.components.aMatrixUser import io.element.android.libraries.matrix.ui.components.aMatrixUser
@ -63,11 +63,11 @@ internal fun SearchMultipleUsersResultItemPreview() = ElementThemedPreview { Con
private fun ContentToPreview() { private fun ContentToPreview() {
Column { Column {
SearchMultipleUsersResultItem(searchResult = UserSearchResult(aMatrixUser(), isUnresolved = false), isUserSelected = false) SearchMultipleUsersResultItem(searchResult = UserSearchResult(aMatrixUser(), isUnresolved = false), isUserSelected = false)
Divider() HorizontalDivider()
SearchMultipleUsersResultItem(searchResult = UserSearchResult(aMatrixUser(), isUnresolved = false), isUserSelected = true) SearchMultipleUsersResultItem(searchResult = UserSearchResult(aMatrixUser(), isUnresolved = false), isUserSelected = true)
Divider() HorizontalDivider()
SearchMultipleUsersResultItem(searchResult = UserSearchResult(aMatrixUser(), isUnresolved = true), isUserSelected = false) SearchMultipleUsersResultItem(searchResult = UserSearchResult(aMatrixUser(), isUnresolved = true), isUserSelected = false)
Divider() HorizontalDivider()
SearchMultipleUsersResultItem(searchResult = UserSearchResult(aMatrixUser(), isUnresolved = true), isUserSelected = true) SearchMultipleUsersResultItem(searchResult = UserSearchResult(aMatrixUser(), isUnresolved = true), isUserSelected = true)
} }
} }

View file

@ -23,7 +23,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
import io.element.android.libraries.designsystem.components.avatar.AvatarSize import io.element.android.libraries.designsystem.components.avatar.AvatarSize
import io.element.android.libraries.designsystem.preview.ElementThemedPreview import io.element.android.libraries.designsystem.preview.ElementThemedPreview
import io.element.android.libraries.designsystem.theme.components.Divider import io.element.android.libraries.designsystem.theme.components.HorizontalDivider
import io.element.android.libraries.matrix.ui.components.MatrixUserRow import io.element.android.libraries.matrix.ui.components.MatrixUserRow
import io.element.android.libraries.matrix.ui.components.UnresolvedUserRow import io.element.android.libraries.matrix.ui.components.UnresolvedUserRow
import io.element.android.libraries.matrix.ui.components.aMatrixUser import io.element.android.libraries.matrix.ui.components.aMatrixUser
@ -59,7 +59,7 @@ internal fun SearchSingleUserResultItemPreview() = ElementThemedPreview { Conten
private fun ContentToPreview() { private fun ContentToPreview() {
Column { Column {
SearchSingleUserResultItem(searchResult = UserSearchResult(aMatrixUser(), isUnresolved = false)) SearchSingleUserResultItem(searchResult = UserSearchResult(aMatrixUser(), isUnresolved = false))
Divider() HorizontalDivider()
SearchSingleUserResultItem(searchResult = UserSearchResult(aMatrixUser(), isUnresolved = true)) SearchSingleUserResultItem(searchResult = UserSearchResult(aMatrixUser(), isUnresolved = true))
} }
} }

View file

@ -35,7 +35,7 @@ import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import io.element.android.libraries.designsystem.theme.components.Divider import io.element.android.libraries.designsystem.theme.components.HorizontalDivider
import io.element.android.libraries.designsystem.theme.components.SearchBar import io.element.android.libraries.designsystem.theme.components.SearchBar
import io.element.android.libraries.designsystem.theme.components.SearchBarResultState import io.element.android.libraries.designsystem.theme.components.SearchBarResultState
import io.element.android.libraries.matrix.api.user.MatrixUser import io.element.android.libraries.matrix.api.user.MatrixUser
@ -117,7 +117,7 @@ fun SearchUserBar(
} }
) )
if (index < users.lastIndex) { if (index < users.lastIndex) {
Divider() HorizontalDivider()
} }
} }
} else { } else {
@ -128,7 +128,7 @@ fun SearchUserBar(
onClick = { onUserSelected(searchResult.matrixUser) } onClick = { onUserSelected(searchResult.matrixUser) }
) )
if (index < users.lastIndex) { if (index < users.lastIndex) {
Divider() HorizontalDivider()
} }
} }
} }

View file

@ -43,7 +43,7 @@ import io.element.android.libraries.designsystem.components.dialogs.ErrorDialog
import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewDark
import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.preview.ElementPreviewLight
import io.element.android.libraries.designsystem.theme.aliasScreenTitle import io.element.android.libraries.designsystem.theme.aliasScreenTitle
import io.element.android.libraries.designsystem.theme.components.Divider import io.element.android.libraries.designsystem.theme.components.HorizontalDivider
import io.element.android.libraries.designsystem.theme.components.Scaffold import io.element.android.libraries.designsystem.theme.components.Scaffold
import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.designsystem.theme.components.TopAppBar import io.element.android.libraries.designsystem.theme.components.TopAppBar
@ -161,7 +161,7 @@ fun InviteListContent(
) )
if (index != state.inviteList.lastIndex) { if (index != state.inviteList.lastIndex) {
Divider() HorizontalDivider()
} }
} }
} }

View file

@ -38,7 +38,7 @@ import io.element.android.libraries.designsystem.atomic.atoms.RoundedIconAtom
import io.element.android.libraries.designsystem.atomic.atoms.RoundedIconAtomSize import io.element.android.libraries.designsystem.atomic.atoms.RoundedIconAtomSize
import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewDark
import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.preview.ElementPreviewLight
import io.element.android.libraries.designsystem.theme.components.Divider import io.element.android.libraries.designsystem.theme.components.HorizontalDivider
import io.element.android.libraries.designsystem.theme.components.Icon import io.element.android.libraries.designsystem.theme.components.Icon
import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.theme.ElementTheme import io.element.android.libraries.theme.ElementTheme
@ -55,7 +55,7 @@ fun AccountProviderView(
Column(modifier = modifier Column(modifier = modifier
.fillMaxWidth() .fillMaxWidth()
.clickable { onClick() }) { .clickable { onClick() }) {
Divider() HorizontalDivider()
Column( Column(
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()

View file

@ -74,7 +74,7 @@ import io.element.android.libraries.designsystem.components.avatar.AvatarSize
import io.element.android.libraries.designsystem.preview.DayNightPreviews import io.element.android.libraries.designsystem.preview.DayNightPreviews
import io.element.android.libraries.designsystem.preview.ElementPreview import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.text.toSp import io.element.android.libraries.designsystem.text.toSp
import io.element.android.libraries.designsystem.theme.components.Divider import io.element.android.libraries.designsystem.theme.components.HorizontalDivider
import io.element.android.libraries.designsystem.theme.components.Icon import io.element.android.libraries.designsystem.theme.components.Icon
import io.element.android.libraries.designsystem.theme.components.ModalBottomSheet import io.element.android.libraries.designsystem.theme.components.ModalBottomSheet
import io.element.android.libraries.designsystem.theme.components.hide import io.element.android.libraries.designsystem.theme.components.hide
@ -177,7 +177,7 @@ private fun SheetContent(
.padding(horizontal = 16.dp) .padding(horizontal = 16.dp)
) )
Spacer(modifier = Modifier.height(14.dp)) Spacer(modifier = Modifier.height(14.dp))
Divider() HorizontalDivider()
} }
} }
if (state.displayEmojiReactions) { if (state.displayEmojiReactions) {
@ -188,7 +188,7 @@ private fun SheetContent(
onCustomReactionClicked = onCustomReactionClicked, onCustomReactionClicked = onCustomReactionClicked,
modifier = Modifier.fillMaxWidth(), modifier = Modifier.fillMaxWidth(),
) )
Divider() HorizontalDivider()
} }
} }
items( items(

View file

@ -52,7 +52,7 @@ import io.element.android.libraries.designsystem.components.dialogs.ErrorDialogD
import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewDark
import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.preview.ElementPreviewLight
import io.element.android.libraries.designsystem.theme.aliasScreenTitle import io.element.android.libraries.designsystem.theme.aliasScreenTitle
import io.element.android.libraries.designsystem.theme.components.Divider import io.element.android.libraries.designsystem.theme.components.HorizontalDivider
import io.element.android.libraries.designsystem.theme.components.RadioButton import io.element.android.libraries.designsystem.theme.components.RadioButton
import io.element.android.libraries.designsystem.theme.components.Scaffold import io.element.android.libraries.designsystem.theme.components.Scaffold
import io.element.android.libraries.designsystem.theme.components.SearchBar import io.element.android.libraries.designsystem.theme.components.SearchBar
@ -161,7 +161,7 @@ fun ForwardMessagesView(
state.eventSink(ForwardMessagesEvents.SetSelectedRoom(roomSummary)) state.eventSink(ForwardMessagesEvents.SetSelectedRoom(roomSummary))
} }
) )
Divider(modifier = Modifier.fillMaxWidth()) HorizontalDivider(modifier = Modifier.fillMaxWidth())
} }
} }
} }
@ -186,7 +186,7 @@ fun ForwardMessagesView(
state.eventSink(ForwardMessagesEvents.SetSelectedRoom(roomSummary)) state.eventSink(ForwardMessagesEvents.SetSelectedRoom(roomSummary))
} }
) )
Divider(modifier = Modifier.fillMaxWidth()) HorizontalDivider(modifier = Modifier.fillMaxWidth())
} }
} }
} }

View file

@ -66,7 +66,7 @@ fun EmojiPicker(
val emojiProvider = remember { GoogleEmojiProvider() } val emojiProvider = remember { GoogleEmojiProvider() }
val categories = remember { emojiProvider.categories } val categories = remember { emojiProvider.categories }
val pagerState = rememberPagerState() val pagerState = rememberPagerState(pageCount = { emojiProvider.categories.size })
Column(modifier) { Column(modifier) {
TabRow( TabRow(
selectedTabIndex = pagerState.currentPage, selectedTabIndex = pagerState.currentPage,
@ -88,7 +88,6 @@ fun EmojiPicker(
} }
HorizontalPager( HorizontalPager(
pageCount = categories.size,
state = pagerState, state = pagerState,
modifier = Modifier.fillMaxWidth(), modifier = Modifier.fillMaxWidth(),
) { index -> ) { index ->

View file

@ -28,6 +28,7 @@ import androidx.compose.foundation.layout.widthIn
import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.ripple.rememberRipple import androidx.compose.material.ripple.rememberRipple
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.clip
@ -152,7 +153,7 @@ private fun ContentToPreview(state: BubbleState) {
) { ) {
MessageEventBubble( MessageEventBubble(
state = state, state = state,
interactionSource = MutableInteractionSource(), interactionSource = remember { MutableInteractionSource() },
) { ) {
// Render the state as a text to better understand the previews // Render the state as a text to better understand the previews
Box( Box(

View file

@ -26,6 +26,7 @@ import androidx.compose.foundation.layout.widthIn
import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.ripple.rememberRipple import androidx.compose.material.ripple.rememberRipple
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
@ -81,13 +82,13 @@ private fun ContentToPreview() {
Column { Column {
MessageStateEventContainer( MessageStateEventContainer(
isHighlighted = false, isHighlighted = false,
interactionSource = MutableInteractionSource(), interactionSource = remember { MutableInteractionSource() },
) { ) {
Spacer(modifier = Modifier.size(width = 120.dp, height = 32.dp)) Spacer(modifier = Modifier.size(width = 120.dp, height = 32.dp))
} }
MessageStateEventContainer( MessageStateEventContainer(
isHighlighted = true, isHighlighted = true,
interactionSource = MutableInteractionSource(), interactionSource = remember { MutableInteractionSource() },
) { ) {
Spacer(modifier = Modifier.size(width = 120.dp, height = 32.dp)) Spacer(modifier = Modifier.size(width = 120.dp, height = 32.dp))
} }

View file

@ -29,6 +29,7 @@ import androidx.compose.material.icons.filled.Error
import androidx.compose.material.ripple.rememberRipple import androidx.compose.material.ripple.rememberRipple
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
@ -63,7 +64,7 @@ fun TimelineEventTimestampView(
onClick = onClick, onClick = onClick,
onLongClick = onLongClick, onLongClick = onLongClick,
indication = rememberRipple(bounded = false), indication = rememberRipple(bounded = false),
interactionSource = MutableInteractionSource() interactionSource = remember { MutableInteractionSource() }
) )
} else { } else {
Modifier Modifier

View file

@ -125,7 +125,7 @@ internal fun TimelineItemTextViewDarkPreview(@PreviewParameter(TimelineItemTextB
fun ContentToPreview(content: TimelineItemTextBasedContent) { fun ContentToPreview(content: TimelineItemTextBasedContent) {
TimelineItemTextView( TimelineItemTextView(
content = content, content = content,
interactionSource = MutableInteractionSource(), interactionSource = remember { MutableInteractionSource() },
extraPadding = ExtraPadding(nbChars = 8), extraPadding = ExtraPadding(nbChars = 8),
) )
} }

View file

@ -29,6 +29,7 @@ import androidx.compose.material3.ColorScheme
import androidx.compose.material3.LocalTextStyle import androidx.compose.material3.LocalTextStyle
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.drawBehind import androidx.compose.ui.draw.drawBehind
import androidx.compose.ui.geometry.Offset import androidx.compose.ui.geometry.Offset
@ -599,5 +600,5 @@ internal fun HtmlDocumentDarkPreview(@PreviewParameter(DocumentProvider::class)
@Composable @Composable
private fun ContentToPreview(document: Document) { private fun ContentToPreview(document: Document) {
HtmlDocument(document, MutableInteractionSource()) HtmlDocument(document, remember { MutableInteractionSource() })
} }

View file

@ -107,7 +107,7 @@ private fun SheetContent(
summary.reactions.indexOfFirst { it.key == selectedReactionKey } summary.reactions.indexOfFirst { it.key == selectedReactionKey }
} }
} }
val pagerState = rememberPagerState(initialPage = selectedReactionIndex) val pagerState = rememberPagerState(initialPage = selectedReactionIndex, pageCount = { summary.reactions.size })
val reactionListState = rememberLazyListState() val reactionListState = rememberLazyListState()
LaunchedEffect(pagerState.currentPage) { LaunchedEffect(pagerState.currentPage) {
@ -123,7 +123,8 @@ private fun SheetContent(
.fillMaxWidth() .fillMaxWidth()
.fillMaxHeight() .fillMaxHeight()
) { ) {
LazyRow(state = reactionListState, LazyRow(
state = reactionListState,
horizontalArrangement = Arrangement.spacedBy(8.dp), horizontalArrangement = Arrangement.spacedBy(8.dp),
contentPadding = PaddingValues(start = 12.dp, end = 12.dp, bottom = 12.dp) contentPadding = PaddingValues(start = 12.dp, end = 12.dp, bottom = 12.dp)
) { ) {
@ -140,7 +141,7 @@ private fun SheetContent(
) )
} }
} }
HorizontalPager(state = pagerState, pageCount = summary.reactions.size) { page -> HorizontalPager(state = pagerState) { page ->
LazyColumn(modifier = Modifier.fillMaxHeight()) { LazyColumn(modifier = Modifier.fillMaxHeight()) {
items(summary.reactions[page].senders) { sender -> items(summary.reactions[page].senders) { sender ->

View file

@ -37,7 +37,7 @@ import io.element.android.libraries.designsystem.components.preferences.Preferen
import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewDark
import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.preview.ElementPreviewLight
import io.element.android.libraries.designsystem.preview.LargeHeightPreview import io.element.android.libraries.designsystem.preview.LargeHeightPreview
import io.element.android.libraries.designsystem.theme.components.Divider import io.element.android.libraries.designsystem.theme.components.HorizontalDivider
import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.designsystem.utils.SnackbarHost import io.element.android.libraries.designsystem.utils.SnackbarHost
import io.element.android.libraries.designsystem.utils.rememberSnackbarHostState import io.element.android.libraries.designsystem.utils.rememberSnackbarHostState
@ -73,7 +73,7 @@ fun PreferencesRootView(
icon = Icons.Outlined.VerifiedUser, icon = Icons.Outlined.VerifiedUser,
onClick = onVerifyClicked, onClick = onVerifyClicked,
) )
Divider() HorizontalDivider()
} }
if (state.showAnalyticsSettings) { if (state.showAnalyticsSettings) {
PreferenceText( PreferenceText(
@ -95,7 +95,7 @@ fun PreferencesRootView(
if (state.showDeveloperSettings) { if (state.showDeveloperSettings) {
DeveloperPreferencesView(onOpenDeveloperSettings) DeveloperPreferencesView(onOpenDeveloperSettings)
} }
Divider() HorizontalDivider()
LogoutPreferenceView( LogoutPreferenceView(
state = state.logoutState, state = state.logoutState,
) )

View file

@ -38,7 +38,7 @@ import io.element.android.libraries.designsystem.components.button.BackButton
import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewDark
import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.preview.ElementPreviewLight
import io.element.android.libraries.designsystem.theme.aliasScreenTitle import io.element.android.libraries.designsystem.theme.aliasScreenTitle
import io.element.android.libraries.designsystem.theme.components.Divider import io.element.android.libraries.designsystem.theme.components.HorizontalDivider
import io.element.android.libraries.designsystem.theme.components.Scaffold import io.element.android.libraries.designsystem.theme.components.Scaffold
import io.element.android.libraries.designsystem.theme.components.SearchBar import io.element.android.libraries.designsystem.theme.components.SearchBar
import io.element.android.libraries.designsystem.theme.components.SearchBarResultState import io.element.android.libraries.designsystem.theme.components.SearchBarResultState
@ -208,7 +208,7 @@ private fun RoomInviteMembersSearchBar(
} }
if (index < results.lastIndex) { if (index < results.lastIndex) {
Divider() HorizontalDivider()
} }
} }
} }

View file

@ -52,7 +52,7 @@ import io.element.android.features.roomlist.impl.model.RoomListRoomSummary
import io.element.android.features.roomlist.impl.search.RoomListSearchResultView import io.element.android.features.roomlist.impl.search.RoomListSearchResultView
import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewDark
import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.preview.ElementPreviewLight
import io.element.android.libraries.designsystem.theme.components.Divider import io.element.android.libraries.designsystem.theme.components.HorizontalDivider
import io.element.android.libraries.designsystem.theme.components.FloatingActionButton import io.element.android.libraries.designsystem.theme.components.FloatingActionButton
import io.element.android.libraries.designsystem.theme.components.Icon import io.element.android.libraries.designsystem.theme.components.Icon
import io.element.android.libraries.designsystem.theme.components.Scaffold import io.element.android.libraries.designsystem.theme.components.Scaffold
@ -207,7 +207,7 @@ fun RoomListContent(
onLongClick = onRoomLongClicked, onLongClick = onRoomLongClicked,
) )
if (index != state.roomList.lastIndex) { if (index != state.roomList.lastIndex) {
Divider() HorizontalDivider()
} }
} }
} }

View file

@ -56,3 +56,6 @@ android.experimental.enableTestFixtures=true
# Create BuildConfig files as bytecode to avoid Java compilation phase # Create BuildConfig files as bytecode to avoid Java compilation phase
android.enableBuildConfigAsBytecode=true android.enableBuildConfigAsBytecode=true
# This should be removed after upgrading to AGP 8.1.0
android.suppressUnsupportedCompileSdk=34

View file

@ -92,6 +92,7 @@ androidx_startup = { module = "androidx.startup:startup-runtime", version.ref =
androidx_preference = "androidx.preference:preference:1.2.0" androidx_preference = "androidx.preference:preference:1.2.0"
androidx_compose_bom = { group = "androidx.compose", name = "compose-bom", version.ref = "compose_bom" } androidx_compose_bom = { group = "androidx.compose", name = "compose-bom", version.ref = "compose_bom" }
androidx_compose_material3 = "androidx.compose.material3:material3:1.2.0-alpha05"
# Coroutines # Coroutines
coroutines_core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "coroutines" } coroutines_core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "coroutines" }

View file

@ -109,7 +109,7 @@ private fun ContentToPreview() {
linkAnnotationTag = "", linkAnnotationTag = "",
onClick = {}, onClick = {},
onLongClick = {}, onLongClick = {},
interactionSource = MutableInteractionSource(), interactionSource = remember { MutableInteractionSource() },
) )
} }

View file

@ -31,6 +31,7 @@ import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import coil.compose.AsyncImage import coil.compose.AsyncImage
import io.element.android.libraries.designsystem.preview.ElementThemedPreview import io.element.android.libraries.designsystem.preview.ElementThemedPreview
import io.element.android.libraries.designsystem.preview.PreviewGroup import io.element.android.libraries.designsystem.preview.PreviewGroup
@ -91,10 +92,14 @@ private fun InitialsAvatar(
Box( Box(
modifier.background(color = avatarColor), modifier.background(color = avatarColor),
) { ) {
val fontSize = avatarData.size.dp.toSp() / 2
val originalFont = ElementTheme.typography.fontBodyMdRegular
val ratio = fontSize.value / originalFont.fontSize.value
val lineHeight = originalFont.lineHeight * ratio
Text( Text(
modifier = Modifier.align(Alignment.Center), modifier = Modifier.align(Alignment.Center),
text = avatarData.initial, text = avatarData.initial,
style = ElementTheme.typography.fontBodyMdRegular.copy(fontSize = avatarData.size.dp.toSp() / 2), style = originalFont.copy(fontSize = fontSize, lineHeight = lineHeight, letterSpacing = 0.sp),
color = Color.White, color = Color.White,
) )
} }

View file

@ -30,6 +30,7 @@ import androidx.compose.material.ripple.rememberRipple
import androidx.compose.material3.LocalContentColor import androidx.compose.material3.LocalContentColor
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.graphics.vector.ImageVector
@ -51,7 +52,7 @@ fun MainActionButton(
contentDescription: String = title, contentDescription: String = title,
) { ) {
val ripple = rememberRipple(bounded = false) val ripple = rememberRipple(bounded = false)
val interactionSource = MutableInteractionSource() val interactionSource = remember { MutableInteractionSource() }
Column( Column(
modifier.clickable( modifier.clickable(
enabled = enabled, enabled = enabled,

View file

@ -21,14 +21,14 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
import io.element.android.libraries.designsystem.preview.ElementThemedPreview import io.element.android.libraries.designsystem.preview.ElementThemedPreview
import io.element.android.libraries.designsystem.preview.PreviewGroup import io.element.android.libraries.designsystem.preview.PreviewGroup
import io.element.android.libraries.designsystem.theme.components.Divider import io.element.android.libraries.designsystem.theme.components.HorizontalDivider
import io.element.android.libraries.theme.ElementTheme import io.element.android.libraries.theme.ElementTheme
@Composable @Composable
fun PreferenceDivider( fun PreferenceDivider(
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
) { ) {
Divider( HorizontalDivider(
modifier = modifier, modifier = modifier,
color = ElementTheme.colors.borderDisabled, color = ElementTheme.colors.borderDisabled,
) )

View file

@ -19,9 +19,13 @@ package io.element.android.libraries.designsystem.preview
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.SheetState import androidx.compose.material3.SheetState
import androidx.compose.material3.SheetValue import androidx.compose.material3.SheetValue
import androidx.compose.runtime.Composable
import androidx.compose.ui.platform.LocalDensity
@OptIn(ExperimentalMaterial3Api::class) @OptIn(ExperimentalMaterial3Api::class)
val sheetStateForPreview = SheetState( @Composable
fun sheetStateForPreview() = SheetState(
skipPartiallyExpanded = true, skipPartiallyExpanded = true,
initialValue = SheetValue.Expanded, initialValue = SheetValue.Expanded,
density = LocalDensity.current,
) )

View file

@ -90,7 +90,7 @@ private fun ContentToPreview() {
onClick = {}, onClick = {},
trailingIcon = { Icon(Icons.Default.ArrowRight, contentDescription = null) }, trailingIcon = { Icon(Icons.Default.ArrowRight, contentDescription = null) },
) )
Divider() HorizontalDivider()
DropdownMenuItem( DropdownMenuItem(
text = { Text(text = "Item") }, text = { Text(text = "Item") },
onClick = {}, onClick = {},
@ -109,7 +109,7 @@ private fun ContentToPreview() {
leadingIcon = { Icon(Icons.Default.BugReport, contentDescription = null) }, leadingIcon = { Icon(Icons.Default.BugReport, contentDescription = null) },
trailingIcon = { Icon(Icons.Default.ArrowRight, contentDescription = null) }, trailingIcon = { Icon(Icons.Default.ArrowRight, contentDescription = null) },
) )
Divider() HorizontalDivider()
DropdownMenuItem( DropdownMenuItem(
text = { Text(text = "Multiline\nItem") }, text = { Text(text = "Multiline\nItem") },
onClick = {}, onClick = {},

View file

@ -30,12 +30,12 @@ import io.element.android.libraries.designsystem.preview.ElementThemedPreview
import io.element.android.libraries.designsystem.preview.PreviewGroup import io.element.android.libraries.designsystem.preview.PreviewGroup
@Composable @Composable
fun Divider( fun HorizontalDivider(
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
thickness: Dp = ElementDividerDefaults.thickness, thickness: Dp = ElementDividerDefaults.thickness,
color: Color = DividerDefaults.color, color: Color = DividerDefaults.color,
) { ) {
androidx.compose.material3.Divider( androidx.compose.material3.HorizontalDivider(
modifier = modifier, modifier = modifier,
thickness = thickness, thickness = thickness,
color = color, color = color,
@ -48,7 +48,7 @@ object ElementDividerDefaults {
@Preview(group = PreviewGroup.Dividers) @Preview(group = PreviewGroup.Dividers)
@Composable @Composable
internal fun DividerPreview() = ElementThemedPreview { internal fun HorizontalDividerPreview() = ElementThemedPreview {
Box(Modifier.padding(vertical = 10.dp), contentAlignment = Alignment.Center) { Box(Modifier.padding(vertical = 10.dp), contentAlignment = Alignment.Center) {
ContentToPreview() ContentToPreview()
} }
@ -56,5 +56,5 @@ internal fun DividerPreview() = ElementThemedPreview {
@Composable @Composable
private fun ContentToPreview() { private fun ContentToPreview() {
Divider() HorizontalDivider()
} }

View file

@ -100,7 +100,7 @@ private fun ContentToPreview() {
) { ) {
ModalBottomSheet( ModalBottomSheet(
onDismissRequest = {}, onDismissRequest = {},
sheetState = sheetStateForPreview, sheetState = sheetStateForPreview(),
) { ) {
Text( Text(
text = "Sheet Content", text = "Sheet Content",

View file

@ -14,6 +14,9 @@
* limitations under the License. * limitations under the License.
*/ */
// This is actually expected, as we should remove this component soon and use ModalBottomSheet instead
@file:Suppress("UsingMaterialAndMaterial3Libraries")
package io.element.android.libraries.designsystem.theme.components package io.element.android.libraries.designsystem.theme.components
import androidx.compose.foundation.background import androidx.compose.foundation.background
@ -40,6 +43,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.Shape import androidx.compose.ui.graphics.Shape
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
@ -111,7 +115,7 @@ private fun ContentToPreview() {
ModalBottomSheetLayout( ModalBottomSheetLayout(
modifier = Modifier.height(140.dp), modifier = Modifier.height(140.dp),
displayHandle = true, displayHandle = true,
sheetState = ModalBottomSheetState(ModalBottomSheetValue.Expanded), sheetState = ModalBottomSheetState(ModalBottomSheetValue.Expanded, density = LocalDensity.current),
sheetContent = { sheetContent = {
Text(text = "Sheet Content", modifier = Modifier Text(text = "Sheet Content", modifier = Modifier
.padding(start = 16.dp, end = 16.dp, bottom = 20.dp) .padding(start = 16.dp, end = 16.dp, bottom = 20.dp)

View file

@ -62,7 +62,7 @@ fun <T> SearchBar(
showBackButton: Boolean = true, showBackButton: Boolean = true,
resultState: SearchBarResultState<T> = SearchBarResultState.NotSearching(), resultState: SearchBarResultState<T> = SearchBarResultState.NotSearching(),
shape: Shape = SearchBarDefaults.inputFieldShape, shape: Shape = SearchBarDefaults.inputFieldShape,
tonalElevation: Dp = SearchBarDefaults.Elevation, tonalElevation: Dp = SearchBarDefaults.TonalElevation,
windowInsets: WindowInsets = SearchBarDefaults.windowInsets, windowInsets: WindowInsets = SearchBarDefaults.windowInsets,
interactionSource: MutableInteractionSource = remember { MutableInteractionSource() }, interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },
inactiveColors: SearchBarColors = ElementSearchBarDefaults.inactiveColors(), inactiveColors: SearchBarColors = ElementSearchBarDefaults.inactiveColors(),

View file

@ -15,6 +15,7 @@
*/ */
@file:OptIn(ExperimentalMaterialApi::class) @file:OptIn(ExperimentalMaterialApi::class)
@file:Suppress("UsingMaterialAndMaterial3Libraries")
package io.element.android.libraries.matrix.ui.components package io.element.android.libraries.matrix.ui.components
@ -32,6 +33,7 @@ import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewDark
@ -124,7 +126,8 @@ private fun ContentToPreview() {
AvatarActionBottomSheet( AvatarActionBottomSheet(
actions = persistentListOf(AvatarAction.TakePhoto, AvatarAction.ChoosePhoto, AvatarAction.Remove), actions = persistentListOf(AvatarAction.TakePhoto, AvatarAction.ChoosePhoto, AvatarAction.Remove),
modalBottomSheetState = ModalBottomSheetState( modalBottomSheetState = ModalBottomSheetState(
initialValue = ModalBottomSheetValue.Expanded initialValue = ModalBottomSheetValue.Expanded,
density = LocalDensity.current,
), ),
) )
} }

View file

@ -41,7 +41,7 @@ import io.element.android.libraries.designsystem.components.avatar.AvatarData
import io.element.android.libraries.designsystem.components.avatar.AvatarSize import io.element.android.libraries.designsystem.components.avatar.AvatarSize
import io.element.android.libraries.designsystem.preview.ElementThemedPreview import io.element.android.libraries.designsystem.preview.ElementThemedPreview
import io.element.android.libraries.designsystem.theme.components.Checkbox import io.element.android.libraries.designsystem.theme.components.Checkbox
import io.element.android.libraries.designsystem.theme.components.Divider import io.element.android.libraries.designsystem.theme.components.HorizontalDivider
import io.element.android.libraries.designsystem.theme.components.Icon import io.element.android.libraries.designsystem.theme.components.Icon
import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.matrix.ui.model.getAvatarData import io.element.android.libraries.matrix.ui.model.getAvatarData
@ -149,11 +149,11 @@ internal fun CheckableUnresolvedUserRowPreview() =
val matrixUser = aMatrixUser() val matrixUser = aMatrixUser()
Column { Column {
CheckableUnresolvedUserRow(false, matrixUser.getAvatarData(AvatarSize.UserListItem), matrixUser.userId.value) CheckableUnresolvedUserRow(false, matrixUser.getAvatarData(AvatarSize.UserListItem), matrixUser.userId.value)
Divider() HorizontalDivider()
CheckableUnresolvedUserRow(true, matrixUser.getAvatarData(AvatarSize.UserListItem), matrixUser.userId.value) CheckableUnresolvedUserRow(true, matrixUser.getAvatarData(AvatarSize.UserListItem), matrixUser.userId.value)
Divider() HorizontalDivider()
CheckableUnresolvedUserRow(false, matrixUser.getAvatarData(AvatarSize.UserListItem), matrixUser.userId.value, enabled = false) CheckableUnresolvedUserRow(false, matrixUser.getAvatarData(AvatarSize.UserListItem), matrixUser.userId.value, enabled = false)
Divider() HorizontalDivider()
CheckableUnresolvedUserRow(true, matrixUser.getAvatarData(AvatarSize.UserListItem), matrixUser.userId.value, enabled = false) CheckableUnresolvedUserRow(true, matrixUser.getAvatarData(AvatarSize.UserListItem), matrixUser.userId.value, enabled = false)
} }
} }

View file

@ -49,6 +49,7 @@ import androidx.compose.material3.TextFieldDefaults
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableIntStateOf
import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue import androidx.compose.runtime.setValue
@ -114,8 +115,8 @@ fun TextComposer(
Spacer(modifier = Modifier.width(12.dp)) Spacer(modifier = Modifier.width(12.dp))
val roundCornerSmall = 20.dp.applyScaleUp() val roundCornerSmall = 20.dp.applyScaleUp()
val roundCornerLarge = 28.dp.applyScaleUp() val roundCornerLarge = 28.dp.applyScaleUp()
var lineCount by remember { mutableIntStateOf(0) }
var lineCount by remember { mutableStateOf(0) }
val roundedCornerSize = remember(lineCount, composerMode) { val roundedCornerSize = remember(lineCount, composerMode) {
if (lineCount > 1 || composerMode is MessageComposerMode.Special) { if (lineCount > 1 || composerMode is MessageComposerMode.Special) {
roundCornerSmall roundCornerSmall
@ -288,7 +289,7 @@ private fun EditingModeView(
.clickable( .clickable(
enabled = true, enabled = true,
onClick = onResetComposerMode, onClick = onResetComposerMode,
interactionSource = MutableInteractionSource(), interactionSource = remember { MutableInteractionSource() },
indication = rememberRipple(bounded = false) indication = rememberRipple(bounded = false)
), ),
) )
@ -351,7 +352,7 @@ private fun ReplyToModeView(
.clickable( .clickable(
enabled = true, enabled = true,
onClick = onResetComposerMode, onClick = onResetComposerMode,
interactionSource = MutableInteractionSource(), interactionSource = remember { MutableInteractionSource() },
indication = rememberRipple(bounded = false) indication = rememberRipple(bounded = false)
), ),
) )
@ -390,7 +391,7 @@ private fun BoxScope.SendButton(
composerMode: MessageComposerMode, composerMode: MessageComposerMode,
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
) { ) {
val interactionSource = MutableInteractionSource() val interactionSource = remember { MutableInteractionSource() }
Box( Box(
modifier = modifier modifier = modifier
.clip(CircleShape) .clip(CircleShape)

View file

@ -23,6 +23,8 @@ android {
namespace = "io.element.android.libraries.theme" namespace = "io.element.android.libraries.theme"
dependencies { dependencies {
api(libs.androidx.compose.material3)
ksp(libs.showkase.processor) ksp(libs.showkase.processor)
kspTest(libs.showkase.processor) kspTest(libs.showkase.processor)

View file

@ -74,7 +74,7 @@ object ElementTheme {
val materialTypography: Typography val materialTypography: Typography
@Composable @Composable
@ReadOnlyComposable @ReadOnlyComposable
get()= MaterialTheme.typography get() = MaterialTheme.typography
/** /**
* Returns whether the theme version used is the light or the dark one. * Returns whether the theme version used is the light or the dark one.

View file

@ -17,9 +17,11 @@
package io.element.android.libraries.theme.compound package io.element.android.libraries.theme.compound
import androidx.compose.material3.Typography import androidx.compose.material3.Typography
import androidx.compose.ui.text.PlatformTextStyle
import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.FontFamily import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.LineHeightStyle
import androidx.compose.ui.unit.em import androidx.compose.ui.unit.em
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import io.element.android.libraries.theme.compound.generated.TypographyTokens import io.element.android.libraries.theme.compound.generated.TypographyTokens
@ -41,6 +43,8 @@ internal val defaultHeadlineSmall = TextStyle(
lineHeight = 32.sp, lineHeight = 32.sp,
fontSize = 24.sp, fontSize = 24.sp,
letterSpacing = 0.em, letterSpacing = 0.em,
platformStyle = PlatformTextStyle(includeFontPadding = false),
lineHeightStyle = LineHeightStyle(LineHeightStyle.Alignment.Center, LineHeightStyle.Trim.None)
) )
// 22px (Material) vs 20px, it's the closest one // 22px (Material) vs 20px, it's the closest one

View file

@ -1,21 +1,7 @@
/*
* Copyright (c) 2023 New Vector Ltd
*
* 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
*
* http://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.
*/
// Do not edit directly // Do not edit directly
// Generated on Tue, 27 Jun 2023 13:31:52 GMT // Generated on Fri, 28 Jul 2023 10:11:16 GMT
@ -27,6 +13,8 @@ import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.unit.em import androidx.compose.ui.unit.em
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import androidx.compose.ui.text.PlatformTextStyle
import androidx.compose.ui.text.style.LineHeightStyle
object TypographyTokens { object TypographyTokens {
val fontBodyLgMedium = TextStyle( val fontBodyLgMedium = TextStyle(
@ -35,6 +23,8 @@ object TypographyTokens {
lineHeight = 22.sp, lineHeight = 22.sp,
fontSize = 16.sp, fontSize = 16.sp,
letterSpacing = 0.015629999999999998.em, letterSpacing = 0.015629999999999998.em,
platformStyle = PlatformTextStyle(includeFontPadding = false),
lineHeightStyle = LineHeightStyle(LineHeightStyle.Alignment.Center, LineHeightStyle.Trim.None)
) )
val fontBodyLgRegular = TextStyle( val fontBodyLgRegular = TextStyle(
fontFamily = FontFamily.Default, fontFamily = FontFamily.Default,
@ -42,6 +32,8 @@ object TypographyTokens {
lineHeight = 22.sp, lineHeight = 22.sp,
fontSize = 16.sp, fontSize = 16.sp,
letterSpacing = 0.015629999999999998.em, letterSpacing = 0.015629999999999998.em,
platformStyle = PlatformTextStyle(includeFontPadding = false),
lineHeightStyle = LineHeightStyle(LineHeightStyle.Alignment.Center, LineHeightStyle.Trim.None)
) )
val fontBodyMdMedium = TextStyle( val fontBodyMdMedium = TextStyle(
fontFamily = FontFamily.Default, fontFamily = FontFamily.Default,
@ -49,6 +41,8 @@ object TypographyTokens {
lineHeight = 20.sp, lineHeight = 20.sp,
fontSize = 14.sp, fontSize = 14.sp,
letterSpacing = 0.01786.em, letterSpacing = 0.01786.em,
platformStyle = PlatformTextStyle(includeFontPadding = false),
lineHeightStyle = LineHeightStyle(LineHeightStyle.Alignment.Center, LineHeightStyle.Trim.None)
) )
val fontBodyMdRegular = TextStyle( val fontBodyMdRegular = TextStyle(
fontFamily = FontFamily.Default, fontFamily = FontFamily.Default,
@ -56,6 +50,8 @@ object TypographyTokens {
lineHeight = 20.sp, lineHeight = 20.sp,
fontSize = 14.sp, fontSize = 14.sp,
letterSpacing = 0.01786.em, letterSpacing = 0.01786.em,
platformStyle = PlatformTextStyle(includeFontPadding = false),
lineHeightStyle = LineHeightStyle(LineHeightStyle.Alignment.Center, LineHeightStyle.Trim.None)
) )
val fontBodySmMedium = TextStyle( val fontBodySmMedium = TextStyle(
fontFamily = FontFamily.Default, fontFamily = FontFamily.Default,
@ -63,6 +59,8 @@ object TypographyTokens {
lineHeight = 17.sp, lineHeight = 17.sp,
fontSize = 12.sp, fontSize = 12.sp,
letterSpacing = 0.03333.em, letterSpacing = 0.03333.em,
platformStyle = PlatformTextStyle(includeFontPadding = false),
lineHeightStyle = LineHeightStyle(LineHeightStyle.Alignment.Center, LineHeightStyle.Trim.None)
) )
val fontBodySmRegular = TextStyle( val fontBodySmRegular = TextStyle(
fontFamily = FontFamily.Default, fontFamily = FontFamily.Default,
@ -70,6 +68,8 @@ object TypographyTokens {
lineHeight = 17.sp, lineHeight = 17.sp,
fontSize = 12.sp, fontSize = 12.sp,
letterSpacing = 0.03333.em, letterSpacing = 0.03333.em,
platformStyle = PlatformTextStyle(includeFontPadding = false),
lineHeightStyle = LineHeightStyle(LineHeightStyle.Alignment.Center, LineHeightStyle.Trim.None)
) )
val fontBodyXsMedium = TextStyle( val fontBodyXsMedium = TextStyle(
fontFamily = FontFamily.Default, fontFamily = FontFamily.Default,
@ -77,6 +77,8 @@ object TypographyTokens {
lineHeight = 15.sp, lineHeight = 15.sp,
fontSize = 11.sp, fontSize = 11.sp,
letterSpacing = 0.04545.em, letterSpacing = 0.04545.em,
platformStyle = PlatformTextStyle(includeFontPadding = false),
lineHeightStyle = LineHeightStyle(LineHeightStyle.Alignment.Center, LineHeightStyle.Trim.None)
) )
val fontBodyXsRegular = TextStyle( val fontBodyXsRegular = TextStyle(
fontFamily = FontFamily.Default, fontFamily = FontFamily.Default,
@ -84,6 +86,8 @@ object TypographyTokens {
lineHeight = 15.sp, lineHeight = 15.sp,
fontSize = 11.sp, fontSize = 11.sp,
letterSpacing = 0.04545.em, letterSpacing = 0.04545.em,
platformStyle = PlatformTextStyle(includeFontPadding = false),
lineHeightStyle = LineHeightStyle(LineHeightStyle.Alignment.Center, LineHeightStyle.Trim.None)
) )
val fontHeadingLgBold = TextStyle( val fontHeadingLgBold = TextStyle(
fontFamily = FontFamily.Default, fontFamily = FontFamily.Default,
@ -91,6 +95,8 @@ object TypographyTokens {
lineHeight = 34.sp, lineHeight = 34.sp,
fontSize = 28.sp, fontSize = 28.sp,
letterSpacing = 0.em, letterSpacing = 0.em,
platformStyle = PlatformTextStyle(includeFontPadding = false),
lineHeightStyle = LineHeightStyle(LineHeightStyle.Alignment.Center, LineHeightStyle.Trim.None)
) )
val fontHeadingLgRegular = TextStyle( val fontHeadingLgRegular = TextStyle(
fontFamily = FontFamily.Default, fontFamily = FontFamily.Default,
@ -98,6 +104,8 @@ object TypographyTokens {
lineHeight = 34.sp, lineHeight = 34.sp,
fontSize = 28.sp, fontSize = 28.sp,
letterSpacing = 0.em, letterSpacing = 0.em,
platformStyle = PlatformTextStyle(includeFontPadding = false),
lineHeightStyle = LineHeightStyle(LineHeightStyle.Alignment.Center, LineHeightStyle.Trim.None)
) )
val fontHeadingMdBold = TextStyle( val fontHeadingMdBold = TextStyle(
fontFamily = FontFamily.Default, fontFamily = FontFamily.Default,
@ -105,6 +113,8 @@ object TypographyTokens {
lineHeight = 27.sp, lineHeight = 27.sp,
fontSize = 22.sp, fontSize = 22.sp,
letterSpacing = 0.em, letterSpacing = 0.em,
platformStyle = PlatformTextStyle(includeFontPadding = false),
lineHeightStyle = LineHeightStyle(LineHeightStyle.Alignment.Center, LineHeightStyle.Trim.None)
) )
val fontHeadingMdRegular = TextStyle( val fontHeadingMdRegular = TextStyle(
fontFamily = FontFamily.Default, fontFamily = FontFamily.Default,
@ -112,6 +122,8 @@ object TypographyTokens {
lineHeight = 27.sp, lineHeight = 27.sp,
fontSize = 22.sp, fontSize = 22.sp,
letterSpacing = 0.em, letterSpacing = 0.em,
platformStyle = PlatformTextStyle(includeFontPadding = false),
lineHeightStyle = LineHeightStyle(LineHeightStyle.Alignment.Center, LineHeightStyle.Trim.None)
) )
val fontHeadingSmMedium = TextStyle( val fontHeadingSmMedium = TextStyle(
fontFamily = FontFamily.Default, fontFamily = FontFamily.Default,
@ -119,6 +131,8 @@ object TypographyTokens {
lineHeight = 25.sp, lineHeight = 25.sp,
fontSize = 20.sp, fontSize = 20.sp,
letterSpacing = 0.em, letterSpacing = 0.em,
platformStyle = PlatformTextStyle(includeFontPadding = false),
lineHeightStyle = LineHeightStyle(LineHeightStyle.Alignment.Center, LineHeightStyle.Trim.None)
) )
val fontHeadingSmRegular = TextStyle( val fontHeadingSmRegular = TextStyle(
fontFamily = FontFamily.Default, fontFamily = FontFamily.Default,
@ -126,6 +140,8 @@ object TypographyTokens {
lineHeight = 25.sp, lineHeight = 25.sp,
fontSize = 20.sp, fontSize = 20.sp,
letterSpacing = 0.em, letterSpacing = 0.em,
platformStyle = PlatformTextStyle(includeFontPadding = false),
lineHeightStyle = LineHeightStyle(LineHeightStyle.Alignment.Center, LineHeightStyle.Trim.None)
) )
val fontHeadingXlBold = TextStyle( val fontHeadingXlBold = TextStyle(
fontFamily = FontFamily.Default, fontFamily = FontFamily.Default,
@ -133,6 +149,8 @@ object TypographyTokens {
lineHeight = 41.sp, lineHeight = 41.sp,
fontSize = 34.sp, fontSize = 34.sp,
letterSpacing = 0.em, letterSpacing = 0.em,
platformStyle = PlatformTextStyle(includeFontPadding = false),
lineHeightStyle = LineHeightStyle(LineHeightStyle.Alignment.Center, LineHeightStyle.Trim.None)
) )
val fontHeadingXlRegular = TextStyle( val fontHeadingXlRegular = TextStyle(
fontFamily = FontFamily.Default, fontFamily = FontFamily.Default,
@ -140,5 +158,7 @@ object TypographyTokens {
lineHeight = 41.sp, lineHeight = 41.sp,
fontSize = 34.sp, fontSize = 34.sp,
letterSpacing = 0.em, letterSpacing = 0.em,
platformStyle = PlatformTextStyle(includeFontPadding = false),
lineHeightStyle = LineHeightStyle(LineHeightStyle.Alignment.Center, LineHeightStyle.Trim.None)
) )
} }

View file

@ -61,7 +61,7 @@ private const val versionPatch = 4
object Versions { object Versions {
val versionCode = 4_000_000 + versionMajor * 1_00_00 + versionMinor * 1_00 + versionPatch val versionCode = 4_000_000 + versionMajor * 1_00_00 + versionMinor * 1_00 + versionPatch
val versionName = "$versionMajor.$versionMinor.$versionPatch" val versionName = "$versionMajor.$versionMinor.$versionPatch"
const val compileSdk = 33 const val compileSdk = 34
const val targetSdk = 33 const val targetSdk = 33
const val minSdk = 23 const val minSdk = 23
val javaCompileVersion = JavaVersion.VERSION_17 val javaCompileVersion = JavaVersion.VERSION_17

View file

@ -45,6 +45,7 @@ fun CommonExtension<*, *, *, *>.androidConfig(project: Project) {
checkDependencies = true checkDependencies = true
abortOnError = true abortOnError = true
ignoreTestFixturesSources = true ignoreTestFixturesSources = true
checkGeneratedSources = false
} }
} }
@ -71,6 +72,7 @@ fun CommonExtension<*, *, *, *>.composeConfig(libs: LibrariesForLibs) {
// error.add("ComposableLambdaParameterNaming") // error.add("ComposableLambdaParameterNaming")
error.add("ComposableLambdaParameterPosition") error.add("ComposableLambdaParameterPosition")
ignoreTestFixturesSources = true ignoreTestFixturesSources = true
checkGeneratedSources = false
} }
} }

View file

@ -34,6 +34,7 @@ import androidx.compose.ui.platform.LocalLifecycleOwner
import androidx.compose.ui.unit.Density import androidx.compose.ui.unit.Density
import androidx.lifecycle.Lifecycle import androidx.lifecycle.Lifecycle
import app.cash.paparazzi.Paparazzi import app.cash.paparazzi.Paparazzi
import app.cash.paparazzi.detectEnvironment
import com.airbnb.android.showkase.models.Showkase import com.airbnb.android.showkase.models.Showkase
import com.android.ide.common.rendering.api.SessionParams import com.android.ide.common.rendering.api.SessionParams
import com.android.resources.NightMode import com.android.resources.NightMode
@ -70,6 +71,10 @@ class ScreenshotTest {
@get:Rule @get:Rule
val paparazzi = Paparazzi( val paparazzi = Paparazzi(
environment = detectEnvironment().run {
// Workaround to work with API 34 (https://github.com/cashapp/paparazzi/issues/1025)
copy(compileSdkVersion = 33, platformDir = platformDir.replace("34", "33"))
},
maxPercentDifference = 0.01, maxPercentDifference = 0.01,
renderingMode = SessionParams.RenderingMode.NORMAL, renderingMode = SessionParams.RenderingMode.NORMAL,
) )

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:e32421c7814394247655f198ae6466f3011478ab30019d15cb951be40e6b70ec oid sha256:34c1373d524046c3b9a68c2f91d1a5eafe73eaf31e625d1eb377f167b9a6a777
size 8190 size 8228

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:92811ffa031d8d61593e9040214ca45056a02d81f2de76c46c57606de05dcbb4 oid sha256:092bbab2db19b8b11c8a9d3d854f691b7fc802bc8f26ae7495f684902fbe65bb
size 8041 size 8020

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:6b3c972ef288022f40478133fa66c822d051e39b427d1f2cfd3434417c0f885f oid sha256:b16f369917dfe1435b6123a57aa3795d3e23ac541b4a38ffa50ee6be4b55886f
size 7229 size 7184

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:43eb2e8c816159ee75836569f8b3264acd5d0561fec70f5645e72c37604d6af3 oid sha256:e96047b21c6df61868b3b4ba7c220aff7f5dff4ecbd400643e753b626d7629c7
size 12480 size 12496

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:06a9e835c3c349bddaae22024457c66bbed7e425dbd289bba728c2c9cc8a1b91 oid sha256:21c294f747f99caa4828af16c3442b9bfe3060653defab076bae59925f154656
size 11763 size 11595

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:b285f487ae95f4bf599da529ef4cc13b861717722ea9349324446ab8ba6d0e4e oid sha256:5e7a76bb5fc2e81e513f492f492168acf8c35628c04f719a0173a88492d6c602
size 9973 size 10167

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:2b47ee31afffe2a6d12ddc3404f73662bb416d0299e170c8832db69e4fd22cfe oid sha256:e09d5ad389f099dfcc2fcb1e5ae775e4790ea2e527875539ff28919dc3e86026
size 7630 size 7506

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:cd0708db595e85815a474c9c67f12e826e24527a37bd19eb29d2a2e25480d935 oid sha256:b63be6149beaf712ff2a5ac11ecf226cc43ed2452bf9f0240a84eea81e0cb069
size 7416 size 7414

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:f1a99561c83e130159a788ef0b3966407d9762afd98f6039622a24b1db80361b oid sha256:227a5985812b4d7eff5ff5a5c64412a67e7b7c4306b9ffa13daf7a3d3a1d756b
size 6783 size 6935

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:3193b06fff17f1d0489569233578a71935f2d515748fe8aff22395f1ba39a847 oid sha256:82a4ba64d2cf5d870a3d2873549d7e7c92ebd7db2213f0905860cffe828c98b5
size 8646 size 8591

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:f37c0b5b314d68e49c0137d7142460ff9aba5a6301a447f45f77b813fb4d1b3b oid sha256:9cb12f37edba89c2eb07cf0f6431bf317fa79dd5fe2a4a387cc71bf8f001967a
size 8005 size 7987

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:058960a1b5b76cd6af96adf44cdba466ed4241632aa1ba700d6034159209ba21 oid sha256:1b2f22d0b3963a2bf18df60919ab52fc26a55e896f894b49462e01315f63fa3b
size 7242 size 7096

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:ee84ea7218ad52104a3f030d3daefa5174e122c511a8d7ab7515fb50e9eb8e01 oid sha256:00fe416a44e16ba4352e4f5d5b1384b8068bd5e775af2495c0ce0c48189c77f9
size 9580 size 9533

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:e2d3f6f72be52a27e0ce15f091a44d7796f91a10eb7dab54787631b2a6d33f74 oid sha256:2157254093863473fa5e86478e8f68d40f092af7d2280bef8c9dd475f50f694c
size 8220 size 8193

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:90b1daf3ab9e6377fa703ea1e13943eaf40e84ccbc61212d606a527759ff20a9 oid sha256:0f12f65bd54debdd46849ee2de58727cc5525df402e6467e641218184aa017c7
size 9689 size 9628

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:58a097099974131832bae557acf824154bb76fb34d309cb68bd2ae5e658d5371 oid sha256:6a5a759ada36389158202ec331ca097da81cf487dcfab639dc15018a5f5fc03c
size 8347 size 8229

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:3f18e74bfbebd69109f36a7154b20d3ee61071bff0d8ebf28f4b3b35c58e2938 oid sha256:2aa1c935d7edf22dec032f0939fcbab77db2993ca7e6a7f8659cbf4f765ea7e7
size 9256 size 9245

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:eea203b9527f7c3dc3692e7db3e9d5cee20ca08fddf04977c948933dc2784022 oid sha256:92f8e01bf645641bfc00bda9c4573374afa0312605028883697197df282b6435
size 11274 size 11338

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:b5c69ae7d27eb7024e9a2f9c7100b308562ef2fc702e28604098180cb02a3813 oid sha256:efc62a8981579a8d573449af5cb8f0cb83be9c38c750c3897e885bd5e71e8f3a
size 9645 size 9667

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:62149a4d9b0dd62ddb56e1cdb24fe401f189fda05d17dd16f8c0bc511eab6561 oid sha256:3ed4dc5ba331a1535248921013451dc05d0ecf40245f6a8fb2e4e6e226d015dc
size 11616 size 11870

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:862bbfc81d7c4ccc16e6d8d1db4f81306c0219b45b3630cd2f73dcabf0550b3b oid sha256:528d1efc10ed0d8bcfa7a1df2b85949a59561e69c3b7adb9172f529a8e10566e
size 26007 size 26046

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:32f331dd755437c67fd5251e3034b63d1e099f1032043b86b6f6f989680e390f oid sha256:81df1d3c22ca848182686e2a9dcc7ab4a9f06ac8707169561f735ac77a7f2c7e
size 28184 size 28185

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:250a6ae8cb93c781d570c40054f34b21832434f9a692adf637cf9e2560c6a09e oid sha256:6278291a4f82614b0c931b38c6c85044fc2ff45e05036eaeca2c27db1bc9239c
size 21538 size 21592

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:087d4e2355b7b64f930c8e4c149f565b77304ba0f62fc16ce0ff99696dc51b5e oid sha256:3e0ab2d4a281829f1d4a502c7e4ac78b96b3756c1fbbc2ac2eac5a4a72c68fb6
size 27966 size 27842

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:702d61eabe690c6b7a259d3773ed7e25011b0a8a99c7a1109930c2ea78b234a2 oid sha256:585dea08c8746f34287f221f04e9b30ecb0552d64eeea56c463cae42cf22eab0
size 30106 size 30074

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:85b0c428cf44532739245c8303cc2c86ab5e0c6ffc060871f1eef8e1bce9955b oid sha256:1252536f27f9cdb8f7626952b38f232ff0ae6f7b600d9cde9c17cf310c427981
size 23123 size 23256

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:940c3ac11da74a6eb734085c468050040c2d31056b6d8de516e49ddb0058c9ee oid sha256:a08d5ff1f91c0db7c502882815d36d6a675567ebf8c3eddc0ebff431e3592e67
size 23412 size 23390

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:97b9796def982afb2d5611db431489a2a42f80f11f949ea4aaab41fd01f87cb1 oid sha256:6a5300ac57d9d0137cf82af4ed4bd86c3ab7f3a70d2560954e524b7b3c120199
size 23478 size 23515

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:5fd66b90f0566317a48565be56e75496a7b156fc96354ea61a0cc0a7f036625a oid sha256:909b3ccdbc1a7cb8585c11acc088ee4f65cefb013d84b42433ccef7964cf6ff9
size 49329 size 49616

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:5b6dc784e88a7c9ef9d5812ee474e8cbc5cafc55dfd21adeb15d3ace99a41db0 oid sha256:e5bfb7ac9cffa2ef6057862d889c5fe2a520cc377fc02a72ff5f99f46953fb8a
size 50340 size 50784

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:7e62ff59a909d9fc8c255236756a6f7f9d7efbb85e222de92843251367e2f774 oid sha256:f4ea73eabf37a9fd4534c182036dc83c4d44c0fffcfff63ca960426af5f20726
size 14150 size 14222

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:a3b008e2364af89731ba0431b7a97998452aa4d0ab7b25cb3d5130737b017a9e oid sha256:208bb2b2743d33d15741f502329ac9ed67eb73c0556c14803edf33eafeadbc06
size 28525 size 28586

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:92a09f9c5915b444e92853809d6d42b0b2b76152f9fa58a1ac9856b15ee15373 oid sha256:2e82e6e9f3463f449cb8f1eec4b2fe12ce60c9245f6b4adc79967e1accce2af4
size 15222 size 15285

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:d5ac056ba00dd474b08e1a1de0886c5e6989c12ea97a106e379fff9394aa5b90 oid sha256:abc707d2ec2e23878e78126063ea31c5eaa93559d2803fba5cf453e4a02a01bb
size 29263 size 29293

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:7b42afece0186cbbcb9ca5b716c3c535147d27bf1c57cabf033339fe9100edeb oid sha256:e9db229841f668f3a6333a21a84d5d7d9379dfa5aa4513c1cdb9a117ff5fcfac
size 33889 size 34089

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:248817743f94c09d5bb02580687f5d9150dcf22b1670289955197491f375ad65 oid sha256:5a7dffd1d10d39574e767925b0cce138cbe2b7ee6212cc722474583e46adf8f1
size 35640 size 35929

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:a4f987d8b03013d3aacbcc2b5a7374148c29d2c24dc41211781db15a06f3d52a oid sha256:013b3e67d39a895fb391b82a633d85bc5e372e2b209854dcda9a72db0c243812
size 86365 size 86646

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:0eadad4490c76da04073c25dffff74a2fe5a6a0dd7612f9c5a61a631a54edd77 oid sha256:1a72958cbdae4807f345d98501420e8f6ac1409ac534f8434341df4c3e53cd5e
size 45613 size 45342

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:9c1e29ad621b3056562c71ff8b28b898b5aa972899a4ebeaef7fdd835ec128c4 oid sha256:737c044b958a49d0f8ce8512e54ea1e5f2abb07ef315c620f8db5b56acd78769
size 10308 size 10319

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:e7642a1adb1faec60a301ee86bb34558ea71d15f4fbd3d5ddd5d1661249b725a oid sha256:f66d2db6c718056a13f463f0f0f62321250222039c234d267d788351a051ed4d
size 25759 size 25777

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:ed3be9611781a6f7ae4ed7c2793f76f52c02d0893dba5cbdba97d651c909edef oid sha256:be08f781bae5096983b331377f16236193edfb5cad0e34f4d23a0e84ba15965a
size 8593 size 8628

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:7ce0a9b678aea7899837db2d308d60c2f11f849ba001f41c077cd60c5a5bcb13 oid sha256:eba459839d22c4a2809195bba52c79ad72723bdabc0677bb87c4054032cba332
size 7304 size 7292

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:7ce0a9b678aea7899837db2d308d60c2f11f849ba001f41c077cd60c5a5bcb13 oid sha256:eba459839d22c4a2809195bba52c79ad72723bdabc0677bb87c4054032cba332
size 7304 size 7292

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:f57dd2c8b41fca0a1ef74ae16ad720054a29ccfca3c38d5d16dbfbf8c79ef3d6 oid sha256:e688c0f31238dd9870c8634409f854b29cb5ab43ca251fb41466f959103627af
size 64119 size 64149

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:90a7a6bc46fea5d6a02c9e3b6a29018e51fe270fc5034fdd7f9045f6fbbbc1d9 oid sha256:421f94cb97db6395d5b53188e7084599c2adba2ae44d38004d3e088bcc0daad2
size 67916 size 67968

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:6d164e84631d8a95e890c909d4759dda4b8a8bc8e830913c006a5ee3948c220f oid sha256:d74867084116e6784cf2da68345c5367cb48fd017692d072f012efb27dd88786
size 11683 size 11633

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:76c3baf61206fed7f95a0ae1e68288ace113b1c617f5c8a8b5bbedf7f66787ab oid sha256:e1dae4febc4801c4de178cf937e8ac6e22cd871766dcb1870edf3019caab900a
size 10495 size 10467

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:f467065bb9c78d0e95a8a688bfc50edce522b2832c9a53e5a68899e843a988ca oid sha256:44a6cda760e51d3710a951f38d14e1cc17a4fdcb91f281e8c002d424e53b82d6
size 25859 size 25829

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:6c942037766a2ced31344013441c478b8f0e22bead1fd86d1d4ef9c76e8dc8e3 oid sha256:81a8495067496b7daa8f14795b601264b467c43404563814ff6802c2db2c4cda
size 8799 size 8857

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:eb8e2fd1cf19945aada2385effd87afb61c7c31e91096051a4d18070fe807827 oid sha256:72cc5e561f69b8f871570f68d7283d03fd427c8daf3d9f3ac99678e7a769ceda
size 7672 size 7655

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:eb8e2fd1cf19945aada2385effd87afb61c7c31e91096051a4d18070fe807827 oid sha256:72cc5e561f69b8f871570f68d7283d03fd427c8daf3d9f3ac99678e7a769ceda
size 7672 size 7655

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:faf0fc318f5b70b0251b5e1334e2532f156e8ed62ef0a3608d2bf056e145f30d oid sha256:251f0553c3b80a4ca7c1c21fbf776c74ec6f0c85233d0481e0a6859c5f7fa53b
size 65876 size 65976

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:037e24e82436183ed2ff4138a997c232e331076dd5374958e11efcfa8063b4d2 oid sha256:71639d6a2869732e57c682158360c1bf281a3c3ed3522007139200606794b3ec
size 69962 size 69992

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:081188524742d9aaea836bafa94e8c49686f7c18d805ce74c1e203ea9647169e oid sha256:bee0d98b7b58d3aa6074a57788ff3716289c44a598f8d26bb6deef052d5da6a5
size 12492 size 12411

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:3f0c16ef939ce2625d8e6788c0ccba95a4bc85d96acf282bed01cd67db65a4de oid sha256:e6137817016d7892f947a4add91925ac4bdecde22abdb9ba89e44ff21b40e22a
size 58090 size 57903

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:ab118e4c47a83d68eda51b8b077a3eb55f0b5ad829b670be56ddddb99545c2a3 oid sha256:71255625dff4f333e8c8e0fe3cb77435dc552fdc756b8b517e2a783cf6c4677e
size 83648 size 83540

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:d016b99c433497a620543a4cdb1eae7207ca94bcd434b712b81d4ff72a886296 oid sha256:bca29fc313aec50c9a7f1e5e6c2a0b6c288e1faa971760300b5145e847490e89
size 61485 size 61236

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:3cf250f67844c383047ca24b496f8539360467f8fb16c0623fce9c9fff942c1e oid sha256:0af148880e1609550dca835b9ca7d18ca277f19c056d5acc160d6877dc2192e0
size 86880 size 87215

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:b26cfcc46bf0f1e3669424d4e135019c3a045fea09af5006fc90bca5f93e776a oid sha256:7ce2386124550f79fc5cf32efbe44448ca81ce96041ca4419f25d503ec8a8ec3
size 21870 size 21914

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:e3199a1e88702733887ce8d29c1373711c600060fb15cb6f24fde388d706ea86 oid sha256:19dd4781caa51e81180bced8aea7a43133fabcc67dff1912bd2b4a5060668aad
size 21256 size 21103

Some files were not shown because too many files have changed in this diff Show more