M6b: core:design fixes after the M7 wave

Bugs: viewerPercentOf reads basis points (Samples in bp); FullSplitPicker and the
split labels use editor_split_full_on_you ("Allt på dig"); AmountInput.of restores
money with both decimals (AmountInput.percent for ratio fields), replacing M7c's
moneyInput; quickRowCategories does the D-060 fill itself; KvittScaffold resolves
resource-backed snackbars (showKvittSnackbar) while shown.

Gaps: ConfirmDialog optional and styled body; KvittButton loading form (M7a uses it,
ProgressBottomButton removed); InviteCodeField wraps after a group, placeholder,
imeAction; EmptyState icon tile and actionEnabled; DateFormatter.monthName and
dayRangeLong; AnalyticsFilterBar periodOwnRow; segmentedItem builder; screen tokens
in KvittDimens (OnboardingDimens removed); common_ok, common_undo; module-proposed
keys recorded in strings.csv; quick-row labels end in an ellipsis on line two.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TQd3pEP9UeN2uifbHknQ7B
This commit is contained in:
2026-10-18 11:35:06 +02:00
parent c4ab35f66e
commit b24c8b5ba3
49 changed files with 655 additions and 261 deletions
@@ -125,7 +125,7 @@ fun SettleContent(state: SettleUiState, actions: SettleActions, modifier: Modifi
ConfirmDialogContent(
icon = KvittIcon.Delete,
title = stringResource(DesignR.string.common_discard_title),
body = "",
body = null,
confirm = stringResource(DesignR.string.common_discard),
dismiss = stringResource(DesignR.string.common_keep_editing),
onConfirm = actions::onDiscard,
@@ -457,7 +457,7 @@ private fun SettleDatePicker(isoDate: String, actions: SettleActions) {
DatePickerDialog(
onDismissRequest = actions::onDismissDialog,
confirmButton = {
KvittButton(resources.getString(DesignR.string.common_save), {
KvittButton(resources.getString(DesignR.string.common_ok), {
picker.selectedDateMillis?.let { actions.onDate(LocalDate.fromEpochDays(it.floorDiv(MILLIS_PER_DAY)).toString()) } ?: actions.onDismissDialog()
}, kind = ButtonKind.Text)
},
@@ -119,6 +119,7 @@ fun SettlementDetailContent(
detail == null -> EmptyState(
title = stringResource(R.string.settle_detail_missing),
body = stringResource(R.string.settle_detail_missing_body),
icon = KvittIcon.SyncProblem,
action = stringResource(R.string.settle_detail_sync_now),
actionIcon = KvittIcon.Sync,
actionKind = ButtonKind.Tonal,
@@ -210,13 +211,13 @@ private fun Hero(detail: SettlementDetailState, modifier: Modifier) {
KvittCard(
modifier.fillMaxWidth().clearAndSetSemantics { contentDescription = spoken },
color = KvittTheme.colors.settlementHero,
contentPadding = PaddingValues(horizontal = KvittTheme.spacing.s5, vertical = KvittTheme.spacing.s5),
contentPadding = PaddingValues(horizontal = KvittDimens.settlementHeroHorizontal, vertical = KvittDimens.settlementHeroVertical),
verticalArrangement = Arrangement.spacedBy(KvittTheme.spacing.s2),
horizontalAlignment = Alignment.CenterHorizontally,
) {
Row(verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.spacedBy(KvittTheme.spacing.s3)) {
PersonAvatar(detail.from, KvittDimens.avatarSettings, shape = AvatarShape.Large)
KvittIconImage(KvittIcon.ArrowForward, null, size = KvittDimens.accountHeaderSettledIcon, tint = MaterialTheme.colorScheme.onSurfaceVariant)
KvittIconImage(KvittIcon.ArrowForward, null, size = KvittDimens.settlementArrow, tint = MaterialTheme.colorScheme.onSurfaceVariant)
PersonAvatar(detail.to, KvittDimens.avatarSettings, shape = AvatarShape.Large)
}
Text(text, style = MaterialTheme.typography.titleMedium, textAlign = TextAlign.Center)
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- :feature:settle strings (S-9, S-10). Source: docs/ux/strings.csv, keys with module=settle; the last three keys are
proposed in the M7d report and not yet in strings.csv. -->
<!-- :feature:settle strings (S-9, S-10). Source: docs/ux/strings.csv, keys with module=settle. -->
<resources>
<string name="settle_title">Gör upp</string>
<string name="settle_title_edit">Ändra betalning</string>
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- :feature:settle strings (S-9, S-10). Source: docs/ux/strings.csv, keys with module=settle; the last three keys are
proposed in the M7d report and not yet in strings.csv. -->
<!-- :feature:settle strings (S-9, S-10). Source: docs/ux/strings.csv, keys with module=settle. -->
<resources>
<string name="settle_title">Settle up</string>
<string name="settle_title_edit">Edit payment</string>