Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
30aa809
feat: move app theme to SDK
dewabisma Aug 13, 2026
52c42c7
feat: add design system tokens
dewabisma Aug 13, 2026
4eb11a7
wip: make component shared in SDK + new theme
dewabisma Aug 14, 2026
688566d
feat: move reusable component to sdk
dewabisma Aug 15, 2026
e8688c9
fix: component import
dewabisma Aug 15, 2026
00ee20b
feat: add new text field component
dewabisma Aug 18, 2026
3fc0ef5
feat: add quantus banner component
dewabisma Aug 18, 2026
95d3ea0
feat: add badge component
dewabisma Aug 18, 2026
7d560ad
feat: add dialog component
dewabisma Aug 18, 2026
ea13aa3
chore: fix linter
dewabisma Aug 18, 2026
fd029aa
feat: add action sheet component
dewabisma Aug 18, 2026
5887a90
feat: update bottom sheet style
dewabisma Aug 18, 2026
997f9f1
fix: sheet capped
dewabisma Aug 18, 2026
b168401
feat: add data row component
dewabisma Aug 18, 2026
6b182d4
feat: add icon component
dewabisma Aug 18, 2026
bd11d5b
feat: add new skeleton component
dewabisma Aug 18, 2026
b8938e1
feat: add step progression row component
dewabisma Aug 18, 2026
6f7a92d
feat: use SDK theme and components
dewabisma Aug 18, 2026
8d3638f
feat: reusable mnemonic grid
dewabisma Aug 19, 2026
162b964
feat: update dialog component
dewabisma Aug 19, 2026
1b7539e
feat: unify decode call view component
dewabisma Aug 19, 2026
8a9b295
feat: update dialog
dewabisma Aug 19, 2026
aa1ad5e
feat: update tuning controls design tokens
dewabisma Aug 19, 2026
050d51b
feat: reorg component files, update password sheet
dewabisma Aug 19, 2026
82fdd55
feat: update v3 design tokens
dewabisma Aug 19, 2026
64f1968
feat: update lock and password
dewabisma Aug 19, 2026
eda1053
feat: update design tokens 1st pass
dewabisma Aug 19, 2026
2c79a3d
feat: update design tokens 2nd pass
dewabisma Aug 19, 2026
a2f0789
feat: update design tokens 3rd pass
dewabisma Aug 19, 2026
7c9f225
feat: update design tokens 4th pass
dewabisma Aug 19, 2026
3670473
feat: update design tokens 5th pass
dewabisma Aug 19, 2026
c5d2384
feat: update loader and menu divider design tokens
dewabisma Aug 19, 2026
7a024f5
Merge branch 'main' of https://github.com/Quantus-Network/quantus-app…
dewabisma Aug 20, 2026
44af580
feat: update sign screen + detail call components
dewabisma Aug 20, 2026
80f8279
feat: finish updating to V3
dewabisma Aug 20, 2026
abbefd0
fix: try again button width
dewabisma Aug 20, 2026
bef7f15
fix: not showing network banner
dewabisma Aug 20, 2026
cbad48a
feat: add test cold wallet to CI
dewabisma Aug 20, 2026
fe597d1
fix: crashing auth wrapper
dewabisma Aug 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ jobs:
- name: Test Quantus SDK
# Tests tagged 'native' need the Rust dylib built locally; skip them in CI.
run: melos exec --concurrency=1 --scope="quantus_sdk" -- "flutter test --exclude-tags=native"
- name: Test Cold Wallet App
run: melos exec --concurrency=1 --scope="quantus_cold_wallet" -- "flutter test"

# build_android:
# name: Build Android
Expand Down
6 changes: 3 additions & 3 deletions cold-wallet-app/lib/app.dart
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:quantus_sdk/quantus_sdk.dart';
import 'package:quantus_cold_wallet/providers/wallet_providers.dart';
import 'package:quantus_cold_wallet/screens/root_gate.dart';
import 'package:quantus_cold_wallet/theme/app_theme.dart';
import 'package:quantus_cold_wallet/widgets/connectivity_guard.dart';
import 'package:quantus_cold_wallet/widgets/lock_overlay.dart';
import 'package:quantus_cold_wallet/components/connectivity_guard.dart';
import 'package:quantus_cold_wallet/components/lock_overlay.dart';

