| 
		 After Width: | Height: | Size: 2.2 KiB  | 
| 
		 Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 4.7 KiB  | 
| 
		 Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 4.9 KiB  | 
| 
		 Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 5.5 KiB  | 
| 
		 Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.8 KiB  | 
| 
		 Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 8.5 KiB  | 
| 
		 After Width: | Height: | Size: 13 KiB  | 
@ -0,0 +1,24 @@
					 | 
				
			||||
import 'package:flutter_example_packages/base/package/package_dialog.dart'; | 
				
			||||
 | 
				
			||||
/// Package values | 
				
			||||
final packageCupertinoIcons = PackageDialog( | 
				
			||||
  key: 'cupertino_icons', | 
				
			||||
  descEN: ''' | 
				
			||||
    This is an asset repo containing the default set of icon assets  | 
				
			||||
    used by Flutter's Cupertino widgets. | 
				
			||||
    ''', | 
				
			||||
  descRU: ''' | 
				
			||||
    Это репозиторий ресурсов, содержащий набор ресурсов значков по умолчанию | 
				
			||||
    используется виджетами Flutter Cupertino. | 
				
			||||
    ''', | 
				
			||||
  messageEN: ''' | 
				
			||||
  This is a platform independent plugin used in this app, should work  | 
				
			||||
  for you too. | 
				
			||||
  ''', | 
				
			||||
  messageRU: ''' | 
				
			||||
  Это плагин независимый от платформы, используется в этом приложении,  | 
				
			||||
  должен работать и у вас. | 
				
			||||
  ''', | 
				
			||||
  version: '1.0.5', | 
				
			||||
  isPlatformDependent: false, | 
				
			||||
); | 
				
			||||
@ -0,0 +1,22 @@
					 | 
				
			||||
import 'package:flutter_example_packages/base/package/package_dialog.dart'; | 
				
			||||
 | 
				
			||||
/// Package values | 
				
			||||
final packageGoogleFonts = PackageDialog( | 
				
			||||
  key: 'google_fonts', | 
				
			||||
  descEN: ''' | 
				
			||||
    A Flutter package to use fonts from fonts.google.com. | 
				
			||||
    ''', | 
				
			||||
  descRU: ''' | 
				
			||||
    Пакет Flutter для использования шрифтов с fonts.google.com. | 
				
			||||
    ''', | 
				
			||||
  messageEN: ''' | 
				
			||||
  This is a platform independent plugin used in this app, should work  | 
				
			||||
  for you too. | 
				
			||||
  ''', | 
				
			||||
  messageRU: ''' | 
				
			||||
  Это плагин независимый от платформы, используется в этом приложении,  | 
				
			||||
  должен работать и у вас. | 
				
			||||
  ''', | 
				
			||||
  version: '4.0.4', | 
				
			||||
  isPlatformDependent: false, | 
				
			||||
); | 
				
			||||
@ -0,0 +1,26 @@
					 | 
				
			||||
import 'package:flutter_example_packages/base/package/package_dialog.dart'; | 
				
			||||
 | 
				
			||||
/// Package values | 
				
			||||
final packageIntl = PackageDialog( | 
				
			||||
  key: 'intl', | 
				
			||||
  descEN: ''' | 
				
			||||
    Provides internationalization and localization facilities,  | 
				
			||||
    including message translation, plurals and genders,  | 
				
			||||
    date/number formatting and parsing, and bidirectional text. | 
				
			||||
    ''', | 
				
			||||
  descRU: ''' | 
				
			||||
    Предоставляет средства интернационализации и локализации, | 
				
			||||
    включая перевод сообщений, множественное число и пол, | 
				
			||||
    форматирование и разбор даты/числа, а также двунаправленный текст. | 
				
			||||
    ''', | 
				
			||||
  messageEN: ''' | 
				
			||||
  This is a platform independent plugin used in this app, should work  | 
				
			||||
  for you too. | 
				
			||||
  ''', | 
				
			||||
  messageRU: ''' | 
				
			||||
  Это плагин независимый от платформы, используется в этом приложении,  | 
				
			||||
  должен работать и у вас. | 
				
			||||
  ''', | 
				
			||||
  version: '0.17.0', | 
				
			||||
  isPlatformDependent: false, | 
				
			||||
); | 
				
			||||
