From fc818d740788271a21aa15908e1900665c02b63b Mon Sep 17 00:00:00 2001 From: "Ayan G." Date: Sun, 26 Oct 2025 23:40:16 +0530 Subject: [PATCH] feat: implement theme system and shared text styles - Created shared theme system in docpilot_core - Implemented comprehensive text styles (TextStyle) with all variants - Added ThemeHelper for centralized theme access - Integrated theme system in docpilot_doctor and docpilot_patient - Added icon assets to docpilot_doctor - Updated palette definitions for consistency across apps Addresses #17 --- docpilot_core/lib/docpilot_core.dart | 2 + docpilot_core/lib/src/theme/text_style.dart | 200 ++++++++ docpilot_core/lib/src/theme/theme_helper.dart | 119 ++++- docpilot_doctor/.gitignore | 4 + docpilot_doctor/assets/icons/calendar.svg | 11 + .../assets/icons/calendar_selected.svg | 11 + docpilot_doctor/assets/icons/home.svg | 3 + .../assets/icons/home_selected.svg | 3 + docpilot_doctor/assets/icons/patients.svg | 9 + .../assets/icons/patients_selected.svg | 9 + docpilot_doctor/assets/icons/prescribe.svg | 3 + .../assets/icons/prescribe_selected.svg | 3 + docpilot_doctor/lib/core/theme/app_theme.dart | 54 +-- docpilot_doctor/lib/core/theme/palette.dart | 39 +- docpilot_doctor/lib/main.dart | 3 + docpilot_doctor/pubspec.lock | 454 +++++++++++++++++- docpilot_doctor/pubspec.yaml | 18 +- docpilot_patient/.gitignore | 4 + docpilot_patient/lib/core/theme/palette.dart | 39 +- docpilot_patient/pubspec.lock | 454 +++++++++++++++++- docpilot_patient/pubspec.yaml | 16 +- 21 files changed, 1348 insertions(+), 110 deletions(-) create mode 100644 docpilot_core/lib/src/theme/text_style.dart create mode 100644 docpilot_doctor/assets/icons/calendar.svg create mode 100644 docpilot_doctor/assets/icons/calendar_selected.svg create mode 100644 docpilot_doctor/assets/icons/home.svg create mode 100644 docpilot_doctor/assets/icons/home_selected.svg create mode 100644 docpilot_doctor/assets/icons/patients.svg create mode 100644 docpilot_doctor/assets/icons/patients_selected.svg create mode 100644 docpilot_doctor/assets/icons/prescribe.svg create mode 100644 docpilot_doctor/assets/icons/prescribe_selected.svg diff --git a/docpilot_core/lib/docpilot_core.dart b/docpilot_core/lib/docpilot_core.dart index 9e4f0c4..1c8eda6 100644 --- a/docpilot_core/lib/docpilot_core.dart +++ b/docpilot_core/lib/docpilot_core.dart @@ -34,3 +34,5 @@ export 'src/validators/form_validators.dart'; // Theme utilities export 'src/theme/theme_helper.dart'; +export 'src/theme/text_style.dart'; + diff --git a/docpilot_core/lib/src/theme/text_style.dart b/docpilot_core/lib/src/theme/text_style.dart new file mode 100644 index 0000000..6fe1f63 --- /dev/null +++ b/docpilot_core/lib/src/theme/text_style.dart @@ -0,0 +1,200 @@ +import 'package:flutter/material.dart'; + +/// DocPilot Text Styles +/// All text styles following the Figma design system +class DocPilotTextStyles { + // Private constructor to prevent instantiation + DocPilotTextStyles._(); + + // Font family + static const String _fontFamily = 'Inter'; + + // ==================== HEADING STYLES ==================== + + /// Heading 1 - Extra Bold / 24 + /// Font weight: 800, Size: 24, Line height: 1.0 (100%) + static const TextStyle h1 = TextStyle( + fontFamily: _fontFamily, + fontSize: 24, + fontWeight: FontWeight.w800, // Extra Bold + height: 1.0, // 100% line height + letterSpacing: 0.24, + color: Color(0xFF1F1F1F), + ); + + /// Heading 2 - Extra Bold / 18 + /// Font weight: 800, Size: 18, Line height: 1.0 (100%) + static const TextStyle h2 = TextStyle( + fontFamily: _fontFamily, + fontSize: 18, + fontWeight: FontWeight.w800, // Extra Bold + height: 1.0, // 100% line height + letterSpacing: 0.09, + color: Color(0xFF1F1F1F), + ); + + /// Heading 3 - Extra Bold / 16 + /// Font weight: 800, Size: 16, Line height: 1.0 (100%) + static const TextStyle h3 = TextStyle( + fontFamily: _fontFamily, + fontSize: 16, + fontWeight: FontWeight.w800, // Extra Bold + height: 1.0, // 100% line height + letterSpacing: 0.08, + color: Color(0xFF1F1F1F), + ); + + /// Heading 4 - Bold / 14 + /// Font weight: 700, Size: 14, Line height: 1.0 (100%) + static const TextStyle h4 = TextStyle( + fontFamily: _fontFamily, + fontSize: 14, + fontWeight: FontWeight.w700, // Bold + height: 1.0, // 100% line height + color: Color(0xFF1F1F1F), + ); + + /// Heading 5 - Bold / 12 + /// Font weight: 700, Size: 12, Line height: 1.0 (100%) + static const TextStyle h5 = TextStyle( + fontFamily: _fontFamily, + fontSize: 12, + fontWeight: FontWeight.w700, // Bold + height: 1.0, // 100% line height + color: Color(0xFF1F1F1F), + ); + + // ==================== BODY STYLES ==================== + + /// Body XL - Regular / 18 + /// Font weight: 400, Size: 18, Line height: 24 + static const TextStyle bodyXL = TextStyle( + fontFamily: _fontFamily, + fontSize: 18, + fontWeight: FontWeight.w400, // Regular + height: 24 / 18, // Line height: 24px + color: Color(0xFF1F1F1F), + ); + + /// Body L - Regular / 16 + /// Font weight: 400, Size: 16, Line height: 22 + static const TextStyle bodyL = TextStyle( + fontFamily: _fontFamily, + fontSize: 16, + fontWeight: FontWeight.w400, // Regular + height: 22 / 16, // Line height: 22px + color: Color(0xFF1F1F1F), + ); + + /// Body M - Regular / 14 + /// Font weight: 400, Size: 14, Line height: 20 + static const TextStyle bodyM = TextStyle( + fontFamily: _fontFamily, + fontSize: 14, + fontWeight: FontWeight.w400, // Regular + height: 20 / 14, // Line height: 20px + color: Color(0xFF1F1F1F), + ); + + /// Body S - Regular / 12 + /// Font weight: 400, Size: 12, Line height: 16 + static const TextStyle bodyS = TextStyle( + fontFamily: _fontFamily, + fontSize: 12, + fontWeight: FontWeight.w400, // Regular + height: 16 / 12, // Line height: 16px + letterSpacing: 0.12, + color: Color(0xFF1F1F1F), + ); + + /// Body XS - Regular / 10 + /// Font weight: 400, Size: 10, Line height: 14 + static const TextStyle bodyXS = TextStyle( + fontFamily: _fontFamily, + fontSize: 10, + fontWeight: FontWeight.w400, // Regular + height: 14 / 10, // Line height: 14px + letterSpacing: 0.15, + color: Color(0xFF1F1F1F), + ); + + // ==================== ACTION STYLES ==================== + + /// Action L - Semi Bold / 14 + /// Font weight: 600, Size: 14, Line height: 1.0 (100%) + static const TextStyle actionL = TextStyle( + fontFamily: _fontFamily, + fontSize: 14, + fontWeight: FontWeight.w600, // Semi Bold + height: 1.0, // 100% line height + color: Color(0xFF1F1F1F), + ); + + /// Action M - Semi Bold / 12 + /// Font weight: 600, Size: 12, Line height: 1.0 (100%) + static const TextStyle actionM = TextStyle( + fontFamily: _fontFamily, + fontSize: 12, + fontWeight: FontWeight.w600, // Semi Bold + height: 1.0, // 100% line height + color: Color(0xFF1F1F1F), + ); + + /// Action S - Semi Bold / 10 + /// Font weight: 600, Size: 10, Line height: 1.0 (100%) + static const TextStyle actionS = TextStyle( + fontFamily: _fontFamily, + fontSize: 10, + fontWeight: FontWeight.w600, // Semi Bold + height: 1.0, // 100% line height + color: Color(0xFF1F1F1F), + ); + + // ==================== CAPTION STYLES ==================== + + /// Caption M - Semi Bold / 10 (Uppercase) + /// Font weight: 600, Size: 10, Line height: 1.0 (100%) + /// Note: Text should be transformed to uppercase when using this style + static const TextStyle captionM = TextStyle( + fontFamily: _fontFamily, + fontSize: 10, + fontWeight: FontWeight.w600, // Semi Bold + height: 1.0, // 100% line height + letterSpacing: 0.5, + color: Color(0xFF1F1F1F), + ); + + // ==================== COLOR VARIANTS ==================== + + // Helper methods to apply different color variants to text styles + + /// Apply dark color (#1F2024) to any text style + static TextStyle withDarkColor(TextStyle style) { + return style.copyWith(color: const Color(0xFF1F2024)); + } + + /// Apply medium dark color (#494A50) to any text style + static TextStyle withMediumDarkColor(TextStyle style) { + return style.copyWith(color: const Color(0xFF494A50)); + } + + /// Apply light dark color (#71727A) to any text style + static TextStyle withLightDarkColor(TextStyle style) { + return style.copyWith(color: const Color(0xFF71727A)); + } + + /// Apply lightest dark color (#8F9098) to any text style + static TextStyle withLightestDarkColor(TextStyle style) { + return style.copyWith(color: const Color(0xFF8F9098)); + } + + /// Apply highlight color (#006FFD) to any text style + static TextStyle withHighlightColor(TextStyle style) { + return style.copyWith(color: const Color(0xFF006FFD)); + } + + /// Apply white color to any text style + static TextStyle withWhiteColor(TextStyle style) { + return style.copyWith(color: const Color(0xFFFFFFFF)); + } +} diff --git a/docpilot_core/lib/src/theme/theme_helper.dart b/docpilot_core/lib/src/theme/theme_helper.dart index c55f69a..e93bfb8 100644 --- a/docpilot_core/lib/src/theme/theme_helper.dart +++ b/docpilot_core/lib/src/theme/theme_helper.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'text_style.dart'; /// Helper utilities for building consistent theme configurations across DocPilot apps. /// @@ -18,6 +19,35 @@ class ThemeHelper { static const double borderRadiusLarge = 12.0; static const double borderRadiusXLarge = 16.0; + // Neutral Light Colors + static const Color neutralLightDarkest = Color(0xFFC5C6CC); + static const Color neutralLightDark = Color(0xFFD4D6DD); + static const Color neutralLightMedium = Color(0xFFE8E9F1); + static const Color neutralLightLight = Color(0xFFF8F9FE); + static const Color neutralLightLightest = Color(0xFFFFFFFF); + + // Neutral Dark Colors + static const Color neutralDarkDarkest = Color(0xFF1F2024); + static const Color neutralDarkDark = Color(0xFF2F3036); + static const Color neutralDarkMedium = Color(0xFF494A50); + static const Color neutralDarkLight = Color(0xFF71727A); + static const Color neutralDarkLightest = Color(0xFF8F9098); + + // Success Colors + static const Color successDark = Color(0xFF147D64); + static const Color successMedium = Color(0xFF3AC0A0); + static const Color successLight = Color(0xFFE7F4E8); + + // Warning Colors + static const Color warningDark = Color(0xFFE86339); + static const Color warningMedium = Color(0xFFFFB37C); + static const Color warningLight = Color(0xFFFFF4E4); + + // Error Colors + static const Color errorDark = Color(0xFFED3241); + static const Color errorMedium = Color(0xFFFF616D); + static const Color errorLight = Color(0xFFFFE2E5); + /// Input height static const double inputHeight = 48.0; @@ -70,14 +100,72 @@ class ThemeHelper { brightness: brightness, primaryColor: primaryColor, fontFamily: fontFamily, - colorScheme: ColorScheme.fromSeed( seedColor: primaryColor, brightness: brightness, // Customize specific colors primary: primaryColor, ), - + filledButtonTheme: FilledButtonThemeData( + style: FilledButton.styleFrom( + backgroundColor: primaryColor, + foregroundColor: Colors.white, + padding: const EdgeInsets.symmetric( + horizontal: spacingXLarge, + vertical: spacingMedium, + ), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(borderRadiusXLarge), + ), + elevation: 0, + ), + ), + + outlinedButtonTheme: OutlinedButtonThemeData( + style: OutlinedButton.styleFrom( + foregroundColor: primaryColor, + side: BorderSide(color: primaryColor), + padding: const EdgeInsets.symmetric( + horizontal: spacingXLarge, + vertical: spacingMedium, + ), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(borderRadiusXLarge), + ), + ), + ), + + textButtonTheme: TextButtonThemeData( + style: TextButton.styleFrom( + foregroundColor: primaryColor, + padding: const EdgeInsets.symmetric( + horizontal: spacingMedium, + vertical: spacingSmall, + ), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(borderRadiusXLarge), + ), + ), + ), + + progressIndicatorTheme: ProgressIndicatorThemeData( + color: primaryColor, + borderRadius: BorderRadius.circular(borderRadiusSmall), + circularTrackColor: neutralLightMedium, + strokeWidth: 5.0, + strokeAlign: BorderSide.strokeAlignCenter, + strokeCap: StrokeCap.round, + circularTrackPadding: EdgeInsets.all(2.0), + constraints: BoxConstraints( + maxWidth: 32.0, + maxHeight: 32.0, + minHeight: 16.0, + minWidth: 16.0, + ), + linearTrackColor: neutralLightMedium, + linearMinHeight: 6, + ), + // Input decoration theme - no borders since components handle their own inputDecorationTheme: const InputDecorationTheme( border: InputBorder.none, @@ -87,7 +175,22 @@ class ThemeHelper { disabledBorder: InputBorder.none, focusedErrorBorder: InputBorder.none, ), - + navigationBarTheme: NavigationBarThemeData( + backgroundColor: neutralLightLightest, + indicatorColor: neutralLightLightest, + overlayColor: WidgetStatePropertyAll(Colors.transparent), + labelTextStyle: WidgetStateProperty.resolveWith( + (states) { + if (states.contains(WidgetState.selected)) { + return DocPilotTextStyles.actionM + .copyWith(color: neutralDarkDarkest); + } + return DocPilotTextStyles.bodyXS + .copyWith(color: neutralDarkDarkest); + }, + ), + ), + // Text theme with Inter font textTheme: TextTheme( // Display styles @@ -106,7 +209,7 @@ class ThemeHelper { fontWeight: FontWeight.w400, fontFamily: fontFamily, ), - + // Headline styles headlineLarge: TextStyle( fontSize: 32, @@ -123,7 +226,7 @@ class ThemeHelper { fontWeight: FontWeight.w600, fontFamily: fontFamily, ), - + // Title styles titleLarge: TextStyle( fontSize: 20, @@ -140,7 +243,7 @@ class ThemeHelper { fontWeight: FontWeight.w600, fontFamily: fontFamily, ), - + // Body styles bodyLarge: TextStyle( fontSize: 16, @@ -157,7 +260,7 @@ class ThemeHelper { fontWeight: FontWeight.w400, fontFamily: fontFamily, ), - + // Label styles labelLarge: TextStyle( fontSize: 14, @@ -177,4 +280,4 @@ class ThemeHelper { ), ); } -} \ No newline at end of file +} diff --git a/docpilot_doctor/.gitignore b/docpilot_doctor/.gitignore index 3820a95..3ee2b49 100644 --- a/docpilot_doctor/.gitignore +++ b/docpilot_doctor/.gitignore @@ -43,3 +43,7 @@ app.*.map.json /android/app/debug /android/app/profile /android/app/release + +*.gen.dart +*.g.dart +*.freezed.dart \ No newline at end of file diff --git a/docpilot_doctor/assets/icons/calendar.svg b/docpilot_doctor/assets/icons/calendar.svg new file mode 100644 index 0000000..d7d52b5 --- /dev/null +++ b/docpilot_doctor/assets/icons/calendar.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/docpilot_doctor/assets/icons/calendar_selected.svg b/docpilot_doctor/assets/icons/calendar_selected.svg new file mode 100644 index 0000000..869cc39 --- /dev/null +++ b/docpilot_doctor/assets/icons/calendar_selected.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/docpilot_doctor/assets/icons/home.svg b/docpilot_doctor/assets/icons/home.svg new file mode 100644 index 0000000..3360065 --- /dev/null +++ b/docpilot_doctor/assets/icons/home.svg @@ -0,0 +1,3 @@ + + + diff --git a/docpilot_doctor/assets/icons/home_selected.svg b/docpilot_doctor/assets/icons/home_selected.svg new file mode 100644 index 0000000..d549138 --- /dev/null +++ b/docpilot_doctor/assets/icons/home_selected.svg @@ -0,0 +1,3 @@ + + + diff --git a/docpilot_doctor/assets/icons/patients.svg b/docpilot_doctor/assets/icons/patients.svg new file mode 100644 index 0000000..b2235b3 --- /dev/null +++ b/docpilot_doctor/assets/icons/patients.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docpilot_doctor/assets/icons/patients_selected.svg b/docpilot_doctor/assets/icons/patients_selected.svg new file mode 100644 index 0000000..7c38a76 --- /dev/null +++ b/docpilot_doctor/assets/icons/patients_selected.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docpilot_doctor/assets/icons/prescribe.svg b/docpilot_doctor/assets/icons/prescribe.svg new file mode 100644 index 0000000..fcc72cd --- /dev/null +++ b/docpilot_doctor/assets/icons/prescribe.svg @@ -0,0 +1,3 @@ + + + diff --git a/docpilot_doctor/assets/icons/prescribe_selected.svg b/docpilot_doctor/assets/icons/prescribe_selected.svg new file mode 100644 index 0000000..607d07c --- /dev/null +++ b/docpilot_doctor/assets/icons/prescribe_selected.svg @@ -0,0 +1,3 @@ + + + diff --git a/docpilot_doctor/lib/core/theme/app_theme.dart b/docpilot_doctor/lib/core/theme/app_theme.dart index 6f0a110..6c5351c 100644 --- a/docpilot_doctor/lib/core/theme/app_theme.dart +++ b/docpilot_doctor/lib/core/theme/app_theme.dart @@ -187,58 +187,8 @@ class AppTheme { primaryColor: Palette.primary, fontFamily: fontFamily, ); - + // Customize with doctor app specific colors - return baseTheme.copyWith( - scaffoldBackgroundColor: Palette.background, - - // AppBar Theme - appBarTheme: const AppBarTheme( - backgroundColor: Palette.background, - foregroundColor: Palette.textPrimary, - elevation: 0, - centerTitle: false, - ), - - // Button Themes with doctor app colors - elevatedButtonTheme: ElevatedButtonThemeData( - style: ElevatedButton.styleFrom( - backgroundColor: Palette.primary, - foregroundColor: Palette.neutralLightLightest, - padding: const EdgeInsets.symmetric( - horizontal: spacingXLarge, - vertical: spacingMedium, - ), - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(borderRadiusXLarge), - ), - elevation: 0, - ), - ), - - outlinedButtonTheme: OutlinedButtonThemeData( - style: OutlinedButton.styleFrom( - foregroundColor: Palette.primary, - side: const BorderSide(color: Palette.primary), - padding: const EdgeInsets.symmetric( - horizontal: spacingXLarge, - vertical: spacingMedium, - ), - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(borderRadiusXLarge), - ), - ), - ), - - textButtonTheme: TextButtonThemeData( - style: TextButton.styleFrom( - foregroundColor: Palette.primary, - padding: const EdgeInsets.symmetric( - horizontal: spacingMedium, - vertical: spacingSmall, - ), - ), - ), - ); + return baseTheme.copyWith(); } } diff --git a/docpilot_doctor/lib/core/theme/palette.dart b/docpilot_doctor/lib/core/theme/palette.dart index 6fe989e..86ef550 100644 --- a/docpilot_doctor/lib/core/theme/palette.dart +++ b/docpilot_doctor/lib/core/theme/palette.dart @@ -1,3 +1,4 @@ +import 'package:docpilot_core/docpilot_core.dart'; import 'package:flutter/material.dart'; /// DocPilot Color Palette (Doctor App) @@ -16,33 +17,33 @@ class Palette { static const Color primaryLightest = Color(0xFFEAF2FF); // Neutral Light Colors - static const Color neutralLightDarkest = Color(0xFFC5C6CC); - static const Color neutralLightDark = Color(0xFFD4D6DD); - static const Color neutralLightMedium = Color(0xFFE8E9F1); - static const Color neutralLightLight = Color(0xFFF8F9FE); - static const Color neutralLightLightest = Color(0xFFFFFFFF); + static const Color neutralLightDarkest = ThemeHelper.neutralLightDarkest; + static const Color neutralLightDark = ThemeHelper.neutralLightDark; + static const Color neutralLightMedium = ThemeHelper.neutralLightMedium; + static const Color neutralLightLight = ThemeHelper.neutralLightLight; + static const Color neutralLightLightest = ThemeHelper.neutralLightLightest; // Neutral Dark Colors - static const Color neutralDarkDarkest = Color(0xFF1F2024); - static const Color neutralDarkDark = Color(0xFF2F3036); - static const Color neutralDarkMedium = Color(0xFF494A50); - static const Color neutralDarkLight = Color(0xFF71727A); - static const Color neutralDarkLightest = Color(0xFF8F9098); + static const Color neutralDarkDarkest = ThemeHelper.neutralDarkDarkest; + static const Color neutralDarkDark = ThemeHelper.neutralDarkDark; + static const Color neutralDarkMedium = ThemeHelper.neutralDarkMedium; + static const Color neutralDarkLight = ThemeHelper.neutralDarkLight; + static const Color neutralDarkLightest = ThemeHelper.neutralDarkLightest; // Success Colors - static const Color successDark = Color(0xFF147D64); - static const Color successMedium = Color(0xFF3AC0A0); - static const Color successLight = Color(0xFFE7F4E8); + static const Color successDark = ThemeHelper.successDark; + static const Color successMedium = ThemeHelper.successMedium; + static const Color successLight = ThemeHelper.successLight; // Warning Colors - static const Color warningDark = Color(0xFFE86339); - static const Color warningMedium = Color(0xFFFFB37C); - static const Color warningLight = Color(0xFFFFF4E4); + static const Color warningDark = ThemeHelper.warningDark; + static const Color warningMedium = ThemeHelper.warningMedium; + static const Color warningLight = ThemeHelper.warningLight; // Error Colors - static const Color errorDark = Color(0xFFED3241); - static const Color errorMedium = Color(0xFFFF616D); - static const Color errorLight = Color(0xFFFFE2E5); + static const Color errorDark = ThemeHelper.errorDark; + static const Color errorMedium = ThemeHelper.errorMedium; + static const Color errorLight = ThemeHelper.errorLight; // Semantic Colors (for easier access) static const Color primary = primaryDarkest; diff --git a/docpilot_doctor/lib/main.dart b/docpilot_doctor/lib/main.dart index f5e9049..d27230a 100644 --- a/docpilot_doctor/lib/main.dart +++ b/docpilot_doctor/lib/main.dart @@ -1,5 +1,7 @@ import 'package:flutter/material.dart'; + import 'core/router/app_router.dart'; +import 'core/theme/theme.dart'; void main() { runApp(const MainApp()); @@ -13,6 +15,7 @@ class MainApp extends StatelessWidget { return MaterialApp.router( title: 'DocPilot Doctor', routerConfig: appRouter, + theme: AppTheme.lightTheme, ); } } diff --git a/docpilot_doctor/pubspec.lock b/docpilot_doctor/pubspec.lock index 11d2286..de15a77 100644 --- a/docpilot_doctor/pubspec.lock +++ b/docpilot_doctor/pubspec.lock @@ -1,6 +1,38 @@ # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: + _fe_analyzer_shared: + dependency: transitive + description: + name: _fe_analyzer_shared + sha256: c209688d9f5a5f26b2fb47a188131a6fb9e876ae9e47af3737c0b4f58a93470d + url: "https://pub.dev" + source: hosted + version: "91.0.0" + analyzer: + dependency: transitive + description: + name: analyzer + sha256: a40a0cee526a7e1f387c6847bd8a5ccbf510a75952ef8a28338e989558072cb0 + url: "https://pub.dev" + source: hosted + version: "8.4.0" + archive: + dependency: transitive + description: + name: archive + sha256: "2fde1607386ab523f7a36bb3e7edb43bd58e6edaf2ffb29d8a6d578b297fdbbd" + url: "https://pub.dev" + source: hosted + version: "4.0.7" + args: + dependency: transitive + description: + name: args + sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04 + url: "https://pub.dev" + source: hosted + version: "2.7.0" async: dependency: transitive description: @@ -17,6 +49,54 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.2" + build: + dependency: transitive + description: + name: build + sha256: dfb67ccc9a78c642193e0c2d94cb9e48c2c818b3178a86097d644acdcde6a8d9 + url: "https://pub.dev" + source: hosted + version: "4.0.2" + build_config: + dependency: transitive + description: + name: build_config + sha256: "4f64382b97504dc2fcdf487d5aae33418e08b4703fc21249e4db6d804a4d0187" + url: "https://pub.dev" + source: hosted + version: "1.2.0" + build_daemon: + dependency: transitive + description: + name: build_daemon + sha256: "8e928697a82be082206edb0b9c99c5a4ad6bc31c9e9b8b2f291ae65cd4a25daa" + url: "https://pub.dev" + source: hosted + version: "4.0.4" + build_runner: + dependency: "direct dev" + description: + name: build_runner + sha256: "4e54dbeefdc70691ba80b3bce3976af63b5425c8c07dface348dfee664a0edc1" + url: "https://pub.dev" + source: hosted + version: "2.9.0" + built_collection: + dependency: transitive + description: + name: built_collection + sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100" + url: "https://pub.dev" + source: hosted + version: "5.1.1" + built_value: + dependency: transitive + description: + name: built_value + sha256: a30f0a0e38671e89a492c44d005b5545b830a961575bbd8336d42869ff71066d + url: "https://pub.dev" + source: hosted + version: "8.12.0" characters: dependency: transitive description: @@ -25,6 +105,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.4.0" + checked_yaml: + dependency: transitive + description: + name: checked_yaml + sha256: "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f" + url: "https://pub.dev" + source: hosted + version: "2.0.4" clock: dependency: transitive description: @@ -33,6 +121,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.2" + code_builder: + dependency: transitive + description: + name: code_builder + sha256: "11654819532ba94c34de52ff5feb52bd81cba1de00ef2ed622fd50295f9d4243" + url: "https://pub.dev" + source: hosted + version: "4.11.0" collection: dependency: transitive description: @@ -41,6 +137,46 @@ packages: url: "https://pub.dev" source: hosted version: "1.19.1" + color: + dependency: transitive + description: + name: color + sha256: ddcdf1b3badd7008233f5acffaf20ca9f5dc2cd0172b75f68f24526a5f5725cb + url: "https://pub.dev" + source: hosted + version: "3.0.0" + convert: + dependency: transitive + description: + name: convert + sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68 + url: "https://pub.dev" + source: hosted + version: "3.1.2" + crypto: + dependency: transitive + description: + name: crypto + sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855" + url: "https://pub.dev" + source: hosted + version: "3.0.6" + dart_style: + dependency: transitive + description: + name: dart_style + sha256: c87dfe3d56f183ffe9106a18aebc6db431fc7c98c31a54b952a77f3d54a85697 + url: "https://pub.dev" + source: hosted + version: "3.1.2" + dartx: + dependency: transitive + description: + name: dartx + sha256: "8b25435617027257d43e6508b5fe061012880ddfdaa75a71d607c3de2a13d244" + url: "https://pub.dev" + source: hosted + version: "1.2.0" docpilot_core: dependency: "direct main" description: @@ -56,11 +192,51 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.3" + ffi: + dependency: transitive + description: + name: ffi + sha256: "289279317b4b16eb2bb7e271abccd4bf84ec9bdcbe999e278a94b804f5630418" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + file: + dependency: transitive + description: + name: file + sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4 + url: "https://pub.dev" + source: hosted + version: "7.0.1" + fixnum: + dependency: transitive + description: + name: fixnum + sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be + url: "https://pub.dev" + source: hosted + version: "1.1.1" flutter: dependency: "direct main" description: flutter source: sdk version: "0.0.0" + flutter_gen_core: + dependency: transitive + description: + name: flutter_gen_core + sha256: b6bafbbd981da2f964eb45bcb8b8a7676a281084f8922c0c75de4cfbaa849311 + url: "https://pub.dev" + source: hosted + version: "5.12.0" + flutter_gen_runner: + dependency: "direct dev" + description: + name: flutter_gen_runner + sha256: c99b10af9d404e3f46fd1927e7d90099779e935e86022674c4c2a9e6c2a93b29 + url: "https://pub.dev" + source: hosted + version: "5.12.0" flutter_lints: dependency: "direct dev" description: @@ -69,6 +245,14 @@ packages: url: "https://pub.dev" source: hosted version: "5.0.0" + flutter_svg: + dependency: "direct main" + description: + name: flutter_svg + sha256: b9c2ad5872518a27507ab432d1fb97e8813b05f0fc693f9d40fad06d073e0678 + url: "https://pub.dev" + source: hosted + version: "2.2.1" flutter_test: dependency: "direct dev" description: flutter @@ -79,14 +263,94 @@ packages: description: flutter source: sdk version: "0.0.0" + glob: + dependency: transitive + description: + name: glob + sha256: c3f1ee72c96f8f78935e18aa8cecced9ab132419e8625dc187e1c2408efc20de + url: "https://pub.dev" + source: hosted + version: "2.1.3" go_router: dependency: "direct main" description: name: go_router - sha256: f02fd7d2a4dc512fec615529824fdd217fecb3a3d3de68360293a551f21634b3 + sha256: e1d7ffb0db475e6e845eb58b44768f50b830e23960e3df6908924acd8f7f70ea + url: "https://pub.dev" + source: hosted + version: "16.2.5" + graphs: + dependency: transitive + description: + name: graphs + sha256: "741bbf84165310a68ff28fe9e727332eef1407342fca52759cb21ad8177bb8d0" + url: "https://pub.dev" + source: hosted + version: "2.3.2" + hashcodes: + dependency: transitive + description: + name: hashcodes + sha256: "80f9410a5b3c8e110c4b7604546034749259f5d6dcca63e0d3c17c9258f1a651" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + http: + dependency: transitive + description: + name: http + sha256: bb2ce4590bc2667c96f318d68cac1b5a7987ec819351d32b1c987239a815e007 url: "https://pub.dev" source: hosted - version: "14.8.1" + version: "1.5.0" + http_multi_server: + dependency: transitive + description: + name: http_multi_server + sha256: aa6199f908078bb1c5efb8d8638d4ae191aac11b311132c3ef48ce352fb52ef8 + url: "https://pub.dev" + source: hosted + version: "3.2.2" + http_parser: + dependency: transitive + description: + name: http_parser + sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" + url: "https://pub.dev" + source: hosted + version: "4.1.2" + image: + dependency: transitive + description: + name: image + sha256: "4e973fcf4caae1a4be2fa0a13157aa38a8f9cb049db6529aa00b4d71abc4d928" + url: "https://pub.dev" + source: hosted + version: "4.5.4" + image_size_getter: + dependency: transitive + description: + name: image_size_getter + sha256: "7c26937e0ae341ca558b7556591fd0cc456fcc454583b7cb665d2f03e93e590f" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + io: + dependency: transitive + description: + name: io + sha256: dfd5a80599cf0165756e3181807ed3e77daf6dd4137caaad72d0b7931597650b + url: "https://pub.dev" + source: hosted + version: "1.0.5" + json_annotation: + dependency: transitive + description: + name: json_annotation + sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" + url: "https://pub.dev" + source: hosted + version: "4.9.0" leak_tracker: dependency: transitive description: @@ -151,6 +415,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.16.0" + mime: + dependency: transitive + description: + name: mime + sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + package_config: + dependency: transitive + description: + name: package_config + sha256: f096c55ebb7deb7e384101542bfba8c52696c1b56fca2eb62827989ef2353bbc + url: "https://pub.dev" + source: hosted + version: "2.2.0" path: dependency: transitive description: @@ -159,11 +439,83 @@ packages: url: "https://pub.dev" source: hosted version: "1.9.1" + path_parsing: + dependency: transitive + description: + name: path_parsing + sha256: "883402936929eac138ee0a45da5b0f2c80f89913e6dc3bf77eb65b84b409c6ca" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + petitparser: + dependency: transitive + description: + name: petitparser + sha256: "1a97266a94f7350d30ae522c0af07890c70b8e62c71e8e3920d1db4d23c057d1" + url: "https://pub.dev" + source: hosted + version: "7.0.1" + pool: + dependency: transitive + description: + name: pool + sha256: "978783255c543aa3586a1b3c21f6e9d720eb315376a915872c61ef8b5c20177d" + url: "https://pub.dev" + source: hosted + version: "1.5.2" + posix: + dependency: transitive + description: + name: posix + sha256: "6323a5b0fa688b6a010df4905a56b00181479e6d10534cecfecede2aa55add61" + url: "https://pub.dev" + source: hosted + version: "6.0.3" + pub_semver: + dependency: transitive + description: + name: pub_semver + sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585" + url: "https://pub.dev" + source: hosted + version: "2.2.0" + pubspec_parse: + dependency: transitive + description: + name: pubspec_parse + sha256: "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082" + url: "https://pub.dev" + source: hosted + version: "1.5.0" + shelf: + dependency: transitive + description: + name: shelf + sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12 + url: "https://pub.dev" + source: hosted + version: "1.4.2" + shelf_web_socket: + dependency: transitive + description: + name: shelf_web_socket + sha256: "3632775c8e90d6c9712f883e633716432a27758216dfb61bd86a8321c0580925" + url: "https://pub.dev" + source: hosted + version: "3.0.0" sky_engine: dependency: transitive description: flutter source: sdk version: "0.0.0" + solar_icons: + dependency: "direct main" + description: + name: solar_icons + sha256: "2865a62fb0a39a7c2403205bfe05453bd3f2fedbaa8e5c3d436cf2a080afe259" + url: "https://pub.dev" + source: hosted + version: "0.0.5" source_span: dependency: transitive description: @@ -188,6 +540,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.4" + stream_transform: + dependency: transitive + description: + name: stream_transform + sha256: ad47125e588cfd37a9a7f86c7d6356dde8dfe89d071d293f80ca9e9273a33871 + url: "https://pub.dev" + source: hosted + version: "2.1.1" string_scanner: dependency: transitive description: @@ -212,6 +572,46 @@ packages: url: "https://pub.dev" source: hosted version: "0.7.6" + time: + dependency: transitive + description: + name: time + sha256: "370572cf5d1e58adcb3e354c47515da3f7469dac3a95b447117e728e7be6f461" + url: "https://pub.dev" + source: hosted + version: "2.1.5" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 + url: "https://pub.dev" + source: hosted + version: "1.4.0" + vector_graphics: + dependency: transitive + description: + name: vector_graphics + sha256: a4f059dc26fc8295b5921376600a194c4ec7d55e72f2fe4c7d2831e103d461e6 + url: "https://pub.dev" + source: hosted + version: "1.1.19" + vector_graphics_codec: + dependency: transitive + description: + name: vector_graphics_codec + sha256: "99fd9fbd34d9f9a32efd7b6a6aae14125d8237b10403b422a6a6dfeac2806146" + url: "https://pub.dev" + source: hosted + version: "1.1.13" + vector_graphics_compiler: + dependency: transitive + description: + name: vector_graphics_compiler + sha256: d354a7ec6931e6047785f4db12a1f61ec3d43b207fc0790f863818543f8ff0dc + url: "https://pub.dev" + source: hosted + version: "1.1.19" vector_math: dependency: transitive description: @@ -228,6 +628,54 @@ packages: url: "https://pub.dev" source: hosted version: "15.0.2" + watcher: + dependency: transitive + description: + name: watcher + sha256: "592ab6e2892f67760543fb712ff0177f4ec76c031f02f5b4ff8d3fc5eb9fb61a" + url: "https://pub.dev" + source: hosted + version: "1.1.4" + web: + dependency: transitive + description: + name: web + sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" + url: "https://pub.dev" + source: hosted + version: "1.1.1" + web_socket: + dependency: transitive + description: + name: web_socket + sha256: "34d64019aa8e36bf9842ac014bb5d2f5586ca73df5e4d9bf5c936975cae6982c" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + web_socket_channel: + dependency: transitive + description: + name: web_socket_channel + sha256: d645757fb0f4773d602444000a8131ff5d48c9e47adfe9772652dd1a4f2d45c8 + url: "https://pub.dev" + source: hosted + version: "3.0.3" + xml: + dependency: transitive + description: + name: xml + sha256: "971043b3a0d3da28727e40ed3e0b5d18b742fa5a68665cca88e74b7876d5e025" + url: "https://pub.dev" + source: hosted + version: "6.6.1" + yaml: + dependency: transitive + description: + name: yaml + sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce + url: "https://pub.dev" + source: hosted + version: "3.1.3" sdks: dart: ">=3.9.2 <4.0.0" - flutter: ">=3.22.0" + flutter: ">=3.29.0" diff --git a/docpilot_doctor/pubspec.yaml b/docpilot_doctor/pubspec.yaml index c8eba56..685652f 100644 --- a/docpilot_doctor/pubspec.yaml +++ b/docpilot_doctor/pubspec.yaml @@ -7,19 +7,25 @@ environment: sdk: ^3.9.2 dependencies: - flutter: - sdk: flutter docpilot_core: path: ../docpilot_core + flutter: + sdk: flutter + flutter_svg: ^2.2.1 go_router: ^16.2.5 + solar_icons: ^0.0.5 dev_dependencies: + build_runner: ^2.9.0 + flutter_gen_runner: ^5.12.0 + flutter_lints: ^5.0.0 flutter_test: sdk: flutter - flutter_lints: ^5.0.0 flutter: uses-material-design: true + assets: + - assets/icons/ fonts: - family: Inter fonts: @@ -41,3 +47,9 @@ flutter: weight: 800 - asset: assets/fonts/inter/Inter-Black.ttf weight: 900 + +flutter_gen: + output: lib/gen/ + integrations: + image: true + flutter_svg: true \ No newline at end of file diff --git a/docpilot_patient/.gitignore b/docpilot_patient/.gitignore index 3820a95..3ee2b49 100644 --- a/docpilot_patient/.gitignore +++ b/docpilot_patient/.gitignore @@ -43,3 +43,7 @@ app.*.map.json /android/app/debug /android/app/profile /android/app/release + +*.gen.dart +*.g.dart +*.freezed.dart \ No newline at end of file diff --git a/docpilot_patient/lib/core/theme/palette.dart b/docpilot_patient/lib/core/theme/palette.dart index 043fc21..62395e8 100644 --- a/docpilot_patient/lib/core/theme/palette.dart +++ b/docpilot_patient/lib/core/theme/palette.dart @@ -1,3 +1,4 @@ +import 'package:docpilot_core/docpilot_core.dart'; import 'package:flutter/material.dart'; /// DocPilot Color Palette @@ -16,33 +17,33 @@ class Palette { static const Color primaryLightest = Color(0xFFF9D8F5); // Neutral Light Colors - static const Color neutralLightDarkest = Color(0xFFC5C6CC); - static const Color neutralLightDark = Color(0xFFD4D6DD); - static const Color neutralLightMedium = Color(0xFFE8E9F1); - static const Color neutralLightLight = Color(0xFFF8F9FE); - static const Color neutralLightLightest = Color(0xFFFFFFFF); + static const Color neutralLightDarkest = ThemeHelper.neutralLightDarkest; + static const Color neutralLightDark = ThemeHelper.neutralLightDark; + static const Color neutralLightMedium = ThemeHelper.neutralLightMedium; + static const Color neutralLightLight = ThemeHelper.neutralLightLight; + static const Color neutralLightLightest = ThemeHelper.neutralLightLightest; // Neutral Dark Colors - static const Color neutralDarkDarkest = Color(0xFF1F2024); - static const Color neutralDarkDark = Color(0xFF2F3036); - static const Color neutralDarkMedium = Color(0xFF494A50); - static const Color neutralDarkLight = Color(0xFF71727A); - static const Color neutralDarkLightest = Color(0xFF8F9098); + static const Color neutralDarkDarkest = ThemeHelper.neutralDarkDarkest; + static const Color neutralDarkDark = ThemeHelper.neutralDarkDark; + static const Color neutralDarkMedium = ThemeHelper.neutralDarkMedium; + static const Color neutralDarkLight = ThemeHelper.neutralDarkLight; + static const Color neutralDarkLightest = ThemeHelper.neutralDarkLightest; // Success Colors - static const Color successDark = Color(0xFF147D64); - static const Color successMedium = Color(0xFF3AC0A0); - static const Color successLight = Color(0xFFE7F4E8); + static const Color successDark = ThemeHelper.successDark; + static const Color successMedium = ThemeHelper.successMedium; + static const Color successLight = ThemeHelper.successLight; // Warning Colors - static const Color warningDark = Color(0xFFE86339); - static const Color warningMedium = Color(0xFFFFB37C); - static const Color warningLight = Color(0xFFFFF4E4); + static const Color warningDark = ThemeHelper.warningDark; + static const Color warningMedium = ThemeHelper.warningMedium; + static const Color warningLight = ThemeHelper.warningLight; // Error Colors - static const Color errorDark = Color(0xFFED3241); - static const Color errorMedium = Color(0xFFFF616D); - static const Color errorLight = Color(0xFFFFE2E5); + static const Color errorDark = ThemeHelper.errorDark; + static const Color errorMedium = ThemeHelper.errorMedium; + static const Color errorLight = ThemeHelper.errorLight; // Semantic Colors (for easier access) static const Color primary = primaryDarkest; diff --git a/docpilot_patient/pubspec.lock b/docpilot_patient/pubspec.lock index 11d2286..de15a77 100644 --- a/docpilot_patient/pubspec.lock +++ b/docpilot_patient/pubspec.lock @@ -1,6 +1,38 @@ # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: + _fe_analyzer_shared: + dependency: transitive + description: + name: _fe_analyzer_shared + sha256: c209688d9f5a5f26b2fb47a188131a6fb9e876ae9e47af3737c0b4f58a93470d + url: "https://pub.dev" + source: hosted + version: "91.0.0" + analyzer: + dependency: transitive + description: + name: analyzer + sha256: a40a0cee526a7e1f387c6847bd8a5ccbf510a75952ef8a28338e989558072cb0 + url: "https://pub.dev" + source: hosted + version: "8.4.0" + archive: + dependency: transitive + description: + name: archive + sha256: "2fde1607386ab523f7a36bb3e7edb43bd58e6edaf2ffb29d8a6d578b297fdbbd" + url: "https://pub.dev" + source: hosted + version: "4.0.7" + args: + dependency: transitive + description: + name: args + sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04 + url: "https://pub.dev" + source: hosted + version: "2.7.0" async: dependency: transitive description: @@ -17,6 +49,54 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.2" + build: + dependency: transitive + description: + name: build + sha256: dfb67ccc9a78c642193e0c2d94cb9e48c2c818b3178a86097d644acdcde6a8d9 + url: "https://pub.dev" + source: hosted + version: "4.0.2" + build_config: + dependency: transitive + description: + name: build_config + sha256: "4f64382b97504dc2fcdf487d5aae33418e08b4703fc21249e4db6d804a4d0187" + url: "https://pub.dev" + source: hosted + version: "1.2.0" + build_daemon: + dependency: transitive + description: + name: build_daemon + sha256: "8e928697a82be082206edb0b9c99c5a4ad6bc31c9e9b8b2f291ae65cd4a25daa" + url: "https://pub.dev" + source: hosted + version: "4.0.4" + build_runner: + dependency: "direct dev" + description: + name: build_runner + sha256: "4e54dbeefdc70691ba80b3bce3976af63b5425c8c07dface348dfee664a0edc1" + url: "https://pub.dev" + source: hosted + version: "2.9.0" + built_collection: + dependency: transitive + description: + name: built_collection + sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100" + url: "https://pub.dev" + source: hosted + version: "5.1.1" + built_value: + dependency: transitive + description: + name: built_value + sha256: a30f0a0e38671e89a492c44d005b5545b830a961575bbd8336d42869ff71066d + url: "https://pub.dev" + source: hosted + version: "8.12.0" characters: dependency: transitive description: @@ -25,6 +105,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.4.0" + checked_yaml: + dependency: transitive + description: + name: checked_yaml + sha256: "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f" + url: "https://pub.dev" + source: hosted + version: "2.0.4" clock: dependency: transitive description: @@ -33,6 +121,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.2" + code_builder: + dependency: transitive + description: + name: code_builder + sha256: "11654819532ba94c34de52ff5feb52bd81cba1de00ef2ed622fd50295f9d4243" + url: "https://pub.dev" + source: hosted + version: "4.11.0" collection: dependency: transitive description: @@ -41,6 +137,46 @@ packages: url: "https://pub.dev" source: hosted version: "1.19.1" + color: + dependency: transitive + description: + name: color + sha256: ddcdf1b3badd7008233f5acffaf20ca9f5dc2cd0172b75f68f24526a5f5725cb + url: "https://pub.dev" + source: hosted + version: "3.0.0" + convert: + dependency: transitive + description: + name: convert + sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68 + url: "https://pub.dev" + source: hosted + version: "3.1.2" + crypto: + dependency: transitive + description: + name: crypto + sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855" + url: "https://pub.dev" + source: hosted + version: "3.0.6" + dart_style: + dependency: transitive + description: + name: dart_style + sha256: c87dfe3d56f183ffe9106a18aebc6db431fc7c98c31a54b952a77f3d54a85697 + url: "https://pub.dev" + source: hosted + version: "3.1.2" + dartx: + dependency: transitive + description: + name: dartx + sha256: "8b25435617027257d43e6508b5fe061012880ddfdaa75a71d607c3de2a13d244" + url: "https://pub.dev" + source: hosted + version: "1.2.0" docpilot_core: dependency: "direct main" description: @@ -56,11 +192,51 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.3" + ffi: + dependency: transitive + description: + name: ffi + sha256: "289279317b4b16eb2bb7e271abccd4bf84ec9bdcbe999e278a94b804f5630418" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + file: + dependency: transitive + description: + name: file + sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4 + url: "https://pub.dev" + source: hosted + version: "7.0.1" + fixnum: + dependency: transitive + description: + name: fixnum + sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be + url: "https://pub.dev" + source: hosted + version: "1.1.1" flutter: dependency: "direct main" description: flutter source: sdk version: "0.0.0" + flutter_gen_core: + dependency: transitive + description: + name: flutter_gen_core + sha256: b6bafbbd981da2f964eb45bcb8b8a7676a281084f8922c0c75de4cfbaa849311 + url: "https://pub.dev" + source: hosted + version: "5.12.0" + flutter_gen_runner: + dependency: "direct dev" + description: + name: flutter_gen_runner + sha256: c99b10af9d404e3f46fd1927e7d90099779e935e86022674c4c2a9e6c2a93b29 + url: "https://pub.dev" + source: hosted + version: "5.12.0" flutter_lints: dependency: "direct dev" description: @@ -69,6 +245,14 @@ packages: url: "https://pub.dev" source: hosted version: "5.0.0" + flutter_svg: + dependency: "direct main" + description: + name: flutter_svg + sha256: b9c2ad5872518a27507ab432d1fb97e8813b05f0fc693f9d40fad06d073e0678 + url: "https://pub.dev" + source: hosted + version: "2.2.1" flutter_test: dependency: "direct dev" description: flutter @@ -79,14 +263,94 @@ packages: description: flutter source: sdk version: "0.0.0" + glob: + dependency: transitive + description: + name: glob + sha256: c3f1ee72c96f8f78935e18aa8cecced9ab132419e8625dc187e1c2408efc20de + url: "https://pub.dev" + source: hosted + version: "2.1.3" go_router: dependency: "direct main" description: name: go_router - sha256: f02fd7d2a4dc512fec615529824fdd217fecb3a3d3de68360293a551f21634b3 + sha256: e1d7ffb0db475e6e845eb58b44768f50b830e23960e3df6908924acd8f7f70ea + url: "https://pub.dev" + source: hosted + version: "16.2.5" + graphs: + dependency: transitive + description: + name: graphs + sha256: "741bbf84165310a68ff28fe9e727332eef1407342fca52759cb21ad8177bb8d0" + url: "https://pub.dev" + source: hosted + version: "2.3.2" + hashcodes: + dependency: transitive + description: + name: hashcodes + sha256: "80f9410a5b3c8e110c4b7604546034749259f5d6dcca63e0d3c17c9258f1a651" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + http: + dependency: transitive + description: + name: http + sha256: bb2ce4590bc2667c96f318d68cac1b5a7987ec819351d32b1c987239a815e007 url: "https://pub.dev" source: hosted - version: "14.8.1" + version: "1.5.0" + http_multi_server: + dependency: transitive + description: + name: http_multi_server + sha256: aa6199f908078bb1c5efb8d8638d4ae191aac11b311132c3ef48ce352fb52ef8 + url: "https://pub.dev" + source: hosted + version: "3.2.2" + http_parser: + dependency: transitive + description: + name: http_parser + sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" + url: "https://pub.dev" + source: hosted + version: "4.1.2" + image: + dependency: transitive + description: + name: image + sha256: "4e973fcf4caae1a4be2fa0a13157aa38a8f9cb049db6529aa00b4d71abc4d928" + url: "https://pub.dev" + source: hosted + version: "4.5.4" + image_size_getter: + dependency: transitive + description: + name: image_size_getter + sha256: "7c26937e0ae341ca558b7556591fd0cc456fcc454583b7cb665d2f03e93e590f" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + io: + dependency: transitive + description: + name: io + sha256: dfd5a80599cf0165756e3181807ed3e77daf6dd4137caaad72d0b7931597650b + url: "https://pub.dev" + source: hosted + version: "1.0.5" + json_annotation: + dependency: transitive + description: + name: json_annotation + sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" + url: "https://pub.dev" + source: hosted + version: "4.9.0" leak_tracker: dependency: transitive description: @@ -151,6 +415,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.16.0" + mime: + dependency: transitive + description: + name: mime + sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + package_config: + dependency: transitive + description: + name: package_config + sha256: f096c55ebb7deb7e384101542bfba8c52696c1b56fca2eb62827989ef2353bbc + url: "https://pub.dev" + source: hosted + version: "2.2.0" path: dependency: transitive description: @@ -159,11 +439,83 @@ packages: url: "https://pub.dev" source: hosted version: "1.9.1" + path_parsing: + dependency: transitive + description: + name: path_parsing + sha256: "883402936929eac138ee0a45da5b0f2c80f89913e6dc3bf77eb65b84b409c6ca" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + petitparser: + dependency: transitive + description: + name: petitparser + sha256: "1a97266a94f7350d30ae522c0af07890c70b8e62c71e8e3920d1db4d23c057d1" + url: "https://pub.dev" + source: hosted + version: "7.0.1" + pool: + dependency: transitive + description: + name: pool + sha256: "978783255c543aa3586a1b3c21f6e9d720eb315376a915872c61ef8b5c20177d" + url: "https://pub.dev" + source: hosted + version: "1.5.2" + posix: + dependency: transitive + description: + name: posix + sha256: "6323a5b0fa688b6a010df4905a56b00181479e6d10534cecfecede2aa55add61" + url: "https://pub.dev" + source: hosted + version: "6.0.3" + pub_semver: + dependency: transitive + description: + name: pub_semver + sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585" + url: "https://pub.dev" + source: hosted + version: "2.2.0" + pubspec_parse: + dependency: transitive + description: + name: pubspec_parse + sha256: "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082" + url: "https://pub.dev" + source: hosted + version: "1.5.0" + shelf: + dependency: transitive + description: + name: shelf + sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12 + url: "https://pub.dev" + source: hosted + version: "1.4.2" + shelf_web_socket: + dependency: transitive + description: + name: shelf_web_socket + sha256: "3632775c8e90d6c9712f883e633716432a27758216dfb61bd86a8321c0580925" + url: "https://pub.dev" + source: hosted + version: "3.0.0" sky_engine: dependency: transitive description: flutter source: sdk version: "0.0.0" + solar_icons: + dependency: "direct main" + description: + name: solar_icons + sha256: "2865a62fb0a39a7c2403205bfe05453bd3f2fedbaa8e5c3d436cf2a080afe259" + url: "https://pub.dev" + source: hosted + version: "0.0.5" source_span: dependency: transitive description: @@ -188,6 +540,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.4" + stream_transform: + dependency: transitive + description: + name: stream_transform + sha256: ad47125e588cfd37a9a7f86c7d6356dde8dfe89d071d293f80ca9e9273a33871 + url: "https://pub.dev" + source: hosted + version: "2.1.1" string_scanner: dependency: transitive description: @@ -212,6 +572,46 @@ packages: url: "https://pub.dev" source: hosted version: "0.7.6" + time: + dependency: transitive + description: + name: time + sha256: "370572cf5d1e58adcb3e354c47515da3f7469dac3a95b447117e728e7be6f461" + url: "https://pub.dev" + source: hosted + version: "2.1.5" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 + url: "https://pub.dev" + source: hosted + version: "1.4.0" + vector_graphics: + dependency: transitive + description: + name: vector_graphics + sha256: a4f059dc26fc8295b5921376600a194c4ec7d55e72f2fe4c7d2831e103d461e6 + url: "https://pub.dev" + source: hosted + version: "1.1.19" + vector_graphics_codec: + dependency: transitive + description: + name: vector_graphics_codec + sha256: "99fd9fbd34d9f9a32efd7b6a6aae14125d8237b10403b422a6a6dfeac2806146" + url: "https://pub.dev" + source: hosted + version: "1.1.13" + vector_graphics_compiler: + dependency: transitive + description: + name: vector_graphics_compiler + sha256: d354a7ec6931e6047785f4db12a1f61ec3d43b207fc0790f863818543f8ff0dc + url: "https://pub.dev" + source: hosted + version: "1.1.19" vector_math: dependency: transitive description: @@ -228,6 +628,54 @@ packages: url: "https://pub.dev" source: hosted version: "15.0.2" + watcher: + dependency: transitive + description: + name: watcher + sha256: "592ab6e2892f67760543fb712ff0177f4ec76c031f02f5b4ff8d3fc5eb9fb61a" + url: "https://pub.dev" + source: hosted + version: "1.1.4" + web: + dependency: transitive + description: + name: web + sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" + url: "https://pub.dev" + source: hosted + version: "1.1.1" + web_socket: + dependency: transitive + description: + name: web_socket + sha256: "34d64019aa8e36bf9842ac014bb5d2f5586ca73df5e4d9bf5c936975cae6982c" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + web_socket_channel: + dependency: transitive + description: + name: web_socket_channel + sha256: d645757fb0f4773d602444000a8131ff5d48c9e47adfe9772652dd1a4f2d45c8 + url: "https://pub.dev" + source: hosted + version: "3.0.3" + xml: + dependency: transitive + description: + name: xml + sha256: "971043b3a0d3da28727e40ed3e0b5d18b742fa5a68665cca88e74b7876d5e025" + url: "https://pub.dev" + source: hosted + version: "6.6.1" + yaml: + dependency: transitive + description: + name: yaml + sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce + url: "https://pub.dev" + source: hosted + version: "3.1.3" sdks: dart: ">=3.9.2 <4.0.0" - flutter: ">=3.22.0" + flutter: ">=3.29.0" diff --git a/docpilot_patient/pubspec.yaml b/docpilot_patient/pubspec.yaml index 7319944..0ef9e3c 100644 --- a/docpilot_patient/pubspec.yaml +++ b/docpilot_patient/pubspec.yaml @@ -7,16 +7,20 @@ environment: sdk: ^3.9.2 dependencies: - flutter: - sdk: flutter docpilot_core: path: ../docpilot_core + flutter: + sdk: flutter + flutter_svg: ^2.2.1 go_router: ^16.2.5 + solar_icons: ^0.0.5 dev_dependencies: + build_runner: ^2.9.0 + flutter_gen_runner: ^5.12.0 + flutter_lints: ^5.0.0 flutter_test: sdk: flutter - flutter_lints: ^5.0.0 flutter: uses-material-design: true @@ -41,3 +45,9 @@ flutter: weight: 800 - asset: assets/fonts/inter/Inter-Black.ttf weight: 900 + +flutter_gen: + output: lib/gen/ + integrations: + image: true + flutter_svg: true \ No newline at end of file