ux-components 0.1.3

Backend agnostic GUI framework
Documentation
use crate::{
    foundation::colorspace::Color, foundation::TargetPlatform, ui::Brightness,
    widgets::IconThemeData,
};

use super::{
    AppBarTheme, BottomAppBarTheme, BottomNavigationBarThemeData, BottomSheetThemeData,
    ButtonBarThemeData, ButtonThemeData, CardTheme, CheckboxThemeData, ChipThemeData, ColorScheme,
    DataTableThemeData, DialogTheme, DividerThemeData, ElevatedButtonThemeData,
    FloatingActionButtonThemeData, InputDecorationTheme, InteractiveInkFeatureFactory,
    MaterialBannerThemeData, MaterialColor, MaterialTapTargetSize, NavigationRailThemeData,
    OutlinedButtonThemeData, PageTransitionsTheme, PopupMenuThemeData, ProgressIndicatorThemeData,
    RadioThemeData, ScrollbarThemeData, SliderThemeData, SnackBarThemeData, SwitchThemeData,
    TabBarTheme, TextButtonThemeData, TextSelectionThemeData, TextTheme, TimePickerThemeData,
    ToggleButtonsThemeData, TooltipThemeData, Typography, VisualDensity,
};

// copyWith({Brightness? brightness, VisualDensity? visualDensity, Color? primaryColor, Brightness? primaryColorBrightness, Color? primaryColorLight, Color? primaryColorDark, Color? accentColor, Brightness? accentColorBrightness, Color? canvasColor, Color? shadowColor, Color? scaffoldBackgroundColor, Color? bottomAppBarColor, Color? cardColor, Color? dividerColor, Color? focusColor, Color? hoverColor, Color? highlightColor, Color? splashColor, InteractiveInkFeatureFactory? splashFactory, Color? selectedRowColor, Color? unselectedWidgetColor, Color? disabledColor, ButtonThemeData? buttonTheme, ToggleButtonsThemeData? toggleButtonsTheme, Color? buttonColor, Color? secondaryHeaderColor, Color? textSelectionColor, Color? cursorColor, Color? textSelectionHandleColor, Color? backgroundColor, Color? dialogBackgroundColor, Color? indicatorColor, Color? hintColor, Color? errorColor, Color? toggleableActiveColor, TextTheme? textTheme, TextTheme? primaryTextTheme, TextTheme? accentTextTheme, InputDecorationTheme? inputDecorationTheme, IconThemeData? iconTheme, IconThemeData? primaryIconTheme, IconThemeData? accentIconTheme, SliderThemeData? sliderTheme, TabBarTheme? tabBarTheme, TooltipThemeData? tooltipTheme, CardTheme? cardTheme, ChipThemeData? chipTheme, TargetPlatform? platform, MaterialTapTargetSize? materialTapTargetSize, bool? applyElevationOverlayColor, PageTransitionsTheme? pageTransitionsTheme, AppBarTheme? appBarTheme, ScrollbarThemeData? scrollbarTheme, BottomAppBarTheme? bottomAppBarTheme, ColorScheme? colorScheme, DialogTheme? dialogTheme, FloatingActionButtonThemeData? floatingActionButtonTheme, NavigationRailThemeData? navigationRailTheme, Typography? typography, NoDefaultCupertinoThemeData? cupertinoOverrideTheme, SnackBarThemeData? snackBarTheme, BottomSheetThemeData? bottomSheetTheme, PopupMenuThemeData? popupMenuTheme, MaterialBannerThemeData? bannerTheme, DividerThemeData? dividerTheme, ButtonBarThemeData? buttonBarTheme, BottomNavigationBarThemeData? bottomNavigationBarTheme, TimePickerThemeData? timePickerTheme, TextButtonThemeData? textButtonTheme, ElevatedButtonThemeData? elevatedButtonTheme, OutlinedButtonThemeData? outlinedButtonTheme, TextSelectionThemeData? textSelectionTheme, DataTableThemeData? dataTableTheme, CheckboxThemeData? checkboxTheme, RadioThemeData? radioTheme, SwitchThemeData? switchTheme, ProgressIndicatorThemeData? progressIndicatorTheme, bool? fixTextFieldOutlineLabel, bool? useTextSelectionTheme}) -> ThemeData
// Creates a copy of this theme but with the given fields replaced with the new values.
//
// debugFillProperties(DiagnosticPropertiesBuilder properties) -> void
// Add additional properties associated with the node.