@ -1,30 +1,41 @@
					 | 
				
			||||
import 'package:flutter_example_packages/base/package/package.dart'; | 
				
			||||
import 'package:flutter_example_packages/packages/battery_plus/package.dart'; | 
				
			||||
import 'package:flutter_example_packages/packages/cached_network_image/package.dart'; | 
				
			||||
import 'package:flutter_example_packages/packages/cupertino_icons/package.dart'; | 
				
			||||
import 'package:flutter_example_packages/packages/device_info_plus/package.dart'; | 
				
			||||
import 'package:flutter_example_packages/packages/flutter_cache_manager/package.dart'; | 
				
			||||
import 'package:flutter_example_packages/packages/flutter_local_notifications/package.dart'; | 
				
			||||
import 'package:flutter_example_packages/packages/flutter_secure_storage/package.dart'; | 
				
			||||
import 'package:flutter_example_packages/packages/get_it/package.dart'; | 
				
			||||
import 'package:flutter_example_packages/packages/google_fonts/package.dart'; | 
				
			||||
import 'package:flutter_example_packages/packages/intl/package.dart'; | 
				
			||||
import 'package:flutter_example_packages/packages/package_info_plus/package.dart'; | 
				
			||||
import 'package:flutter_example_packages/packages/path_provider/package.dart'; | 
				
			||||
import 'package:flutter_example_packages/packages/scoped_model/package.dart'; | 
				
			||||
import 'package:flutter_example_packages/packages/shared_preferences/package.dart'; | 
				
			||||
import 'package:flutter_example_packages/packages/sqflite/package.dart'; | 
				
			||||
import 'package:flutter_example_packages/packages/universal_io/package.dart'; | 
				
			||||
import 'package:flutter_example_packages/packages/wakelock/package.dart'; | 
				
			||||
import 'package:flutter_example_packages/packages/xdga_directories/package.dart'; | 
				
			||||
 | 
				
			||||
/// List app packages | 
				
			||||
final packages = <Package>[ | 
				
			||||
  // Check with preview | 
				
			||||
  packageBatteryPlus, | 
				
			||||
  packageCachedNetworkImage, | 
				
			||||
  packageCupertinoIcons, | 
				
			||||
  packageDeviceInfoPlus, | 
				
			||||
  packageFlutterCacheManager, | 
				
			||||
  packageFlutterLocalNotifications, | 
				
			||||
  packageFlutterSecureStorage, | 
				
			||||
  packageGetIt, | 
				
			||||
  packageGoogleFonts, | 
				
			||||
  packageIntl, | 
				
			||||
  packagePackageInfoPlus, | 
				
			||||
  packagePathProvider, | 
				
			||||
  packageScopedModel, | 
				
			||||
  packageSharedPreferences, | 
				
			||||
  packageSqflite, | 
				
			||||
  packageUniversalIO, | 
				
			||||
  packageWakelock, | 
				
			||||
  packageXdgaDirectories, | 
				
			||||
]; | 
				
			||||
					 | 
				
			||||
@ -0,0 +1,24 @@
					 | 
				
			||||
import 'package:flutter_example_packages/base/package/package_dialog.dart'; | 
				
			||||
 | 
				
			||||
/// Package values | 
				
			||||