class ColdWalletApp extends ConsumerStatefulWidget {
const ColdWalletApp({super.key});
Expand Down
29 changes: 0 additions & 29 deletions cold-wallet-app/lib/components/address_with_checkphrase.dart

This file was deleted.

215 changes: 0 additions & 215 deletions cold-wallet-app/lib/components/call_detail_view.dart

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:quantus_cold_wallet/components/quantus_button.dart';
import 'package:quantus_sdk/quantus_sdk.dart';
import 'package:quantus_cold_wallet/providers/wallet_providers.dart';
import 'package:quantus_cold_wallet/theme/app_colors.dart';
import 'package:quantus_cold_wallet/theme/app_text_styles.dart';
import 'package:quantus_cold_wallet/widgets/password_field.dart';
import 'package:quantus_cold_wallet/components/password_field.dart';

/// Action pane for setting or changing the vault password. Resolves to true
/// when the password was changed.
Expand All @@ -13,7 +11,7 @@ Future<bool> showChangePasswordSheet(BuildContext context) async {
context: context,
isScrollControlled: true,
enableDrag: false,
backgroundColor: context.colors.sheetBackground,
backgroundColor: context.colorsV3.bgSurface,
builder: (_) => const _ChangePasswordSheet(),
);
return changed == true;
Expand Down Expand Up @@ -82,8 +80,8 @@ class _ChangePasswordSheetState extends ConsumerState<_ChangePasswordSheet> {

@override
Widget build(BuildContext context) {
final colors = context.colors;
final text = context.themeText;
final colors = context.colorsV3;
final text = context.themeTextV3;

// The rotation must not look cancellable once it is running: block barrier
// taps and back navigation until the result lands in this sheet.
Expand All @@ -99,24 +97,24 @@ class _ChangePasswordSheetState extends ConsumerState<_ChangePasswordSheet> {
);
}

Widget _successContent(AppColorsV2 colors, AppTextTheme text) {
Widget _successContent(AppColorsV3 colors, AppTextThemeV3 text) {
return Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Icon(Icons.check_circle_outline_rounded, size: 48, color: colors.success),
Icon(Icons.check_circle_outline_rounded, size: 48, color: colors.semanticSage),
const SizedBox(height: 16),
Text(
'Password changed',
style: text.smallTitle?.copyWith(color: colors.textPrimary),
style: text.titleScreen.copyWith(color: colors.textContent),
textAlign: TextAlign.center,
),
if (_biometricDisabled) ...[
const SizedBox(height: 12),
Text(
'Biometric unlock was turned off because its key could not be updated for the new password. '
'Unlock with your password.',
style: text.detail?.copyWith(color: colors.textSecondary),
style: text.body.copyWith(color: colors.textMuted, height: 1.55),
textAlign: TextAlign.center,
),
],
Expand All @@ -126,17 +124,17 @@ class _ChangePasswordSheetState extends ConsumerState<_ChangePasswordSheet> {
);
}

Widget _formContent(AppColorsV2 colors, AppTextTheme text) {
Widget _formContent(AppColorsV3 colors, AppTextThemeV3 text) {
return Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Text('Change password', style: text.smallTitle?.copyWith(color: colors.textPrimary)),
Text('Change password', style: text.titleScreen.copyWith(color: colors.textContent)),
const SizedBox(height: 8),
Text(
'Your password encrypts the wallet key stored on this device. If you never set one, leave the current '
'password empty.',
style: text.detail?.copyWith(color: colors.textSecondary),
style: text.body.copyWith(color: colors.textMuted, height: 1.55),
),
const SizedBox(height: 24),
PasswordField(controller: _current, hintText: 'Current password', enabled: !_busy),
Expand All @@ -151,7 +149,7 @@ class _ChangePasswordSheetState extends ConsumerState<_ChangePasswordSheet> {
),
if (_error != null) ...[
const SizedBox(height: 16),
Text(_error!, style: text.detail?.copyWith(color: colors.error)),
Text(_error!, style: text.caption.copyWith(color: colors.semanticEmber)),
],
const SizedBox(height: 24),
QuantusButton.simple(label: 'Change password', isLoading: _busy, onTap: _busy ? null : _submit),
Expand Down
27 changes: 0 additions & 27 deletions cold-wallet-app/lib/components/confirm_dialog.dart

This file was deleted.

Loading
Loading