pub struct ThemeData {
    pub brightness: Brightness,
    pub visual_density: VisualDensity,
    pub primary_swatch: MaterialColor,
    pub primary_color: Color,
    pub primary_color_brightness: Brightness,
    pub primary_color_light: Color,
    pub primary_color_dark: Color,
    // @Deprecated("Use colorScheme.secondary instead.")
    pub accent_color: Color,
    // @Deprecated("No longer used by the framework, please remove any reference to it.")
    pub accent_color_brightness: Brightness,
    pub canvas_color: Color,
    pub shadow_color: Color,
    pub scaffold_background_color: Color,
    pub bottom_app_bar_color: Color,
    pub card_color: Color,
    pub divider_color: Color,
    pub focus_color: Color,
    pub hover_color: Color,
    pub highlight_color: Color,
    pub splash_color: Color,
    pub splash_factory: InteractiveInkFeatureFactory,
    pub selected_row_color: Color,
    pub unselected_widget_color: Color,
    pub disabled_color: Color,
    // @Deprecated("No longer used by the framework, please remove any reference to it.")
    pub button_color: Color,
    pub button_theme: ButtonThemeData,
    pub toggle_buttons_theme: ToggleButtonsThemeData,
    pub secondary_header_color: Color,
    // @Deprecated("Use TextSelectionThemeData.selectionColor instead.")
    pub text_selection_color: Color,
    // @Deprecated("Use TextSelectionThemeData.cursorColor instead.")
    pub cursor_color: Color,
    // @Deprecated("Use TextSelectionThemeData.selectionHandleColor instead.")
    pub text_selection_handle_color: Color,
    pub background_color: Color,
    pub dialog_background_color: Color,
    pub indicator_color: Color,
    pub hint_color: Color,
    pub error_color: Color,
    pub toggleable_active_color: Color,
    pub font_family: String,
    pub text_theme: TextTheme,
    pub primary_text_theme: TextTheme,
    // @Deprecated("No longer used by the framework, please remove any reference to it.")
    pub accent_text_theme: TextTheme,
    pub input_decoration_theme: InputDecorationTheme,
    pub icon_theme: IconThemeData,
    pub primary_icon_theme: IconThemeData,
    // @Deprecated("No longer used by the framework, please remove any reference to it.")
    pub accent_icon_theme: IconThemeData,
    pub slider_theme: SliderThemeData,
    pub tab_bar_theme: TabBarTheme,
    pub tooltip_theme: TooltipThemeData,
    pub card_theme: CardTheme,
    pub chip_theme: ChipThemeData,
    pub platform: TargetPlatform,
    pub material_tap_target_size: MaterialTapTargetSize,
    pub apply_elevation_overlay_color: bool,
    pub page_transitions_theme: PageTransitionsTheme,
    pub app_bar_theme: AppBarTheme,
    pub scrollbar_theme: ScrollbarThemeData,
    pub bottom_app_bar_theme: BottomAppBarTheme,
    pub color_scheme: ColorScheme,
    pub dialog_theme: DialogTheme,
    pub floating_action_button_theme: FloatingActionButtonThemeData,
    pub navigation_rail_theme: NavigationRailThemeData,
    pub typography: Typography,
    pub snack_bar_theme: SnackBarThemeData,
    pub bottom_sheet_theme: BottomSheetThemeData,
    pub popup_menu_theme: PopupMenuThemeData,
    pub banner_theme: MaterialBannerThemeData,
    pub divider_theme: DividerThemeData,
    pub button_bar_theme: ButtonBarThemeData,
    pub bottom_navigation_bar_theme: BottomNavigationBarThemeData,
    pub time_picker_theme: TimePickerThemeData,
    pub text_button_theme: TextButtonThemeData,
    pub elevated_button_theme: ElevatedButtonThemeData,
    pub outlined_button_theme: OutlinedButtonThemeData,
    pub text_selection_theme: TextSelectionThemeData,
    pub data_table_theme: DataTableThemeData,
    pub checkbox_theme: CheckboxThemeData,
    pub radio_theme: RadioThemeData,
    pub switch_theme: SwitchThemeData,
    pub progress_indicator_theme: ProgressIndicatorThemeData,
    // @Deprecated("This "fix" is now enabled by default.")
    pub fix_text_field_outline_label: bool,
    // @Deprecated("No longer used by the framework, please remove any reference to it.")
    pub use_text_selection_theme: bool,
}