final packageScopedModel = PackageDialog( | 
				
			||||
  key: 'scoped_model', | 
				
			||||
  descEN: ''' | 
				
			||||
    A set of utilities that allow you to easily pass a data Model | 
				
			||||
    from a parent Widget down to its descendants. | 
				
			||||
    ''', | 
				
			||||
  descRU: ''' | 
				
			||||
    Набор утилит, позволяющих легко передать Модель данных | 
				
			||||
     от родительского виджета до его потомков. | 
				
			||||
    ''', | 
				
			||||
  messageEN: ''' | 
				
			||||
  This is a platform independent plugin used in this app, should work  | 
				
			||||
  for you too. | 
				
			||||
  ''', | 
				
			||||
  messageRU: ''' | 
				
			||||
  Это плагин независимый от платформы, используется в этом приложении,  | 
				
			||||
  должен работать и у вас. | 
				
			||||
  ''', | 
				
			||||
  version: '2.0.0', | 
				
			||||
  isPlatformDependent: false, | 
				
			||||
); | 
				
			||||
@ -0,0 +1,20 @@
					 | 
				
			||||
import 'package:flutter_example_packages/base/package/package_dialog.dart'; | 
				
			||||
 | 
				
			||||
/// Package values | 
				
			||||
final packageSqflite = PackageDialog( | 
				
			||||
  key: 'sqflite', | 
				
			||||
  descEN: ''' | 
				
			||||
    SQLite plugin for Flutter. Supports iOS, Android, MacOS and Aurora OS. | 
				
			||||
    ''', | 
				
			||||
  descRU: ''' | 
				
			||||
    Плагин SQLite для Flutter. Поддерживает iOS, Android, MacOS и ОС Aurora. | 
				
			||||
    ''', | 
				
			||||
  messageEN: ''' | 
				
			||||
  Platform dependent plugin. Preview of work in development. | 
				
			||||
  ''', | 
				
			||||
  messageRU: ''' | 
				
			||||
  Платформо-зависимый плагин. Превью работы в разработке. | 
				
			||||
  ''', | 
				
			||||
  version: '2.2.6', | 
				
			||||
  isPlatformDependent: true, | 
				
			||||
); | 
				
			||||
@ -0,0 +1,24 @@
					 | 
				
			||||
import 'package:flutter_example_packages/base/package/package_dialog.dart'; | 
				
			||||
 | 
				
			||||
/// Package values | 
				
			||||
final packageUniversalIO = PackageDialog( | 
				
			||||
  key: 'universal_io', | 
				
			||||
  descEN: ''' | 
				
			||||
    A cross-platform dart:io that works on all platforms,  | 
				
			||||
    including browsers. | 
				
			||||
    ''', | 
				
			||||
  descRU: ''' | 
				
			||||
    Кроссплатформенный dart:io, который работает на всех платформах, | 
				
			||||
    включая браузеры. | 
				
			||||
    ''', | 
				
			||||
  messageEN: ''' | 
				
			||||
  This is a platform independent plugin used in this app, should work  | 
				
			||||
  for you too. | 
				
			||||
  ''', | 
				
			||||
  messageRU: ''' | 
				
			||||
  Это плагин независимый от платформы, используется в этом приложении,  | 
				
			||||
  должен работать и у вас. | 
				
			||||
  ''', | 
				
			||||
  version: '2.2.0', | 
				
			||||
  isPlatformDependent: false, | 
				
			||||
); | 
				
			||||
@ -0,0 +1,153 @@
					 | 
				
			||||
import 'package:flutter/material.dart'; | 
				
			||||
import 'package:flutter_example_packages/widgets/base/export.dart'; | 
				
			||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart'; | 
				
			||||
 | 
				
			||||
enum PlatformFilter { | 
				
			||||
  disable, | 
				
			||||
  dependent, | 
				
			||||
  independent, | 
				
			||||
} | 
				
			||||
 | 
				
			||||
class HomeAppBar extends AppStatefulWidget implements PreferredSizeWidget { | 
				
			||||
  const HomeAppBar({ | 
				
			||||
    super.key, | 
				
			||||
    required this.onChangeSearch, | 
				
			||||
    required this.onChangeFilter, | 
				
			||||
  }); | 
				
			||||
 | 
				
			||||
  final void Function(String) onChangeSearch; | 
				
