feat(ai-scribe): Optimize imports to avoid having too many lines of code in a single file

This commit is contained in:
dab246
2025-12-18 09:48:03 +07:00
committed by Dat H. Pham
parent 860393fc90
commit af5f316e31
29 changed files with 71 additions and 118 deletions
+20
View File
@@ -6,17 +6,37 @@ export 'scribe/ai/domain/model/ai_response.dart';
export 'scribe/ai/domain/repository/ai_scribe_repository.dart'; export 'scribe/ai/domain/repository/ai_scribe_repository.dart';
export 'scribe/ai/domain/state/generate_ai_text_state.dart'; export 'scribe/ai/domain/state/generate_ai_text_state.dart';
export 'scribe/ai/domain/usecases/generate_ai_text_interactor.dart'; export 'scribe/ai/domain/usecases/generate_ai_text_interactor.dart';
export 'scribe/ai/localizations/scribe_localizations.dart';
export 'scribe/ai/presentation/model/ai_action.dart'; export 'scribe/ai/presentation/model/ai_action.dart';
export 'scribe/ai/presentation/model/ai_capability.dart'; export 'scribe/ai/presentation/model/ai_capability.dart';
export 'scribe/ai/presentation/model/ai_scribe_menu_action.dart'; export 'scribe/ai/presentation/model/ai_scribe_menu_action.dart';
export 'scribe/ai/presentation/model/context_menu/ai_scribe_action_context_menu_action.dart';
export 'scribe/ai/presentation/model/context_menu/ai_scribe_category_context_menu_action.dart';
export 'scribe/ai/presentation/model/context_menu/ai_scribe_context_menu_action.dart';
export 'scribe/ai/presentation/model/context_menu/ai_scribe_suggestion_actions.dart';
export 'scribe/ai/presentation/model/modal/anchored_modal_layout_input.dart'; export 'scribe/ai/presentation/model/modal/anchored_modal_layout_input.dart';
export 'scribe/ai/presentation/model/modal/anchored_modal_layout_result.dart'; export 'scribe/ai/presentation/model/modal/anchored_modal_layout_result.dart';
export 'scribe/ai/presentation/model/modal/modal_cross_axis_alignment.dart';
export 'scribe/ai/presentation/model/modal/modal_placement.dart'; export 'scribe/ai/presentation/model/modal/modal_placement.dart';
export 'scribe/ai/presentation/model/text_selection_model.dart'; export 'scribe/ai/presentation/model/text_selection_model.dart';
export 'scribe/ai/presentation/styles/ai_scribe_styles.dart';
export 'scribe/ai/presentation/utils/ai_scribe_constants.dart'; export 'scribe/ai/presentation/utils/ai_scribe_constants.dart';
export 'scribe/ai/presentation/utils/context_menu/hover_submenu_controller.dart';
export 'scribe/ai/presentation/utils/context_menu/popup_submenu_controller.dart';
export 'scribe/ai/presentation/utils/modal/ai_scribe_modal_manager.dart'; export 'scribe/ai/presentation/utils/modal/ai_scribe_modal_manager.dart';
export 'scribe/ai/presentation/utils/modal/anchored_modal_layout_calculator.dart'; export 'scribe/ai/presentation/utils/modal/anchored_modal_layout_calculator.dart';
export 'scribe/ai/presentation/widgets/button/ai_assistant_button.dart'; export 'scribe/ai/presentation/widgets/button/ai_assistant_button.dart';
export 'scribe/ai/presentation/widgets/button/inline_ai_assist_button.dart'; export 'scribe/ai/presentation/widgets/button/inline_ai_assist_button.dart';
export 'scribe/ai/presentation/widgets/context_menu/ai_scribe_context_menu.dart'; export 'scribe/ai/presentation/widgets/context_menu/ai_scribe_context_menu.dart';
export 'scribe/ai/presentation/widgets/context_menu/ai_scribe_context_menu_item.dart';
export 'scribe/ai/presentation/widgets/context_menu/ai_scribe_submenu.dart';
export 'scribe/ai/presentation/widgets/context_menu/ai_scribe_submenu_item.dart';
export 'scribe/ai/presentation/widgets/modal/ai_scribe_modal_widget.dart';
export 'scribe/ai/presentation/widgets/modal/ai_scribe_suggestion_widget.dart';
export 'scribe/ai/presentation/widgets/modal/suggestion/ai_scribe_suggestion_error.dart';
export 'scribe/ai/presentation/widgets/modal/suggestion/ai_scribe_suggestion_header.dart';
export 'scribe/ai/presentation/widgets/modal/suggestion/ai_scribe_suggestion_loading.dart';
export 'scribe/ai/presentation/widgets/modal/suggestion/ai_scribe_suggestion_success.dart';
export 'scribe/ai/presentation/widgets/modal/suggestion/ai_scribe_suggestion_success_list_actions.dart';
export 'scribe/ai/presentation/widgets/overlay/ai_selection_overlay.dart'; export 'scribe/ai/presentation/widgets/overlay/ai_selection_overlay.dart';
export 'scribe/ai/presentation/widgets/search/ai_scribe_bar.dart';
@@ -6,11 +6,10 @@ part 'ai_api_response.g.dart';
class AIApiResponse { class AIApiResponse {
final List<Choice> choices; final List<Choice> choices;
const AIApiResponse({ const AIApiResponse({required this.choices});
required this.choices
});
factory AIApiResponse.fromJson(Map<String, dynamic> json) => _$AIApiResponseFromJson(json); factory AIApiResponse.fromJson(Map<String, dynamic> json) =>
_$AIApiResponseFromJson(json);
Map<String, dynamic> toJson() => _$AIApiResponseToJson(this); Map<String, dynamic> toJson() => _$AIApiResponseToJson(this);
@@ -21,9 +20,7 @@ class AIApiResponse {
class Choice { class Choice {
final Message message; final Message message;
const Choice({ const Choice({required this.message});
required this.message
});
factory Choice.fromJson(Map<String, dynamic> json) => _$ChoiceFromJson(json); factory Choice.fromJson(Map<String, dynamic> json) => _$ChoiceFromJson(json);
@@ -34,11 +31,10 @@ class Choice {
class Message { class Message {
final String content; final String content;
const Message({ const Message({required this.content});
required this.content
});
factory Message.fromJson(Map<String, dynamic> json) => _$MessageFromJson(json); factory Message.fromJson(Map<String, dynamic> json) =>
_$MessageFromJson(json);
Map<String, dynamic> toJson() => _$MessageToJson(this); Map<String, dynamic> toJson() => _$MessageToJson(this);
} }
@@ -6,8 +6,10 @@ import 'package:scribe/scribe/ai/presentation/model/ai_scribe_menu_action.dart';
class AIPrompts { class AIPrompts {
static String buildPrompt(AIAction action, String? text) { static String buildPrompt(AIAction action, String? text) {
return switch (action) { return switch (action) {
PredefinedAction(action: final menuAction) => buildPredefinedPrompt(menuAction, text ?? ''), PredefinedAction(action: final menuAction) =>
CustomPromptAction(prompt: final customPrompt) => buildCustomPrompt(customPrompt, text), buildPredefinedPrompt(menuAction, text ?? ''),
CustomPromptAction(prompt: final customPrompt) =>
buildCustomPrompt(customPrompt, text),
}; };
} }
@@ -1,4 +1,5 @@
import 'package:core/core.dart'; import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart';
import 'package:scribe/scribe/ai/domain/model/ai_response.dart'; import 'package:scribe/scribe/ai/domain/model/ai_response.dart';
class GenerateAITextLoading extends LoadingState {} class GenerateAITextLoading extends LoadingState {}
@@ -1,14 +1,10 @@
import 'package:core/core.dart'; import 'package:core/data/network/dio_client.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:scribe/scribe/ai/data/datasource/ai_datasource.dart'; import 'package:scribe/scribe.dart';
import 'package:scribe/scribe/ai/data/datasource_impl/ai_datasource_impl.dart'; import 'package:scribe/scribe/ai/data/datasource_impl/ai_datasource_impl.dart';
import 'package:scribe/scribe/ai/data/network/ai_api.dart'; import 'package:scribe/scribe/ai/data/network/ai_api.dart';
import 'package:scribe/scribe/ai/data/repository/ai_repository_impl.dart';
import 'package:scribe/scribe/ai/domain/repository/ai_scribe_repository.dart';
import 'package:scribe/scribe/ai/domain/usecases/generate_ai_text_interactor.dart';
class AIScribeBindings extends Bindings { class AIScribeBindings extends Bindings {
final String aiEndpoint; final String aiEndpoint;
AIScribeBindings(this.aiEndpoint); AIScribeBindings(this.aiEndpoint);
@@ -1,5 +1,4 @@
import 'package:scribe/scribe/ai/localizations/scribe_localizations.dart'; import 'package:scribe/scribe.dart';
import 'package:scribe/scribe/ai/presentation/model/ai_scribe_menu_action.dart';
sealed class AIAction { sealed class AIAction {
const AIAction(); const AIAction();
@@ -9,13 +9,16 @@ class AICapability extends CapabilityProperties {
final String? scribeEndpoint; final String? scribeEndpoint;
factory AICapability.fromJson(Map<String, dynamic> json) => _$AICapabilityFromJson(json); factory AICapability.fromJson(Map<String, dynamic> json) =>
_$AICapabilityFromJson(json);
Map<String, dynamic> toJson() => _$AICapabilityToJson(this); Map<String, dynamic> toJson() => _$AICapabilityToJson(this);
factory AICapability.deserialize(Map<String, dynamic> json) => _$AICapabilityFromJson(json); factory AICapability.deserialize(Map<String, dynamic> json) =>
_$AICapabilityFromJson(json);
bool get isScribeEndpointAvailable => scribeEndpoint?.trim().isNotEmpty == true; bool get isScribeEndpointAvailable =>
scribeEndpoint?.trim().isNotEmpty == true;
@override @override
List<Object?> get props => [scribeEndpoint]; List<Object?> get props => [scribeEndpoint];
@@ -1,7 +1,5 @@
import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/resources/image_paths.dart';
import 'package:scribe/scribe/ai/localizations/scribe_localizations.dart'; import 'package:scribe/scribe.dart';
import 'package:scribe/scribe/ai/presentation/model/ai_scribe_menu_action.dart';
import 'package:scribe/scribe/ai/presentation/model/context_menu/ai_scribe_context_menu_action.dart';
class AiScribeActionContextMenuAction class AiScribeActionContextMenuAction
extends AiScribeContextMenuAction<AIScribeMenuAction> { extends AiScribeContextMenuAction<AIScribeMenuAction> {
@@ -1,8 +1,5 @@
import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/resources/image_paths.dart';
import 'package:scribe/scribe/ai/localizations/scribe_localizations.dart'; import 'package:scribe/scribe.dart';
import 'package:scribe/scribe/ai/presentation/model/ai_scribe_menu_action.dart';
import 'package:scribe/scribe/ai/presentation/model/context_menu/ai_scribe_action_context_menu_action.dart';
import 'package:scribe/scribe/ai/presentation/model/context_menu/ai_scribe_context_menu_action.dart';
class AiScribeCategoryContextMenuAction class AiScribeCategoryContextMenuAction
extends AiScribeContextMenuAction<AIScribeMenuCategory> { extends AiScribeContextMenuAction<AIScribeMenuCategory> {
@@ -12,4 +12,4 @@ enum AiScribeSuggestionActions {
return localizations.insert; return localizations.insert;
} }
} }
} }
@@ -1,6 +1,5 @@
import 'package:flutter/animation.dart'; import 'package:flutter/animation.dart';
import 'package:scribe/scribe/ai/presentation/model/modal/modal_cross_axis_alignment.dart'; import 'package:scribe/scribe.dart';
import 'package:scribe/scribe/ai/presentation/model/modal/modal_placement.dart';
class AnchoredModalLayoutInput { class AnchoredModalLayoutInput {
final Size screenSize; final Size screenSize;
@@ -1,6 +1 @@
enum ModalPlacement { enum ModalPlacement { right, bottom, top, left }
right,
bottom,
top,
left
}
@@ -68,21 +68,24 @@ abstract final class AIScribeTextStyles {
color: Colors.black.withValues(alpha: 0.85), color: Colors.black.withValues(alpha: 0.85),
); );
static final TextStyle suggestionTitle = ThemeUtils.textStyleInter700().copyWith( static final TextStyle suggestionTitle =
ThemeUtils.textStyleInter700().copyWith(
fontSize: 14, fontSize: 14,
height: 22 / 14, height: 22 / 14,
letterSpacing: 0.4, letterSpacing: 0.4,
color: AppColor.black1A1A1A.withValues(alpha: 0.85), color: AppColor.black1A1A1A.withValues(alpha: 0.85),
); );
static final TextStyle suggestionLoading = ThemeUtils.textStyleInter400.copyWith( static final TextStyle suggestionLoading =
ThemeUtils.textStyleInter400.copyWith(
fontSize: 14, fontSize: 14,
height: 22 / 14, height: 22 / 14,
letterSpacing: 0.4, letterSpacing: 0.4,
color: AppColor.black1A1A1A.withValues(alpha: 0.85), color: AppColor.black1A1A1A.withValues(alpha: 0.85),
); );
static final TextStyle suggestionContent = ThemeUtils.textStyleInter400.copyWith( static final TextStyle suggestionContent =
ThemeUtils.textStyleInter400.copyWith(
fontSize: 14, fontSize: 14,
height: 22 / 14, height: 22 / 14,
letterSpacing: 0.4, letterSpacing: 0.4,
@@ -1,15 +1,7 @@
import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/resources/image_paths.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:scribe/scribe/ai/presentation/model/ai_action.dart'; import 'package:scribe/scribe.dart';
import 'package:scribe/scribe/ai/presentation/model/ai_scribe_menu_action.dart';
import 'package:scribe/scribe/ai/presentation/model/modal/modal_cross_axis_alignment.dart';
import 'package:scribe/scribe/ai/presentation/model/modal/modal_placement.dart';
import 'package:scribe/scribe/ai/presentation/styles/ai_scribe_styles.dart';
import 'package:scribe/scribe/ai/presentation/utils/context_menu/popup_submenu_controller.dart';
import 'package:scribe/scribe/ai/presentation/widgets/modal/ai_scribe_modal_widget.dart';
import 'package:scribe/scribe/ai/presentation/widgets/modal/ai_scribe_suggestion_widget.dart';
import 'package:scribe/scribe/ai/presentation/widgets/modal/suggestion/ai_scribe_suggestion_success_list_actions.dart';
class AiScribeModalManager { class AiScribeModalManager {
AiScribeModalManager._(); AiScribeModalManager._();
@@ -1,8 +1,5 @@
import 'package:flutter/animation.dart'; import 'package:flutter/animation.dart';
import 'package:scribe/scribe/ai/presentation/model/modal/anchored_modal_layout_input.dart'; import 'package:scribe/scribe.dart';
import 'package:scribe/scribe/ai/presentation/model/modal/anchored_modal_layout_result.dart';
import 'package:scribe/scribe/ai/presentation/model/modal/modal_cross_axis_alignment.dart';
import 'package:scribe/scribe/ai/presentation/model/modal/modal_placement.dart';
class AnchoredModalLayoutCalculator { class AnchoredModalLayoutCalculator {
static AnchoredModalLayoutResult calculate({ static AnchoredModalLayoutResult calculate({
@@ -1,8 +1,7 @@
import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/resources/image_paths.dart';
import 'package:core/presentation/views/button/tmail_button_widget.dart'; import 'package:core/presentation/views/button/tmail_button_widget.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:scribe/scribe/ai/localizations/scribe_localizations.dart'; import 'package:scribe/scribe.dart';
import 'package:scribe/scribe/ai/presentation/styles/ai_scribe_styles.dart';
typedef OnOpenAiAssistantModal = void Function( typedef OnOpenAiAssistantModal = void Function(
Offset? position, Offset? position,
@@ -1,10 +1,7 @@
import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/resources/image_paths.dart';
import 'package:core/presentation/views/button/tmail_button_widget.dart'; import 'package:core/presentation/views/button/tmail_button_widget.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:scribe/scribe/ai/presentation/model/ai_scribe_menu_action.dart'; import 'package:scribe/scribe.dart';
import 'package:scribe/scribe/ai/presentation/styles/ai_scribe_styles.dart';
import 'package:scribe/scribe/ai/presentation/utils/modal/ai_scribe_modal_manager.dart';
import 'package:scribe/scribe/ai/presentation/widgets/modal/suggestion/ai_scribe_suggestion_success_list_actions.dart';
class InlineAiAssistButton extends StatelessWidget { class InlineAiAssistButton extends StatelessWidget {
final ImagePaths imagePaths; final ImagePaths imagePaths;
@@ -1,10 +1,6 @@
import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/resources/image_paths.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:scribe/scribe/ai/presentation/model/context_menu/ai_scribe_context_menu_action.dart'; import 'package:scribe/scribe.dart';
import 'package:scribe/scribe/ai/presentation/styles/ai_scribe_styles.dart';
import 'package:scribe/scribe/ai/presentation/utils/context_menu/popup_submenu_controller.dart';
import 'package:scribe/scribe/ai/presentation/widgets/context_menu/ai_scribe_context_menu_item.dart';
import 'package:scribe/scribe/ai/presentation/widgets/context_menu/ai_scribe_submenu.dart';
class AiScribeContextMenu extends StatefulWidget { class AiScribeContextMenu extends StatefulWidget {
final ImagePaths imagePaths; final ImagePaths imagePaths;
@@ -2,9 +2,7 @@ import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/resources/image_paths.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/flutter_svg.dart';
import 'package:scribe/scribe/ai/presentation/model/context_menu/ai_scribe_context_menu_action.dart'; import 'package:scribe/scribe.dart';
import 'package:scribe/scribe/ai/presentation/styles/ai_scribe_styles.dart';
import 'package:scribe/scribe/ai/presentation/utils/context_menu/hover_submenu_controller.dart';
class AiScribeContextMenuItem extends StatefulWidget { class AiScribeContextMenuItem extends StatefulWidget {
final AiScribeContextMenuAction menuAction; final AiScribeContextMenuAction menuAction;
@@ -1,7 +1,5 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:scribe/scribe/ai/presentation/model/context_menu/ai_scribe_context_menu_action.dart'; import 'package:scribe/scribe.dart';
import 'package:scribe/scribe/ai/presentation/styles/ai_scribe_styles.dart';
import 'package:scribe/scribe/ai/presentation/widgets/context_menu/ai_scribe_submenu_item.dart';
class AiScribeSubmenu extends StatelessWidget { class AiScribeSubmenu extends StatelessWidget {
final List<AiScribeContextMenuAction> menuActions; final List<AiScribeContextMenuAction> menuActions;
@@ -1,8 +1,7 @@
import 'package:core/presentation/extensions/color_extension.dart'; import 'package:core/presentation/extensions/color_extension.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/flutter_svg.dart';
import 'package:scribe/scribe/ai/presentation/model/context_menu/ai_scribe_context_menu_action.dart'; import 'package:scribe/scribe.dart';
import 'package:scribe/scribe/ai/presentation/styles/ai_scribe_styles.dart';
class AiScribeSubmenuItem extends StatelessWidget { class AiScribeSubmenuItem extends StatelessWidget {
final AiScribeContextMenuAction menuAction; final AiScribeContextMenuAction menuAction;
@@ -3,20 +3,7 @@ import 'dart:math';
import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/resources/image_paths.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:pointer_interceptor/pointer_interceptor.dart'; import 'package:pointer_interceptor/pointer_interceptor.dart';
import 'package:scribe/scribe/ai/localizations/scribe_localizations.dart'; import 'package:scribe/scribe.dart';
import 'package:scribe/scribe/ai/presentation/model/ai_action.dart';
import 'package:scribe/scribe/ai/presentation/model/ai_scribe_menu_action.dart';
import 'package:scribe/scribe/ai/presentation/model/context_menu/ai_scribe_action_context_menu_action.dart';
import 'package:scribe/scribe/ai/presentation/model/context_menu/ai_scribe_category_context_menu_action.dart';
import 'package:scribe/scribe/ai/presentation/model/context_menu/ai_scribe_context_menu_action.dart';
import 'package:scribe/scribe/ai/presentation/model/modal/anchored_modal_layout_input.dart';
import 'package:scribe/scribe/ai/presentation/model/modal/modal_cross_axis_alignment.dart';
import 'package:scribe/scribe/ai/presentation/model/modal/modal_placement.dart';
import 'package:scribe/scribe/ai/presentation/styles/ai_scribe_styles.dart';
import 'package:scribe/scribe/ai/presentation/utils/context_menu/popup_submenu_controller.dart';
import 'package:scribe/scribe/ai/presentation/utils/modal/anchored_modal_layout_calculator.dart';
import 'package:scribe/scribe/ai/presentation/widgets/context_menu/ai_scribe_context_menu.dart';
import 'package:scribe/scribe/ai/presentation/widgets/search/ai_scribe_bar.dart';
class AiScribeModalWidget extends StatelessWidget { class AiScribeModalWidget extends StatelessWidget {
final ImagePaths imagePaths; final ImagePaths imagePaths;
@@ -5,20 +5,7 @@ import 'package:dartz/dartz.dart' as dartz;
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:pointer_interceptor/pointer_interceptor.dart'; import 'package:pointer_interceptor/pointer_interceptor.dart';
import 'package:scribe/scribe/ai/domain/state/generate_ai_text_state.dart'; import 'package:scribe/scribe.dart';
import 'package:scribe/scribe/ai/domain/usecases/generate_ai_text_interactor.dart';
import 'package:scribe/scribe/ai/localizations/scribe_localizations.dart';
import 'package:scribe/scribe/ai/presentation/model/ai_action.dart';
import 'package:scribe/scribe/ai/presentation/model/modal/anchored_modal_layout_input.dart';
import 'package:scribe/scribe/ai/presentation/model/modal/modal_cross_axis_alignment.dart';
import 'package:scribe/scribe/ai/presentation/model/modal/modal_placement.dart';
import 'package:scribe/scribe/ai/presentation/styles/ai_scribe_styles.dart';
import 'package:scribe/scribe/ai/presentation/utils/modal/anchored_modal_layout_calculator.dart';
import 'package:scribe/scribe/ai/presentation/widgets/modal/suggestion/ai_scribe_suggestion_error.dart';
import 'package:scribe/scribe/ai/presentation/widgets/modal/suggestion/ai_scribe_suggestion_header.dart';
import 'package:scribe/scribe/ai/presentation/widgets/modal/suggestion/ai_scribe_suggestion_loading.dart';
import 'package:scribe/scribe/ai/presentation/widgets/modal/suggestion/ai_scribe_suggestion_success.dart';
import 'package:scribe/scribe/ai/presentation/widgets/modal/suggestion/ai_scribe_suggestion_success_list_actions.dart';
class AiScribeSuggestionWidget extends StatefulWidget { class AiScribeSuggestionWidget extends StatefulWidget {
final AIAction aiAction; final AIAction aiAction;
@@ -1,8 +1,7 @@
import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/resources/image_paths.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/flutter_svg.dart';
import 'package:scribe/scribe/ai/localizations/scribe_localizations.dart'; import 'package:scribe/scribe.dart';
import 'package:scribe/scribe/ai/presentation/styles/ai_scribe_styles.dart';
class AiScribeSuggestionError extends StatelessWidget { class AiScribeSuggestionError extends StatelessWidget {
final ImagePaths imagePaths; final ImagePaths imagePaths;
@@ -2,8 +2,7 @@ import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/resources/image_paths.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/flutter_svg.dart';
import 'package:scribe/scribe/ai/localizations/scribe_localizations.dart'; import 'package:scribe/scribe.dart';
import 'package:scribe/scribe/ai/presentation/styles/ai_scribe_styles.dart';
class AiScribeSuggestionLoading extends StatelessWidget { class AiScribeSuggestionLoading extends StatelessWidget {
final ImagePaths imagePaths; final ImagePaths imagePaths;
@@ -1,7 +1,6 @@
import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/resources/image_paths.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:scribe/scribe/ai/presentation/styles/ai_scribe_styles.dart'; import 'package:scribe/scribe.dart';
import 'package:scribe/scribe/ai/presentation/widgets/modal/suggestion/ai_scribe_suggestion_success_list_actions.dart';
class AiScribeSuggestionSuccess extends StatelessWidget { class AiScribeSuggestionSuccess extends StatelessWidget {
final ImagePaths imagePaths; final ImagePaths imagePaths;
@@ -1,8 +1,8 @@
import 'package:core/core.dart'; import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/presentation/resources/image_paths.dart';
import 'package:core/presentation/views/dialog/confirm_dialog_button.dart'; import 'package:core/presentation/views/dialog/confirm_dialog_button.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:scribe/scribe/ai/localizations/scribe_localizations.dart'; import 'package:scribe/scribe.dart';
import 'package:scribe/scribe/ai/presentation/model/context_menu/ai_scribe_suggestion_actions.dart';
typedef OnSelectAiScribeSuggestionAction = void Function( typedef OnSelectAiScribeSuggestionAction = void Function(
AiScribeSuggestionActions action, AiScribeSuggestionActions action,
@@ -1,9 +1,7 @@
import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/resources/image_paths.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:pointer_interceptor/pointer_interceptor.dart'; import 'package:pointer_interceptor/pointer_interceptor.dart';
import 'package:scribe/scribe/ai/presentation/model/text_selection_model.dart'; import 'package:scribe/scribe.dart';
import 'package:scribe/scribe/ai/presentation/widgets/button/inline_ai_assist_button.dart';
import 'package:scribe/scribe/ai/presentation/widgets/modal/suggestion/ai_scribe_suggestion_success_list_actions.dart';
class AiSelectionOverlay extends StatelessWidget { class AiSelectionOverlay extends StatelessWidget {
const AiSelectionOverlay({ const AiSelectionOverlay({
@@ -1,8 +1,7 @@
import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/resources/image_paths.dart';
import 'package:core/presentation/views/button/tmail_button_widget.dart'; import 'package:core/presentation/views/button/tmail_button_widget.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:scribe/scribe/ai/localizations/scribe_localizations.dart'; import 'package:scribe/scribe.dart';
import 'package:scribe/scribe/ai/presentation/styles/ai_scribe_styles.dart';
typedef OnCustomPromptCallback = void Function(String customPrompt); typedef OnCustomPromptCallback = void Function(String customPrompt);