// DragonX Wallet - ImGui Edition // Copyright 2024-2026 The Hush Developers // Released under the GPLv3 #pragma once // ============================================================================ // Material Design Components - Unified Header // ============================================================================ // Include this single header to get all Material Design components. // // Based on Material Design 2 (m2.material.io) // // All components are in the namespace: dragonx::ui::material // Core dependencies #include "../colors.h" #include "../typography.h" #include "../layout.h" // Components #include "buttons.h" // Button, IconButton, FAB #include "cards.h" // Card, CardHeader, CardContent, CardActions #include "text_fields.h" // TextField #include "lists.h" // ListItem, ListDivider, ListSubheader #include "dialogs.h" // Dialog, ConfirmDialog, AlertDialog #include "inputs.h" // Switch, Checkbox, RadioButton #include "progress.h" // LinearProgress, CircularProgress #include "snackbar.h" // Snackbar, ShowSnackbar #include "slider.h" // Slider, SliderDiscrete, SliderRange #include "tabs.h" // TabBar, Tab #include "chips.h" // Chip, FilterChip, ChoiceChip, InputChip #include "nav_drawer.h" // NavDrawer, NavItem #include "app_bar.h" // AppBar, AppBarTitle, AppBarAction // ============================================================================ // Quick Reference // ============================================================================ // // BUTTONS: // Button(label, spec) - Generic button with style config // TextButton(label) - Text-only button // OutlinedButton(label) - Button with outline // ContainedButton(label) - Filled button (primary) // IconButton(icon, tooltip) - Circular icon button // FAB(icon) - Floating action button // // CARDS: // BeginCard(spec)/EndCard() - Card container // CardHeader(title, subtitle) - Card header section // CardContent(text) - Card body text // CardActions()/EndCardActions()- Card button area // // TEXT FIELDS: // TextField(label, buf, size) - Text input field // TextField(id, buf, size, spec)- Configurable text field // // LISTS: // BeginList(id)/EndList() - List container // ListItem(text) - Simple list item // ListItem(primary, secondary) - Two-line item // ListItem(spec) - Full config item // ListDivider(inset) - Divider line // ListSubheader(text) - Section header // // DIALOGS: // BeginDialog(id, &open, spec) - Modal dialog // EndDialog() // ConfirmDialog(...) - Confirm/cancel dialog // AlertDialog(...) - Single-action alert // // SELECTION CONTROLS: // Switch(label, &value) - Toggle switch // Checkbox(label, &value) - Checkbox // RadioButton(label, active) - Radio button // RadioButton(label, &sel, val) - Radio with int selection // // PROGRESS: // LinearProgress(fraction) - Determinate progress bar // LinearProgressIndeterminate() - Indeterminate progress bar // CircularProgress(fraction) - Circular progress // CircularProgressIndeterminate()- Spinner // // SNACKBAR: // ShowSnackbar(msg, action) - Show notification // DismissSnackbar() - Dismiss current snackbar // RenderSnackbar() - Call each frame to render // // SLIDER: // Slider(label, &val, min, max) - Continuous slider // SliderInt(label, &val, ...) - Integer slider // SliderDiscrete(...) - Stepped slider // SliderRange(...) - Two-thumb range slider // // TABS: // BeginTabBar(id, &idx) - Tab bar container // Tab(label) - Tab item // EndTabBar() // TabBar(id, labels, count, &idx) - Simple tab bar // // CHIPS: // Chip(label) - Action chip // FilterChip(label, &selected) - Toggleable filter chip // ChoiceChip(label, selected) - Choice chip // InputChip(label, avatar) - Deletable input chip // BeginChipGroup()/EndChipGroup()- Chip layout helper // // NAVIGATION DRAWER: // BeginNavDrawer(id, &open, spec) - Navigation drawer // EndNavDrawer() // NavItem(icon, label, selected) - Navigation item // NavDivider() - Drawer divider // NavSubheader(text) - Section header // // APP BAR: // BeginAppBar(id, spec) - Top app bar // EndAppBar() // AppBarNavIcon(icon) - Navigation icon (left) // AppBarTitle(title) - App bar title // AppBarAction(icon) - Action button (right) // BeginAppBarMenu(icon) - Overflow menu // AppBarMenuItem(label) - Menu item