			||||
  final void Function(PlatformFilter) onChangeFilter; | 
				
			||||
 | 
				
			||||
  @override | 
				
			||||
  State<HomeAppBar> createState() => _HomeAppBarState(); | 
				
			||||
 | 
				
			||||
  @override | 
				
			||||
  Size get preferredSize => const Size.fromHeight(56.0); | 
				
			||||
} | 
				
			||||
 | 
				
			||||
class _HomeAppBarState extends AppState<HomeAppBar> { | 
				
			||||
  bool _enableSearch = false; | 
				
			||||
  PlatformFilter _filter = PlatformFilter.disable; | 
				
			||||
  final TextEditingController _searchController = TextEditingController(); | 
				
			||||
  final FocusNode _searchFocus = FocusNode(); | 
				
			||||
 | 
				
			||||
  @override | 
				
			||||
  Widget buildWide( | 
				
			||||
    BuildContext context, | 
				
			||||
    MediaQueryData media, | 
				
			||||
    AppLocalizations l10n, | 
				
			||||
  ) { | 
				
			||||
    final theme = Theme.of(context); | 
				
			||||
    return AppBar( | 
				
			||||
      centerTitle: true, | 
				
			||||
      shape: const Border(bottom: BorderSide(width: 0)), | 
				
			||||
      leading: _enableSearch | 
				
			||||
          ? Padding( | 
				
			||||
              padding: const EdgeInsets.all(8.0), | 
				
			||||
              child: ClipOval( | 
				
			||||
                child: Material( | 
				
			||||
                  color: Colors.blueGrey, | 
				
			||||
                  child: IconButton( | 
				
			||||
                    icon: const Icon(Icons.close), | 
				
			||||
                    tooltip: l10n.homeSearch, | 
				
			||||
                    onPressed: () { | 
				
			||||
                      setState(() { | 
				
			||||
                        widget.onChangeSearch.call(""); | 
				
			||||
                        _searchController.clear(); | 
				
			||||
                        _enableSearch = false; | 
				
			||||
                      }); | 
				
			||||
                    }, | 
				
			||||
                  ), | 
				
			||||
                ), | 
				
			||||
              ), | 
				
			||||
            ) | 
				
			||||
          : null, | 
				
			||||
      title: _enableSearch | 
				
			||||
          ? TextField( | 
				
			||||
              focusNode: _searchFocus, | 
				
			||||
              controller: _searchController, | 
				
			||||
              style: theme.textTheme.titleSmall?.copyWith(color: Colors.white), | 
				
			||||
              cursorColor: Colors.white, | 
				
			||||
              decoration: InputDecoration( | 
				
			||||
                hintText: l10n.homeSearchTitle, | 
				
			||||
                hintStyle: | 
				
			||||
                    theme.textTheme.titleSmall?.copyWith(color: Colors.white54), | 
				
			||||
                border: InputBorder.none, | 
				
			||||
              ), | 
				
			||||
              onChanged: (value) { | 
				
			||||
                widget.onChangeSearch.call(value); | 
				
			||||
              }, | 
				
			||||
            ) | 
				
			||||
          : null, | 
				
			||||
      actions: [ | 
				
			||||
        if (!_enableSearch) | 
				
			||||
          Padding( | 
				
			||||
            padding: const EdgeInsets.all(8.0), | 
				
			||||
            child: ClipOval( | 
				
			||||
              child: Material( | 
				
			||||
                color: Colors.blueGrey, | 
				
			||||
                child: IconButton( | 
				
			||||
                  icon: const Icon(Icons.search), | 
				
			||||
                  tooltip: l10n.homeSearch, | 
				
			||||
                  onPressed: () { | 
				
			||||
                    setState(() { | 
				
			||||
                      _enableSearch = true; | 
				
			||||
                      _searchFocus.requestFocus(); | 
				
			||||
                    }); | 
				
			||||
                  }, | 
				
			||||
                ), | 
				
			||||
              ), | 
				
			||||
            ), | 
				
			||||
          ), | 
				
			||||
        Padding( | 
				
			||||
          padding: const EdgeInsets.all(8.0), | 
				
			||||
          child: ClipOval( | 
				
			||||
            child: Material( | 
				
			||||
              color: () { | 
				
			||||
                switch (_filter) { | 
				
			||||
                  case PlatformFilter.disable: | 
				
			||||
                    return Colors.blueGrey; | 
				
			||||
                  case PlatformFilter.dependent: | 
				
			||||
                    return Colors.deepOrangeAccent; | 
				
			||||
                  case PlatformFilter.independent: | 
				
			||||
                    return Colors.blueAccent; | 
				
			||||
                } | 
				
			||||
              }.call(), | 
				
			||||
              child: IconButton( | 
				
			||||
                icon: () { | 
				
			||||
                  switch (_filter) { | 
				
			||||
                    case PlatformFilter.disable: | 
				
			||||
                      return const Icon(Icons.filter_list_off); | 
				
			||||
                    case PlatformFilter.dependent: | 
				
			||||
                      return const Icon(Icons.filter_list); | 
				
			||||
                    case PlatformFilter.independent: | 
				
			||||
                      return const Icon(Icons.filter_list); | 
				
			||||
                  } | 
				
			||||
                }.call(), | 
				
			||||
                tooltip: l10n.homeFilter, | 
				
			||||
                onPressed: () { | 
				
			||||
                  setState(() { | 
				
			||||
                    switch (_filter) { | 
				
			||||
                      case PlatformFilter.disable: | 
				
			||||
                        _filter = PlatformFilter.dependent; | 
				
			||||
                        widget.onChangeFilter.call(_filter); | 
				
			||||
                        break; | 
				
			||||
                      case PlatformFilter.dependent: | 
				
			||||
                        _filter = PlatformFilter.independent; | 
				
			||||
                        widget.onChangeFilter.call(_filter); | 
				
			||||
                        break; | 
				
			||||
                      case PlatformFilter.independent: | 
				
			||||
                        _filter = PlatformFilter.disable; | 
				
			||||
                        widget.onChangeFilter.call(_filter); | 
				
			||||
                        break; | 
				
			||||
                    } | 
				
			||||
                  }); | 
				
			||||
                }, | 
				
			||||
              ), | 
				
			||||
            ), | 
				
			||||
          ), | 
				
			||||
        ), | 
				
			||||
      ], | 
				
			||||
    ); | 
				
			||||
  } | 
				