impl Default for ThemeData {
    fn default() -> Self {
        Self {
            brightness: Default::default(),
            visual_density: Default::default(),
            primary_swatch: Default::default(),
            primary_color: Default::default(),
            primary_color_brightness: Default::default(),
            primary_color_light: Default::default(),
            primary_color_dark: Default::default(),
            accent_color: Default::default(),
            accent_color_brightness: Default::default(),
            canvas_color: Default::default(),
            shadow_color: Default::default(),
            scaffold_background_color: Default::default(),
            bottom_app_bar_color: Default::default(),
            card_color: Default::default(),
            divider_color: Default::default(),
            focus_color: Default::default(),
            hover_color: Default::default(),
            highlight_color: Default::default(),
            splash_color: Default::default(),
            splash_factory: Default::default(),
            selected_row_color: Default::default(),
            unselected_widget_color: Default::default(),
            disabled_color: Default::default(),
            button_color: Default::default(),
            button_theme: Default::default(),
            toggle_buttons_theme: Default::default(),
            secondary_header_color: Default::default(),
            text_selection_color: Default::default(),
            cursor_color: Default::default(),
            text_selection_handle_color: Default::default(),
            background_color: Default::default(),
            dialog_background_color: Default::default(),
            indicator_color: Default::default(),
            hint_color: Default::default(),
            error_color: Default::default(),
            toggleable_active_color: Default::default(),
            font_family: Default::default(),
            text_theme: Default::default(),
            primary_text_theme: Default::default(),
            accent_text_theme: Default::default(),
            input_decoration_theme: Default::default(),
            icon_theme: Default::default(),
            primary_icon_theme: Default::default(),
            accent_icon_theme: Default::default(),
            slider_theme: Default::default(),
            tab_bar_theme: Default::default(),
            tooltip_theme: Default::default(),
            card_theme: Default::default(),
            chip_theme: Default::default(),
            platform: Default::default(),
            material_tap_target_size: Default::default(),
            apply_elevation_overlay_color: Default::default(),
            page_transitions_theme: Default::default(),
            app_bar_theme: Default::default(),
            scrollbar_theme: Default::default(),
            bottom_app_bar_theme: Default::default(),
            color_scheme: Default::default(),
            dialog_theme: Default::default(),
            floating_action_button_theme: Default::default(),
            navigation_rail_theme: Default::default(),
            typography: Default::default(),
            snack_bar_theme: Default::default(),
            bottom_sheet_theme: Default::default(),
            popup_menu_theme: Default::default(),
            banner_theme: Default::default(),
            divider_theme: Default::default(),
            button_bar_theme: Default::default(),
            bottom_navigation_bar_theme: Default::default(),
            time_picker_theme: Default::default(),
            text_button_theme: Default::default(),
            elevated_button_theme: Default::default(),
            outlined_button_theme: Default::default(),
            text_selection_theme: Default::default(),
            data_table_theme: Default::default(),
            checkbox_theme: Default::default(),
            radio_theme: Default::default(),
            switch_theme: Default::default(),
            progress_indicator_theme: Default::default(),
            fix_text_field_outline_label: Default::default(),
            use_text_selection_theme: Default::default(),
        }
    }
}