diff --git a/Cargo.toml b/Cargo.toml index 9c2aa6f..0660c30 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -47,6 +47,13 @@ dev = [] prod = [] deep-trace = [] +[profile.release-with-debug] +inherits = "release" +debug = true +opt-level = 3 +lto = true +codegen-units = 1 + # Config for 'git cliff' # Run with `GITHUB_TOKEN=$(gh auth token) git cliff --bump -up CHANGELOG.md` # https://git-cliff.org/docs/configuration diff --git a/ui/app/index.slint b/ui/app/index.slint index e4f596c..7b52c5a 100644 --- a/ui/app/index.slint +++ b/ui/app/index.slint @@ -96,8 +96,8 @@ export component App inherits Window { retry-connection => { root.retry-health-check(); + } } - } // Login Screen if app-state == "login": VerticalLayout { @@ -223,36 +223,36 @@ export component App inherits Window { user-initials: root.user-initials; logout => { root.logout-requested(); - } } + } if current-page == "Hunting Ground": HuntingGroundPage { - new-tokens: root.new-tokens; - cex-tokens: root.cex-tokens; - analysis-tokens: root.analysis-tokens; + new-tokens: root.new-tokens; + cex-tokens: root.cex-tokens; + analysis-tokens: root.analysis-tokens; current-time: root.current-time; - clear-new-tokens => { - root.clear-new-tokens(); - } + clear-new-tokens => { + root.clear-new-tokens(); + } - clear-cex-tokens => { - root.clear-cex-tokens(); - } + clear-cex-tokens => { + root.clear-cex-tokens(); + } - clear-analysis-tokens => { - root.clear-analysis-tokens(); + clear-analysis-tokens => { + root.clear-analysis-tokens(); } } if current-page == "Trading": TradingPage { - buy-clicked => { - root.buy-clicked(); - } - sell-clicked => { - root.sell-clicked(); - } + buy-clicked => { + root.buy-clicked(); } + sell-clicked => { + root.sell-clicked(); + } + } if current-page == "Portfolio": PortfolioPage { } diff --git a/ui/index.slint b/ui/index.slint index 9b46ea2..c4b45f6 100644 --- a/ui/index.slint +++ b/ui/index.slint @@ -89,7 +89,7 @@ export component MainWindow inherits Window { } } } - + // App component handles all the UI following FSD layers App { width: 100%; @@ -110,15 +110,15 @@ export component MainWindow inherits Window { loading-status: root.loading-status; // Navigation state - current-page: root.current-page; + current-page: root.current-page; user-initials: root.user-initials; - - // Hunting ground properties - new-tokens: root.new-tokens; + + // Hunting ground properties + new-tokens: root.new-tokens; cex-tokens: root.cex-tokens; analysis-tokens: root.analysis-tokens; current-time: root.current-time; - + // Forward all callbacks to main.rs health-check-completed(healthy) => { root.health-check-completed(healthy); @@ -184,3 +184,4 @@ export component MainWindow inherits Window { } } } + \ No newline at end of file diff --git a/ui/pages/dashboard/ui/dashboard-page.slint b/ui/pages/dashboard/ui/dashboard-page.slint index 9352ad2..f578f9c 100644 --- a/ui/pages/dashboard/ui/dashboard-page.slint +++ b/ui/pages/dashboard/ui/dashboard-page.slint @@ -32,49 +32,49 @@ export component Dashboard { horizontal-alignment: center; vertical-alignment: center; } - } + } // Title - Text { + Text { text: "Dashboard"; font-size: 48px; - font-weight: 700; + font-weight: 700; color: Palette.foreground; - horizontal-alignment: center; - } + horizontal-alignment: center; + } // Coming soon message - Text { + Text { text: "Coming Soon"; font-size: 24px; - font-weight: 500; + font-weight: 500; color: Palette.foreground; horizontal-alignment: center; - } + } // Description - Text { + Text { text: "We're working hard to bring you an amazing dashboard experience.\nCheck back soon for portfolio insights, trading analytics, and more!"; font-size: 16px; color: Palette.foreground; horizontal-alignment: center; opacity: 0.8; - } - + } + // Placeholder for future features - Rectangle { + Rectangle { width: 400px; height: 200px; background: Palette.alternate-background; - border-radius: 12px; - border-width: 1px; + border-radius: 12px; + border-width: 1px; border-color: Palette.border; - - VerticalLayout { + + VerticalLayout { alignment: center; spacing: 10px; - Text { + Text { text: "✨ Coming Features:"; font-size: 18px; font-weight: 600; @@ -83,14 +83,14 @@ export component Dashboard { } VerticalLayout { - spacing: 8px; + spacing: 8px; - Text { + Text { text: "• Real-time Portfolio Tracking"; - font-size: 14px; + font-size: 14px; color: Palette.alternate-foreground; horizontal-alignment: center; - } + } Text { text: "• Advanced Trading Analytics"; diff --git a/ui/pages/hunting-ground/ui/hunting-ground-page.slint b/ui/pages/hunting-ground/ui/hunting-ground-page.slint index b474b0d..4a4c382 100644 --- a/ui/pages/hunting-ground/ui/hunting-ground-page.slint +++ b/ui/pages/hunting-ground/ui/hunting-ground-page.slint @@ -23,23 +23,23 @@ export component HuntingGroundPage { alignment: start; // Explicitly align to top padding: 16px; spacing: 16px; - - // Header with refresh button - HorizontalLayout { - alignment: space-between; - Text { - text: "🎯 Token Hunting Ground"; - font-size: 28px; - font-weight: 700; + // Header with refresh button + HorizontalLayout { + alignment: space-between; + + Text { + text: "🎯 Token Hunting Ground"; + font-size: 28px; + font-weight: 700; color: Palette.foreground; + } } - } - + // Three columns layout using proper Slint responsive layout - HorizontalLayout { - spacing: 16px; - padding: 8px; + HorizontalLayout { + spacing: 16px; + padding: 8px; min-height: 500px; // Minimum height, but allows growing alignment: stretch; // Stretch children to fill available space @@ -49,18 +49,18 @@ export component HuntingGroundPage { tokens: root.new-tokens; clear-tokens => { root.clear-new-tokens(); - } - } - + } + } + // Column 2: CEX Analyst (1/3 responsive width) CexTokensColumn { horizontal-stretch: 1; // Equal stretch factor for 1/3 width tokens: root.cex-tokens; clear-tokens => { root.clear-cex-tokens(); + } } - } - + // Column 3: Analysis Complete (1/3 responsive width) AnalysisCompleteColumn { horizontal-stretch: 1; // Equal stretch factor for 1/3 width diff --git a/ui/shared/ui/loading/loading.slint b/ui/shared/ui/loading/loading.slint index 7d5c05c..6d8370e 100644 --- a/ui/shared/ui/loading/loading.slint +++ b/ui/shared/ui/loading/loading.slint @@ -26,7 +26,7 @@ export component LoadingView { alignment: center; spacing: 16px; - Rectangle { + Rectangle { width: 120px; height: 120px; border-radius: 60px; @@ -74,12 +74,12 @@ export component LoadingView { if is-loading && !has-error: VerticalLayout { alignment: center; spacing: 16px; - - Text { - text: "Loading Ziya"; - font-size: 24px; + + Text { + text: "Loading Ziya"; + font-size: 24px; color: Palette.foreground; - font-weight: 600; + font-weight: 600; horizontal-alignment: center; } @@ -88,13 +88,13 @@ export component LoadingView { width: 200px; height: 8px; indeterminate: true; - } - - Text { + } + + Text { text: status-text; - font-size: 14px; + font-size: 14px; color: Palette.foreground; - opacity: 0.7; + opacity: 0.7; horizontal-alignment: center; } } diff --git a/ui/widgets/navigation/ui/navigation-widget.slint b/ui/widgets/navigation/ui/navigation-widget.slint index c2fa953..c43d426 100644 --- a/ui/widgets/navigation/ui/navigation-widget.slint +++ b/ui/widgets/navigation/ui/navigation-widget.slint @@ -19,7 +19,7 @@ export component NavigationWidget { // Right border using a separate rectangle Rectangle { width: 1px; - height: 100%; + height: 100%; x: parent.width - 1px; background: Palette.border; } @@ -126,10 +126,10 @@ export component NavigationWidget { horizontal-alignment: left; vertical-alignment: center; } + } } } - } - + // User Profile Section - Icon only mode if sidebar-state == "icon-only": Rectangle { height: 48px; @@ -471,15 +471,15 @@ export component NavigationWidget { spacing: 12px; padding: 12px; alignment: start; - - Text { + + Text { text: "🚪"; font-size: 20px; - vertical-alignment: center; - } - - Text { - text: "Logout"; + vertical-alignment: center; + } + + Text { + text: "Logout"; color: Palette.alternate-foreground; font-size: 14px; font-weight: 400; diff --git a/ui/widgets/window-controls/ui/title-bar.slint b/ui/widgets/window-controls/ui/title-bar.slint index 4e247ff..8613bf9 100644 --- a/ui/widgets/window-controls/ui/title-bar.slint +++ b/ui/widgets/window-controls/ui/title-bar.slint @@ -99,7 +99,7 @@ export component TitleBar { } theme-touch-area := TouchArea { - clicked => { + clicked => { root.toggle-theme(); } }