			||||
} | 
				
			||||
@ -1,8 +1,7 @@
					 | 
				
			||||
import 'dart:ui'; | 
				
			||||
import 'package:flutter/material.dart'; | 
				
			||||
 | 
				
			||||
class AppColors { | 
				
			||||
  static const Color primary = Color(0xFFCBDCF8); | 
				
			||||
  static const Color primaryDark = Color(0xFF3c67b5); | 
				
			||||
  static const Color secondary = Color(0xFF00b3ad); | 
				
			||||
  static const Color primary = Color(0xFF080614); | 
				
			||||
  static const Color secondary = Colors.blueGrey; | 
				
			||||
  static const Color warning = Color(0xFFfb7d4a); | 
				
			||||
} | 
				
			||||
					 | 
				
			||||
@ -0,0 +1,44 @@
					 | 
				
			||||
import 'package:flutter/material.dart'; | 
				
			||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart'; | 
				
			||||
 | 
				
			||||
abstract class AppState<T extends StatefulWidget> extends State<T> | 
				
			||||
    with WidgetsBindingObserver { | 
				
			||||
  Widget buildWide( | 
				
			||||
    BuildContext context, | 
				
			||||
    MediaQueryData media, | 
				
			||||
    AppLocalizations l10n, | 
				
			||||
  ); | 
				
			||||
 | 
				
			||||
  void onPostFrameCallback() {} | 
				
			||||
 | 
				
			||||
  @override | 
				
			||||
  void initState() { | 
				
			||||
    super.initState(); | 
				
			||||
    WidgetsBinding.instance.addObserver(this); | 
				
			||||
    WidgetsBinding.instance.addPostFrameCallback((_) { | 
				
			||||
      didChangeMetrics(); | 
				
			||||
      Future.delayed(const Duration(milliseconds: 100), () { | 
				
			||||
        didChangeMetrics(); | 
				
			||||
      }); | 
				
			||||
      Future.delayed(const Duration(milliseconds: 200), () { | 
				
			||||
        didChangeMetrics(); | 
				
			||||
      }); | 
				
			||||
      Future.delayed(const Duration(milliseconds: 500), () { | 
				
			||||
        didChangeMetrics(); | 
				
			||||
      }); | 
				
			||||
    }); | 
				
			||||
  } | 
				
			||||
 | 
				
			||||
  @override | 
				
			||||
  void dispose() { | 
				
			||||
    WidgetsBinding.instance.removeObserver(this); | 
				
			||||
    super.dispose(); | 
				
			||||
  } | 
				
			||||
 | 
				
			||||
  @override | 
				
			||||
  Widget build(BuildContext context) => buildWide( | 
				
			||||
        context, | 
				
			||||
        MediaQuery.of(context), | 
				
			||||
        AppLocalizations.of(context)!, | 
				
			||||
      ); | 
				
			||||
} | 
				
			||||
@ -0,0 +1,5 @@
					 | 
				
			||||
import 'package:flutter/material.dart'; | 
				
			||||
 | 
				
			||||
abstract class AppStatefulWidget extends StatefulWidget { | 
				
			||||
  const AppStatefulWidget({super.key}); | 
				
			||||
} | 
				
			||||
@ -0,0 +1,21 @@
					 | 
				
			||||
import 'package:flutter/material.dart'; | 
				
			||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart'; | 
				
			||||
 | 
				
			||||
abstract class AppStatelessWidget extends StatelessWidget { | 
				
			||||
  const AppStatelessWidget({super.key}); | 
				
			||||
 | 
				
			||||
  Widget buildWide( | 
				
			||||
    BuildContext context, | 
				
			||||
    MediaQueryData media, | 
				
			||||
    AppLocalizations l10n, | 
				
			||||
  ); | 
				
			||||
 | 
				
			||||
  void onPostFrameCallback() {} | 
				
			||||
 | 
				
			||||
  @override | 
				
			||||
  Widget build(BuildContext context) => buildWide( | 
				
			||||
        context, | 
				
			||||
        MediaQuery.of(context), | 
				
			||||
        AppLocalizations.of(context)!, | 
				
			||||
      ); | 
				
			||||
} | 
				
			||||
@ -0,0 +1,5 @@
					 | 
				
			||||
library base; | 
				
			||||
 | 
				
			||||
export 'package:flutter_example_packages/widgets/base/app_state.dart'; | 
				
			||||
export 'package:flutter_example_packages/widgets/base/app_stateful_widget.dart'; | 
				
			||||
export 'package:flutter_example_packages/widgets/base/app_stateless_widget.dart'; | 
				
			||||
@ -0,0 +1,11 @@
					 | 
				
			||||
library texts; | 
				
			||||
 | 
				
			||||
export 'package:flutter_example_packages/widgets/texts/text_body_large.dart'; | 
				
			||||
export 'package:flutter_example_packages/widgets/texts/text_body_medium.dart'; | 
				
			||||
export 'package:flutter_example_packages/widgets/texts/text_body_small.dart'; | 
				
			||||
export 'package:flutter_example_packages/widgets/texts/text_headline_large.dart'; | 
				
			||||
export 'package:flutter_example_packages/widgets/texts/text_headline_medium.dart'; | 
				
			||||
export 'package:flutter_example_packages/widgets/texts/text_headline_small.dart'; | 
				
			||||
export 'package:flutter_example_packages/widgets/texts/text_title_large.dart'; | 
				
			||||
export 'package:flutter_example_packages/widgets/texts/text_title_medium.dart'; | 
				
			||||
export 'package:flutter_example_packages/widgets/texts/text_title_small.dart'; | 
				
			||||
@ -0,0 +1,27 @@
					 | 
				
			||||
import 'package:flutter/material.dart'; | 
				
			||||
 | 
				
			||||
class TextBase extends StatelessWidget { | 
				
			||||
  const TextBase( | 
				
			||||
    this.data, { | 
				
			||||
    super.key, | 
				
			||||
    this.color, | 
				
			||||
    this.textAlign, | 
				
			||||
  }); | 
				
			||||
 | 
				
			||||
  final String data; | 
				
			||||
  final Color? color; | 
				
			||||
  final TextAlign? textAlign; | 
				
			||||
 | 
				
			||||
  TextStyle? getStyle(BuildContext context) { | 
				
			||||
    return Theme.of(context).textTheme.bodyMedium; | 
				
			||||
  } | 
				
			||||
 | 
				
			||||
  @override | 
				
			||||
  Widget build(BuildContext context) { | 
				
			||||
    return Text( | 
				
			||||
      data, | 
				
			||||
      style: getStyle(context)?.copyWith(color: color ?? Colors.black), | 
				
			||||
      textAlign: textAlign, | 
				
			||||
    ); | 
				
			||||
  } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,15 @@
					 | 
				
			||||
import 'package:flutter/material.dart'; | 
				
			||||
import 'package:flutter_example_packages/widgets/texts/text_base.dart'; | 
				
			||||
 | 
				
			||||
class TextBodyLarge extends TextBase { | 
				
			||||
  const TextBodyLarge(super.data, { | 
				
			||||
    super.key, | 
				
			||||
    super.color, | 
				
			||||
    super.textAlign, | 
				
			||||
  }); | 
				
			||||
 | 
				
			||||
  @override | 
				
			||||
  TextStyle? getStyle(BuildContext context) { | 
				
			||||
    return Theme.of(context).textTheme.bodyLarge; | 
				
			||||
  } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,15 @@
					 | 
				
			||||
import 'package:flutter/material.dart'; | 
				
			||||
import 'package:flutter_example_packages/widgets/texts/text_base.dart'; | 
				
			||||
 | 
				
			||||
class TextBodyMedium extends TextBase { | 
				
			||||
  const TextBodyMedium(super.data, { | 
				
			||||
    super.key, | 
				
			||||
    super.color, | 
				
			||||
    super.textAlign, | 
				
			||||
  }); | 
				
			||||
 | 
				
			||||
  @override | 
				
			||||
  TextStyle? getStyle(BuildContext context) { | 
				
			||||
    return Theme.of(context).textTheme.bodyMedium; | 
				
			||||
  } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,15 @@
					 | 
				
			||||
import 'package:flutter/material.dart'; | 
				
			||||
import 'package:flutter_example_packages/widgets/texts/text_base.dart'; | 
				
			||||
 | 
				
			||||
class TextBodySmall extends TextBase { | 
				
			||||
  const TextBodySmall(super.data, { | 
				
			||||
    super.key, | 
				
			||||
    super.color, | 
				
			||||
    super.textAlign, | 
				
			||||
  }); | 
				
			||||
 | 
				
			||||
  @override | 
				
			||||
  TextStyle? getStyle(BuildContext context) { | 
				
			||||
    return Theme.of(context).textTheme.bodySmall; | 
				
			||||
  } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,15 @@
					 | 
				
			||||
import 'package:flutter/material.dart'; | 
				
			||||
import 'package:flutter_example_packages/widgets/texts/text_base.dart'; | 
				
			||||
 | 
				
			||||
class TextHeadlineLarge extends TextBase { | 
				
			||||
  const TextHeadlineLarge(super.data, { | 
				
			||||
    super.key, | 
				
			||||
    super.color, | 
				
			||||
    super.textAlign, | 
				
			||||
  }); | 
				
			||||
 | 
				
			||||
  @override | 
				
			||||
  TextStyle? getStyle(BuildContext context) { | 
				
			||||
    return Theme.of(context).textTheme.headlineLarge; | 
				
			||||
  } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,15 @@
					 | 
				
			||||
import 'package:flutter/material.dart'; | 
				
			||||
import 'package:flutter_example_packages/widgets/texts/text_base.dart'; | 
				
			||||
 | 
				
			||||
class TextHeadlineMedium extends TextBase { | 
				
			||||
  const TextHeadlineMedium(super.data, { | 
				
			||||
    super.key, | 
				
			||||
    super.color, | 
				
			||||
    super.textAlign, | 
				
			||||
  }); | 
				
			||||
 | 
				
			||||
  @override | 
				
			||||
  TextStyle? getStyle(BuildContext context) { | 
				
			||||
    return Theme.of(context).textTheme.headlineMedium; | 
				
			||||
  } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,15 @@
					 | 
				
			||||
import 'package:flutter/material.dart'; | 
				
			||||
import 'package:flutter_example_packages/widgets/texts/text_base.dart'; | 
				
			||||
 | 
				
			||||
class TextHeadlineSmall extends TextBase { | 
				
			||||
  const TextHeadlineSmall(super.data, { | 
				
			||||
    super.key, | 
				
			||||
    super.color, | 
				
			||||
    super.textAlign, | 
				
			||||
  }); | 
				
			||||
 | 
				
			||||
  @override | 
				
			||||
  TextStyle? getStyle(BuildContext context) { | 
				
			||||
    return Theme.of(context).textTheme.headlineSmall; | 
				
			||||
  } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,15 @@
					 | 
				
			||||
import 'package:flutter/material.dart'; | 
				
			||||
import 'package:flutter_example_packages/widgets/texts/text_base.dart'; | 
				
			||||
 | 
				
			||||
class TextTitleLarge extends TextBase { | 
				
			||||
  const TextTitleLarge(super.data, { | 
				
			||||
    super.key, | 
				
			||||
    super.color, | 
				
			||||
    super.textAlign, | 
				
			||||
  }); | 
				
			||||
 | 
				
			||||
  @override | 
				
			||||
  TextStyle? getStyle(BuildContext context) { | 
				
			||||
    return Theme.of(context).textTheme.titleLarge; | 
				
			||||
  } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,15 @@
					 | 
				
			||||
import 'package:flutter/material.dart'; | 
				
			||||
import 'package:flutter_example_packages/widgets/texts/text_base.dart'; | 
				
			||||
 | 
				
			||||
class TextTitleMedium extends TextBase { | 
				
			||||
  const TextTitleMedium(super.data, { | 
				
			||||
    super.key, | 
				
			||||
    super.color, | 
				
			||||
    super.textAlign, | 
				
			||||
  }); | 
				
			||||
 | 
				
			||||
  @override | 
				
			||||
  TextStyle? getStyle(BuildContext context) { | 
				
			||||
    return Theme.of(context).textTheme.titleMedium; | 
				
			||||
  } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,15 @@
					 | 
				
			||||
import 'package:flutter/material.dart'; | 
				
			||||
import 'package:flutter_example_packages/widgets/texts/text_base.dart'; | 
				
			||||
 | 
				
			||||
class TextTitleSmall extends TextBase { | 
				
			||||
  const TextTitleSmall(super.data, { | 
				
			||||
    super.key, | 
				
			||||
    super.color, | 
				
			||||
    super.textAlign, | 
				
			||||
  }); | 
				
			||||
 | 
				
			||||
  @override | 
				
			||||
  TextStyle? getStyle(BuildContext context) { | 
				
			||||
    return Theme.of(context).textTheme.titleSmall; | 
				
			||||
  } | 
				
			||||
} | 
				
			||||