diff --git a/lib/app/app.dart b/lib/app/app.dart index 2e6b16c2..6b30d595 100644 --- a/lib/app/app.dart +++ b/lib/app/app.dart @@ -5,7 +5,7 @@ import 'package:querya_desktop/core/motion/querya_motion_scope.dart'; import 'package:querya_desktop/core/motion/querya_theme_motion.dart'; import 'package:querya_desktop/core/theme/animated_querya_theme.dart'; import 'package:querya_desktop/core/theme/theme_controller.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import 'app_lifecycle_cleanup.dart'; import '../features/main_screen/main_screen.dart'; diff --git a/lib/core/editor/querya_code_editor.dart b/lib/core/editor/querya_code_editor.dart index 3b630625..c1988c80 100644 --- a/lib/core/editor/querya_code_editor.dart +++ b/lib/core/editor/querya_code_editor.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart' as material; import 'package:querya_desktop/core/theme/querya_editor_theme.dart'; import 'package:querya_desktop/core/theme/querya_theme.dart'; import 'package:querya_desktop/core/theme/querya_theme_scope.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import 'querya_code_language.dart'; import 'querya_highlight_controller.dart'; diff --git a/lib/core/layout/querya_split_handle.dart b/lib/core/layout/querya_split_handle.dart index 6126f426..0e7be5c0 100644 --- a/lib/core/layout/querya_split_handle.dart +++ b/lib/core/layout/querya_split_handle.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart' as material; import 'package:flutter/services.dart'; import 'package:querya_desktop/core/motion/querya_motion.dart'; import 'package:querya_desktop/core/motion/querya_motion_context.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; /// Accessible split-pane handle that supports mouse dragging and arrow keys. /// diff --git a/lib/core/layout/vertical_split_pane.dart b/lib/core/layout/vertical_split_pane.dart index ebc6e25d..fc969790 100644 --- a/lib/core/layout/vertical_split_pane.dart +++ b/lib/core/layout/vertical_split_pane.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart' as material; import 'package:querya_desktop/core/layout/querya_drag_settle.dart'; import 'package:querya_desktop/core/layout/querya_split_handle.dart'; import 'package:querya_desktop/core/motion/querya_spring.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; /// Counts full rebuilds of [VerticalSplitPane]'s body (cache misses) — should /// only fire when the pane's height or its top/bottom/fraction/etc. inputs diff --git a/lib/core/storage/app_settings.dart b/lib/core/storage/app_settings.dart index 55673907..83e38f2a 100644 --- a/lib/core/storage/app_settings.dart +++ b/lib/core/storage/app_settings.dart @@ -1,7 +1,7 @@ import 'dart:convert'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import '../motion/querya_motion_scope.dart'; import '../theme/querya_theme_preset.dart'; diff --git a/lib/core/theme/app_theme.dart b/lib/core/theme/app_theme.dart index 51a9f060..3d8f3758 100644 --- a/lib/core/theme/app_theme.dart +++ b/lib/core/theme/app_theme.dart @@ -1,4 +1,4 @@ -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import 'querya_theme.dart'; diff --git a/lib/core/theme/parser/querya_theme_color_scheme.dart b/lib/core/theme/parser/querya_theme_color_scheme.dart index cb9f4636..fd962e31 100644 --- a/lib/core/theme/parser/querya_theme_color_scheme.dart +++ b/lib/core/theme/parser/querya_theme_color_scheme.dart @@ -1,7 +1,7 @@ // ignore_for_file: deprecated_member_use import 'package:flutter/foundation.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import '../querya_theme.dart'; import 'color_parser.dart'; diff --git a/lib/core/theme/querya_color_scheme.dart b/lib/core/theme/querya_color_scheme.dart index a15f18a9..177efc15 100644 --- a/lib/core/theme/querya_color_scheme.dart +++ b/lib/core/theme/querya_color_scheme.dart @@ -1,4 +1,4 @@ -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import 'querya_theme.dart'; diff --git a/lib/core/theme/querya_theme.dart b/lib/core/theme/querya_theme.dart index 312da035..3b3cc333 100644 --- a/lib/core/theme/querya_theme.dart +++ b/lib/core/theme/querya_theme.dart @@ -1,4 +1,4 @@ -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import 'color_contrast.dart'; import 'parser/vscode_theme_manifest.dart'; diff --git a/lib/core/theme/querya_theme_scope.dart b/lib/core/theme/querya_theme_scope.dart index 58067fd6..a834d601 100644 --- a/lib/core/theme/querya_theme_scope.dart +++ b/lib/core/theme/querya_theme_scope.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart' as material; import 'package:flutter/widgets.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn; +import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn + hide TextExtension; import 'querya_editor_theme.dart'; import 'querya_semantic_palette.dart'; diff --git a/lib/core/theme/theme_controller.dart b/lib/core/theme/theme_controller.dart index 497e7b7d..5f11fcac 100644 --- a/lib/core/theme/theme_controller.dart +++ b/lib/core/theme/theme_controller.dart @@ -4,7 +4,7 @@ import 'dart:io'; import 'package:flutter/material.dart' as material; import 'package:querya_desktop/core/storage/app_settings.dart'; import 'package:querya_desktop/core/theme/querya_material_theme.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import 'parser/apply_token_colors_to_editor.dart'; import 'parser/color_parser.dart'; diff --git a/lib/features/erd/erd_export_data.dart b/lib/features/erd/erd_export_data.dart index dcdfa99f..e2561b99 100644 --- a/lib/features/erd/erd_export_data.dart +++ b/lib/features/erd/erd_export_data.dart @@ -4,7 +4,8 @@ import 'package:querya_desktop/core/erd/erd_model.dart'; import 'package:querya_desktop/core/erd/erd_saved_layout.dart'; import 'package:querya_desktop/core/theme/querya_theme_scope.dart'; import 'package:querya_desktop/features/erd/erd_export.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn; +import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn + hide TextExtension; /// Turns what the diagram shows on screen (header tints, notes, group frames, /// theme colours) into the plain values the SVG / DBML export takes (#1362). diff --git a/lib/features/erd/erd_view.dart b/lib/features/erd/erd_view.dart index 71c1a119..760a294b 100644 --- a/lib/features/erd/erd_view.dart +++ b/lib/features/erd/erd_view.dart @@ -46,7 +46,7 @@ import 'package:querya_desktop/features/workspace/sql_editor_chrome.dart'; import 'package:querya_desktop/shared/widgets/querya_button.dart'; import 'package:querya_desktop/shared/widgets/querya_spinner.dart'; import 'package:querya_desktop/shared/widgets/querya_tab_strip.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; // Moved out of this file (#1362); re-exported for existing importers. export 'package:querya_desktop/features/erd/widgets/erd_relation_painter.dart' diff --git a/lib/features/erd/widgets/erd_edge_tip_label.dart b/lib/features/erd/widgets/erd_edge_tip_label.dart index d79dff2b..c0eaa35b 100644 --- a/lib/features/erd/widgets/erd_edge_tip_label.dart +++ b/lib/features/erd/widgets/erd_edge_tip_label.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart' as material; import 'package:querya_desktop/core/erd/erd_model.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; /// "orders.customer_id → customers.id" next to the pointer. class ErdEdgeTipLabel extends material.StatelessWidget { diff --git a/lib/features/erd/widgets/erd_group_frame.dart b/lib/features/erd/widgets/erd_group_frame.dart index 51903627..0eccb960 100644 --- a/lib/features/erd/widgets/erd_group_frame.dart +++ b/lib/features/erd/widgets/erd_group_frame.dart @@ -4,7 +4,7 @@ import 'package:flutter/gestures.dart' show DragStartBehavior; import 'package:flutter/material.dart' as material; import 'package:querya_desktop/core/erd/erd_layout.dart'; import 'package:querya_desktop/core/erd/erd_saved_layout.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; /// A group's frame on the canvas: a tinted box that takes no pointer, and its /// title, which drags the whole group and has the group's menu. diff --git a/lib/features/erd/widgets/erd_note_card.dart b/lib/features/erd/widgets/erd_note_card.dart index 958d9eb5..ebc9f87a 100644 --- a/lib/features/erd/widgets/erd_note_card.dart +++ b/lib/features/erd/widgets/erd_note_card.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart' as material; import 'package:querya_desktop/core/erd/erd_note_text.dart'; import 'package:querya_desktop/core/erd/erd_saved_layout.dart'; import 'package:querya_desktop/core/theme/querya_theme_scope.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; /// A sticky note on the canvas: draggable by its body, resizable by its /// corner, with an edit / colour / attach / delete menu (#1283). diff --git a/lib/features/erd/widgets/erd_search_panel.dart b/lib/features/erd/widgets/erd_search_panel.dart index aa93b5a4..ec8eb8dc 100644 --- a/lib/features/erd/widgets/erd_search_panel.dart +++ b/lib/features/erd/widgets/erd_search_panel.dart @@ -2,7 +2,8 @@ import 'package:flutter/material.dart' as material; import 'package:querya_desktop/core/erd/erd_model.dart'; import 'package:querya_desktop/core/theme/querya_theme_scope.dart'; import 'package:querya_desktop/shared/widgets/querya_search_field.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:querya_desktop/shared/widgets/querya_text.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; /// Find-a-table field and the tables it matches. Enter picks the first. class ErdSearchPanel extends material.StatelessWidget { diff --git a/lib/features/erd/widgets/erd_table_card.dart b/lib/features/erd/widgets/erd_table_card.dart index 78ec05e2..a292d7a9 100644 --- a/lib/features/erd/widgets/erd_table_card.dart +++ b/lib/features/erd/widgets/erd_table_card.dart @@ -4,7 +4,7 @@ import 'package:querya_desktop/core/erd/erd_model.dart'; import 'package:querya_desktop/core/theme/querya_theme_scope.dart'; import 'package:querya_desktop/core/theme/querya_typography.dart'; import 'package:querya_desktop/core/erd/erd_layout.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; /// A card's share of the focus: highlighted, faded, and the column of a /// picked relation on it, if any. diff --git a/lib/features/erd/widgets/erd_table_menu.dart b/lib/features/erd/widgets/erd_table_menu.dart index 80944317..4802b980 100644 --- a/lib/features/erd/widgets/erd_table_menu.dart +++ b/lib/features/erd/widgets/erd_table_menu.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart' as material; import 'package:flutter/services.dart' show Clipboard, ClipboardData; import 'package:querya_desktop/core/erd/erd_saved_layout.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; /// The entries of a table card's context menu. abstract final class ErdTableMenu { diff --git a/lib/features/extensions/extension_stats_view.dart b/lib/features/extensions/extension_stats_view.dart index d091cb2d..e274e5fd 100644 --- a/lib/features/extensions/extension_stats_view.dart +++ b/lib/features/extensions/extension_stats_view.dart @@ -8,7 +8,8 @@ import 'package:querya_desktop/core/motion/ticker_gated_polling.dart'; import 'package:querya_desktop/core/storage/local_db.dart'; import 'package:querya_desktop/core/util/deep_collection_equals.dart'; import 'package:querya_desktop/shared/widgets/widgets.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn; +import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn + hide TextExtension; import 'package:querya_desktop/core/ui/querya_control_tokens.dart'; const _pollInterval = Duration(seconds: 5); diff --git a/lib/features/main_screen/querya_window_title_bar.dart b/lib/features/main_screen/querya_window_title_bar.dart index 81afe47d..5f53290f 100644 --- a/lib/features/main_screen/querya_window_title_bar.dart +++ b/lib/features/main_screen/querya_window_title_bar.dart @@ -17,7 +17,8 @@ import 'package:querya_desktop/features/updater/update_available_badge.dart'; import 'package:querya_desktop/features/updater/update_controller.dart'; import 'package:querya_desktop/features/updater/update_dialog.dart'; import 'package:querya_desktop/core/actions/sql_editor_actions.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:querya_desktop/shared/widgets/querya_text.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; /// Custom bitsdojo title bar styled from [QueryaThemeScope] workbench tokens. class QueryaWindowTitleBar extends StatelessWidget { diff --git a/lib/features/mongodb/mongo_collections_view.dart b/lib/features/mongodb/mongo_collections_view.dart index 9dec7902..289a9f4c 100644 --- a/lib/features/mongodb/mongo_collections_view.dart +++ b/lib/features/mongodb/mongo_collections_view.dart @@ -8,7 +8,8 @@ import 'package:querya_desktop/core/database/mongodb_connection.dart'; import 'package:querya_desktop/core/database/mongodb_service.dart'; import 'package:querya_desktop/features/workspace/destructive_query_dialog.dart'; import 'package:querya_desktop/shared/widgets/widgets.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn; +import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn + hide TextExtension; import 'package:querya_desktop/core/ui/querya_control_tokens.dart'; /// Displays the list of collections in a MongoDB database. diff --git a/lib/features/mongodb/mongo_databases_view.dart b/lib/features/mongodb/mongo_databases_view.dart index 48e51ffe..a20e09a9 100644 --- a/lib/features/mongodb/mongo_databases_view.dart +++ b/lib/features/mongodb/mongo_databases_view.dart @@ -5,7 +5,8 @@ import 'package:querya_desktop/core/database/mongodb_service.dart'; import 'package:querya_desktop/core/storage/local_db.dart'; import 'package:querya_desktop/features/workspace/destructive_query_dialog.dart'; import 'package:querya_desktop/shared/widgets/widgets.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn; +import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn + hide TextExtension; import 'package:querya_desktop/core/ui/querya_control_tokens.dart'; /// View that displays MongoDB databases list and server status. diff --git a/lib/features/mongodb/mongo_document_editor.dart b/lib/features/mongodb/mongo_document_editor.dart index 5a9310c8..593c80e7 100644 --- a/lib/features/mongodb/mongo_document_editor.dart +++ b/lib/features/mongodb/mongo_document_editor.dart @@ -11,7 +11,8 @@ import 'package:querya_desktop/core/unsaved_work_registry.dart'; import 'package:querya_desktop/features/mongodb/mongo_ejson.dart'; import 'package:querya_desktop/features/workspace/destructive_query_dialog.dart'; import 'package:querya_desktop/shared/widgets/widgets.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn; +import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn + hide TextExtension; import 'package:querya_desktop/core/ui/querya_control_tokens.dart'; /// Full-screen JSON editor for a single MongoDB document. diff --git a/lib/features/mongodb/mongo_document_tree_view.dart b/lib/features/mongodb/mongo_document_tree_view.dart index 20c1ef8a..f93f9eb5 100644 --- a/lib/features/mongodb/mongo_document_tree_view.dart +++ b/lib/features/mongodb/mongo_document_tree_view.dart @@ -6,10 +6,11 @@ import 'package:mongo_dart/mongo_dart.dart' show ObjectId; import 'package:querya_desktop/features/mongodb/mongo_ejson.dart'; import 'package:querya_desktop/features/mongodb/mongo_field_codec.dart'; import 'package:querya_desktop/shared/widgets/app_toast.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import 'package:querya_desktop/core/ui/querya_control_tokens.dart'; import 'package:querya_desktop/shared/widgets/querya_button.dart'; import 'package:querya_desktop/shared/widgets/querya_divider.dart'; +import 'package:querya_desktop/shared/widgets/querya_text.dart'; /// Appends a key or list index to a JavaScript / JSON Path expression. /// diff --git a/lib/features/mongodb/mongo_documents_json_view.dart b/lib/features/mongodb/mongo_documents_json_view.dart index dae6b4d0..793958d8 100644 --- a/lib/features/mongodb/mongo_documents_json_view.dart +++ b/lib/features/mongodb/mongo_documents_json_view.dart @@ -5,9 +5,10 @@ import 'package:querya_desktop/core/editor/querya_code_language.dart'; import 'package:querya_desktop/core/editor/syntax_highlight_service.dart'; import 'package:querya_desktop/features/mongodb/mongo_ejson.dart'; import 'package:querya_desktop/shared/widgets/app_toast.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import 'package:querya_desktop/core/ui/querya_control_tokens.dart'; import 'package:querya_desktop/shared/widgets/querya_button.dart'; +import 'package:querya_desktop/shared/widgets/querya_text.dart'; /// Full-page formatted Extended JSON viewer using [QueryaCodeEditor]. class MongoDocumentsJsonView extends StatefulWidget { diff --git a/lib/features/mongodb/mongo_documents_table_view.dart b/lib/features/mongodb/mongo_documents_table_view.dart index b5dfcddd..e82a3982 100644 --- a/lib/features/mongodb/mongo_documents_table_view.dart +++ b/lib/features/mongodb/mongo_documents_table_view.dart @@ -4,9 +4,10 @@ import 'package:mongo_dart/mongo_dart.dart' show ObjectId; import 'package:querya_desktop/features/mongodb/mongo_ejson.dart'; import 'package:querya_desktop/features/workspace/result_grid_view.dart'; import 'package:querya_desktop/shared/widgets/app_toast.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import 'package:querya_desktop/core/ui/querya_control_tokens.dart'; import 'package:querya_desktop/shared/widgets/querya_button.dart'; +import 'package:querya_desktop/shared/widgets/querya_text.dart'; /// Precomputed column and cell model for [MongoDocumentsTableView]. class MongoTableGridData { diff --git a/lib/features/mongodb/mongo_documents_view.dart b/lib/features/mongodb/mongo_documents_view.dart index 8b232126..81153fea 100644 --- a/lib/features/mongodb/mongo_documents_view.dart +++ b/lib/features/mongodb/mongo_documents_view.dart @@ -14,7 +14,8 @@ import 'package:querya_desktop/features/mongodb/mongo_field_codec.dart'; import 'package:querya_desktop/features/workspace/destructive_query_dialog.dart'; import 'package:querya_desktop/features/workspace/grid_cell_popover_inspector.dart'; import 'package:querya_desktop/shared/widgets/widgets.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn; +import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn + hide TextExtension; import 'package:querya_desktop/core/ui/querya_control_tokens.dart'; const _defaultLimit = 25; diff --git a/lib/features/mongodb/mongo_explorer_view.dart b/lib/features/mongodb/mongo_explorer_view.dart index ab2d3c44..8fe0e31b 100644 --- a/lib/features/mongodb/mongo_explorer_view.dart +++ b/lib/features/mongodb/mongo_explorer_view.dart @@ -7,7 +7,8 @@ import 'package:querya_desktop/core/motion/querya_switching_body.dart'; import 'package:querya_desktop/core/storage/local_db.dart'; import 'package:querya_desktop/core/unsaved_work_guard.dart'; import 'package:querya_desktop/shared/widgets/widgets.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn; +import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn + hide TextExtension; import 'mongo_aggregation_workspace.dart'; import 'mongo_collections_view.dart'; diff --git a/lib/features/mongodb/mongo_stats_view.dart b/lib/features/mongodb/mongo_stats_view.dart index a5b698ca..8da265e3 100644 --- a/lib/features/mongodb/mongo_stats_view.dart +++ b/lib/features/mongodb/mongo_stats_view.dart @@ -8,7 +8,8 @@ import 'package:querya_desktop/core/database/mongodb_connection.dart'; import 'package:querya_desktop/core/database/mongodb_service.dart'; import 'package:querya_desktop/core/storage/local_db.dart'; import 'package:querya_desktop/shared/widgets/widgets.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn; +import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn + hide TextExtension; import 'package:querya_desktop/core/ui/querya_control_tokens.dart'; const _defaultAutoRefresh = Duration(seconds: 3); diff --git a/lib/features/mysql/mysql_stats_view.dart b/lib/features/mysql/mysql_stats_view.dart index f2132ac0..dcb4bfd8 100644 --- a/lib/features/mysql/mysql_stats_view.dart +++ b/lib/features/mysql/mysql_stats_view.dart @@ -9,7 +9,8 @@ import 'package:querya_desktop/core/database/mysql_service.dart'; import 'package:querya_desktop/core/storage/local_db.dart'; import 'package:querya_desktop/shared/widgets/querya_sparkline.dart'; import 'package:querya_desktop/shared/widgets/widgets.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn; +import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn + hide TextExtension; import 'package:querya_desktop/core/ui/querya_control_tokens.dart'; const _pollInterval = Duration(seconds: 5); diff --git a/lib/features/postgresql/postgres_stats_view.dart b/lib/features/postgresql/postgres_stats_view.dart index 20fac0ac..1a5a8e01 100644 --- a/lib/features/postgresql/postgres_stats_view.dart +++ b/lib/features/postgresql/postgres_stats_view.dart @@ -10,7 +10,8 @@ import 'package:querya_desktop/core/database/postgres_service.dart'; import 'package:querya_desktop/core/storage/local_db.dart'; import 'package:querya_desktop/shared/widgets/querya_sparkline.dart'; import 'package:querya_desktop/shared/widgets/widgets.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn; +import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn + hide TextExtension; import 'package:querya_desktop/core/ui/querya_control_tokens.dart'; const _pollInterval = Duration(seconds: 5); diff --git a/lib/features/redis/editors/redis_hash_editor.dart b/lib/features/redis/editors/redis_hash_editor.dart index 6233ce2f..4d144f17 100644 --- a/lib/features/redis/editors/redis_hash_editor.dart +++ b/lib/features/redis/editors/redis_hash_editor.dart @@ -1,7 +1,8 @@ import 'package:flutter/material.dart' as material; import 'package:querya_desktop/core/database/redis_bulk.dart'; import 'package:querya_desktop/shared/widgets/widgets.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn; +import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn + hide TextExtension; import 'package:querya_desktop/core/ui/querya_control_tokens.dart'; /// Editor for a Redis hash: HSET add bar plus a field/value list. diff --git a/lib/features/redis/editors/redis_list_editor.dart b/lib/features/redis/editors/redis_list_editor.dart index c14b3459..e491fae7 100644 --- a/lib/features/redis/editors/redis_list_editor.dart +++ b/lib/features/redis/editors/redis_list_editor.dart @@ -1,7 +1,8 @@ import 'package:flutter/material.dart' as material; import 'package:querya_desktop/core/database/redis_bulk.dart'; import 'package:querya_desktop/shared/widgets/widgets.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn; +import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn + hide TextExtension; import 'package:querya_desktop/core/ui/querya_control_tokens.dart'; /// Editor for a Redis list: RPUSH add bar plus an indexed item list with diff --git a/lib/features/redis/editors/redis_set_editor.dart b/lib/features/redis/editors/redis_set_editor.dart index ca7b23cc..82af10f8 100644 --- a/lib/features/redis/editors/redis_set_editor.dart +++ b/lib/features/redis/editors/redis_set_editor.dart @@ -1,7 +1,8 @@ import 'package:flutter/material.dart' as material; import 'package:querya_desktop/core/database/redis_bulk.dart'; import 'package:querya_desktop/shared/widgets/widgets.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn; +import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn + hide TextExtension; import 'package:querya_desktop/core/ui/querya_control_tokens.dart'; /// Editor for a Redis set: SADD add bar plus a member list. diff --git a/lib/features/redis/editors/redis_zset_editor.dart b/lib/features/redis/editors/redis_zset_editor.dart index 6a493319..f8a8e575 100644 --- a/lib/features/redis/editors/redis_zset_editor.dart +++ b/lib/features/redis/editors/redis_zset_editor.dart @@ -1,7 +1,8 @@ import 'package:flutter/material.dart' as material; import 'package:querya_desktop/core/database/redis_bulk.dart'; import 'package:querya_desktop/shared/widgets/widgets.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn; +import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn + hide TextExtension; import 'package:querya_desktop/core/ui/querya_control_tokens.dart'; /// Editor for a Redis sorted set: ZADD add bar plus a scored member list. diff --git a/lib/features/redis/redis_databases_view.dart b/lib/features/redis/redis_databases_view.dart index 2b06d166..e9a7968c 100644 --- a/lib/features/redis/redis_databases_view.dart +++ b/lib/features/redis/redis_databases_view.dart @@ -3,7 +3,8 @@ import 'package:querya_desktop/core/database/redis_connection.dart'; import 'package:querya_desktop/core/database/redis_info.dart'; import 'package:querya_desktop/core/storage/local_db.dart'; import 'package:querya_desktop/shared/widgets/widgets.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn; +import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn + hide TextExtension; import 'package:querya_desktop/core/ui/querya_control_tokens.dart'; /// Shows all Redis databases (db0–dbN) with key counts. diff --git a/lib/features/redis/redis_explorer_view.dart b/lib/features/redis/redis_explorer_view.dart index 7b8217ae..12752acf 100644 --- a/lib/features/redis/redis_explorer_view.dart +++ b/lib/features/redis/redis_explorer_view.dart @@ -7,7 +7,8 @@ import 'package:querya_desktop/core/database/redis_service.dart'; import 'package:querya_desktop/core/motion/querya_switching_body.dart'; import 'package:querya_desktop/core/storage/local_db.dart'; import 'package:querya_desktop/shared/widgets/widgets.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn; +import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn + hide TextExtension; import 'redis_keys_view.dart'; import 'redis_key_editor.dart'; diff --git a/lib/features/redis/redis_key_editor.dart b/lib/features/redis/redis_key_editor.dart index a8a72613..3725bfce 100644 --- a/lib/features/redis/redis_key_editor.dart +++ b/lib/features/redis/redis_key_editor.dart @@ -9,7 +9,8 @@ import 'package:querya_desktop/features/redis/editors/redis_string_editor.dart'; import 'package:querya_desktop/features/redis/editors/redis_zset_editor.dart'; import 'package:querya_desktop/features/workspace/destructive_query_dialog.dart'; import 'package:querya_desktop/shared/widgets/widgets.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn; +import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn + hide TextExtension; import 'package:querya_desktop/core/ui/querya_control_tokens.dart'; /// Viewer / editor for a single Redis key. Type-aware: string, hash, diff --git a/lib/features/redis/redis_keys_view.dart b/lib/features/redis/redis_keys_view.dart index 5363c5f1..d83d8058 100644 --- a/lib/features/redis/redis_keys_view.dart +++ b/lib/features/redis/redis_keys_view.dart @@ -5,7 +5,8 @@ import 'package:querya_desktop/core/database/redis_connection.dart'; import 'package:querya_desktop/core/theme/querya_semantic_palette.dart'; import 'package:querya_desktop/features/workspace/destructive_query_dialog.dart'; import 'package:querya_desktop/shared/widgets/widgets.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn; +import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn + hide TextExtension; import 'redis_key_tree_engine.dart'; import 'package:querya_desktop/core/ui/querya_control_tokens.dart'; diff --git a/lib/features/redis/redis_view.dart b/lib/features/redis/redis_view.dart index dcda93eb..40f46a16 100644 --- a/lib/features/redis/redis_view.dart +++ b/lib/features/redis/redis_view.dart @@ -9,7 +9,8 @@ import 'package:querya_desktop/core/database/redis_info.dart'; import 'package:querya_desktop/core/database/redis_service.dart'; import 'package:querya_desktop/core/storage/local_db.dart'; import 'package:querya_desktop/shared/widgets/widgets.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn; +import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn + hide TextExtension; import 'package:querya_desktop/core/ui/querya_control_tokens.dart'; const _pollInterval = Duration(seconds: 3); diff --git a/lib/features/settings/preferences_controls.dart b/lib/features/settings/preferences_controls.dart index fc862048..daf2183e 100644 --- a/lib/features/settings/preferences_controls.dart +++ b/lib/features/settings/preferences_controls.dart @@ -6,7 +6,8 @@ import 'package:querya_desktop/core/layout/ui_scale_controller.dart'; import 'package:querya_desktop/core/layout/ui_scale.dart'; import 'package:querya_desktop/core/storage/app_settings.dart'; import 'package:querya_desktop/shared/widgets/querya_dropdown.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:querya_desktop/shared/widgets/querya_text.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; /// Helper / hint copy in Preferences — readable on imported themes. class PreferencesHint extends StatelessWidget { diff --git a/lib/features/settings/theme_picker_button.dart b/lib/features/settings/theme_picker_button.dart index 648838fa..94c0315b 100644 --- a/lib/features/settings/theme_picker_button.dart +++ b/lib/features/settings/theme_picker_button.dart @@ -8,7 +8,7 @@ import 'package:querya_desktop/core/theme/querya_theme.dart'; import 'package:querya_desktop/core/theme/theme_definition.dart'; import 'package:querya_desktop/features/settings/theme_preview_card.dart'; import 'package:querya_desktop/shared/widgets/querya_dropdown_tokens.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; /// Debounce delay before requesting a hover preview load. const Duration themePreviewDebounce = Duration(milliseconds: 120); diff --git a/lib/features/updater/update_available_badge.dart b/lib/features/updater/update_available_badge.dart index a4c9b696..0126aafd 100644 --- a/lib/features/updater/update_available_badge.dart +++ b/lib/features/updater/update_available_badge.dart @@ -7,7 +7,8 @@ import 'package:querya_desktop/core/motion/querya_motion_scope.dart'; import 'package:querya_desktop/core/theme/querya_theme_scope.dart'; import 'package:querya_desktop/features/updater/update_controller.dart'; import 'package:querya_desktop/features/updater/update_dialog.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:querya_desktop/shared/widgets/querya_text.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; /// Soft pulse period for the update chip at Full motion (see F9 / #482). /// diff --git a/lib/features/updater/update_changelog_view.dart b/lib/features/updater/update_changelog_view.dart index 85930378..a8113ba0 100644 --- a/lib/features/updater/update_changelog_view.dart +++ b/lib/features/updater/update_changelog_view.dart @@ -1,7 +1,8 @@ import 'dart:convert'; import 'package:flutter/material.dart' as material; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; +import 'package:querya_desktop/shared/widgets/querya_text.dart'; /// Lightweight Markdown-ish renderer for GitHub release notes. class UpdateChangelogView extends StatelessWidget { diff --git a/lib/features/workspace/data_grid_calc_bar.dart b/lib/features/workspace/data_grid_calc_bar.dart index c0f1da91..a85ba3e0 100644 --- a/lib/features/workspace/data_grid_calc_bar.dart +++ b/lib/features/workspace/data_grid_calc_bar.dart @@ -3,7 +3,7 @@ import 'package:flutter/services.dart'; import 'package:querya_desktop/core/motion/querya_motion.dart'; import 'package:querya_desktop/core/motion/querya_motion_context.dart'; import 'package:querya_desktop/features/workspace/grid_selection_calc_engine.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; /// Status bar footer for Data Grid displaying live selection statistics (Count, Distinct, Sum, Avg, Median, Min, Max). class DataGridCalcBar extends StatelessWidget { diff --git a/lib/features/workspace/data_grid_filter_bar.dart b/lib/features/workspace/data_grid_filter_bar.dart index ce436f31..c7e2d7b0 100644 --- a/lib/features/workspace/data_grid_filter_bar.dart +++ b/lib/features/workspace/data_grid_filter_bar.dart @@ -3,7 +3,8 @@ import 'package:flutter/material.dart' as material; import 'package:flutter/services.dart' show KeyDownEvent, LogicalKeyboardKey; import 'package:querya_desktop/core/ui/querya_control_tokens.dart'; import 'package:querya_desktop/shared/widgets/querya_icon_button.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:querya_desktop/shared/widgets/querya_text.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; /// Kind of filter autocomplete suggestion. enum FilterSuggestionKind { diff --git a/lib/features/workspace/data_grid_value_panel.dart b/lib/features/workspace/data_grid_value_panel.dart index bc9da4c5..6f79788b 100644 --- a/lib/features/workspace/data_grid_value_panel.dart +++ b/lib/features/workspace/data_grid_value_panel.dart @@ -7,7 +7,8 @@ import 'package:querya_desktop/core/editor/querya_code_language.dart'; import 'package:querya_desktop/core/ui/querya_control_tokens.dart'; import 'package:querya_desktop/shared/widgets/querya_dropdown.dart'; import 'package:querya_desktop/shared/widgets/querya_icon_button.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:querya_desktop/shared/widgets/querya_text.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import 'xml_html_formatter.dart'; diff --git a/lib/features/workspace/grid/grid_column_sizer.dart b/lib/features/workspace/grid/grid_column_sizer.dart index e7813ebe..b319a9c1 100644 --- a/lib/features/workspace/grid/grid_column_sizer.dart +++ b/lib/features/workspace/grid/grid_column_sizer.dart @@ -1,6 +1,6 @@ import 'dart:math' as math; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; /// Layout metrics for [VirtualResultGrid]. abstract final class ResultGridMetrics { diff --git a/lib/features/workspace/grid/grid_selection_manager.dart b/lib/features/workspace/grid/grid_selection_manager.dart index b808b22b..3766828c 100644 --- a/lib/features/workspace/grid/grid_selection_manager.dart +++ b/lib/features/workspace/grid/grid_selection_manager.dart @@ -1,6 +1,6 @@ import 'dart:convert'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; /// Coordinate of a cell in [VirtualResultGrid]. @immutable diff --git a/lib/features/workspace/grid_cell_editor.dart b/lib/features/workspace/grid_cell_editor.dart index 3414f00a..dce589de 100644 --- a/lib/features/workspace/grid_cell_editor.dart +++ b/lib/features/workspace/grid_cell_editor.dart @@ -3,7 +3,7 @@ import 'package:flutter/services.dart'; import 'package:querya_desktop/core/motion/querya_motion.dart'; import 'package:querya_desktop/core/motion/querya_motion_context.dart'; import 'package:querya_desktop/features/workspace/grid_data_type_validator.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; /// Active inline editor widget for a data grid cell. class GridCellEditor extends material.StatefulWidget { diff --git a/lib/features/workspace/query_editor_tab.dart b/lib/features/workspace/query_editor_tab.dart index 20b33eb3..83f1674b 100644 --- a/lib/features/workspace/query_editor_tab.dart +++ b/lib/features/workspace/query_editor_tab.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart' as material import 'package:querya_desktop/core/editor/querya_code_editor.dart'; import 'package:querya_desktop/core/editor/querya_code_language.dart'; import 'package:querya_desktop/features/workspace/sql_editor_chrome.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; class QueryEditorTab extends StatelessWidget { const QueryEditorTab({ diff --git a/lib/features/workspace/result_grid_view.dart b/lib/features/workspace/result_grid_view.dart index baa635d5..a29c97fa 100644 --- a/lib/features/workspace/result_grid_view.dart +++ b/lib/features/workspace/result_grid_view.dart @@ -19,7 +19,7 @@ import 'package:querya_desktop/features/workspace/grid_cell_popover_inspector.da import 'package:querya_desktop/features/workspace/grid/grid_column_sizer.dart'; import 'package:querya_desktop/features/workspace/grid/grid_selection_manager.dart'; import 'package:querya_desktop/features/workspace/grid/grid_sorting.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; export 'package:querya_desktop/features/workspace/grid/grid_column_sizer.dart'; export 'package:querya_desktop/features/workspace/grid/grid_selection_manager.dart'; diff --git a/lib/features/workspace/sql_editor_chrome.dart b/lib/features/workspace/sql_editor_chrome.dart index 7dcd62db..4ca45a36 100644 --- a/lib/features/workspace/sql_editor_chrome.dart +++ b/lib/features/workspace/sql_editor_chrome.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart' as material; import 'package:querya_desktop/core/theme/querya_editor_theme.dart'; import 'package:querya_desktop/core/theme/querya_theme_scope.dart'; import 'package:querya_desktop/core/theme/querya_workbench_theme.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; /// Outer chrome for SQL editors: border, surface, brand accent glow. class SqlEditorChrome extends StatelessWidget { diff --git a/lib/shared/widgets/querya_text.dart b/lib/shared/widgets/querya_text.dart new file mode 100644 index 00000000..142e8598 --- /dev/null +++ b/lib/shared/widgets/querya_text.dart @@ -0,0 +1,92 @@ +import 'package:flutter/material.dart' as material; +import 'package:querya_desktop/core/theme/querya_theme_scope.dart'; + +/// Text styles for a `Text` (or anything that renders text) through the +/// ambient [material.DefaultTextStyle], replacing shadcn's `TextExtension` +/// (#1465). +/// +/// Sizes are the ones the app has always used (12 / 14 / 16 / 18); the UI scale +/// reaches them through the `MediaQuery` text scaler, so nothing is scaled here. +/// Colours come from the theme's colour scheme. +/// +/// ```dart +/// Text('Connections').semiBold().small() +/// Text('No rows').muted() +/// ``` +extension QueryaTextStyles on material.Widget { + /// 12 px. + material.Widget xSmall() => _fontSize(12); + + /// 14 px. + material.Widget small() => _fontSize(14); + + /// 16 px. + material.Widget base() => _fontSize(16); + + /// 18 px. + material.Widget large() => _fontSize(18); + + /// Weight 500. + material.Widget medium() => _weight(material.FontWeight.w500); + + /// Weight 600. + material.Widget semiBold() => _weight(material.FontWeight.w600); + + /// Weight 700. + material.Widget bold() => _weight(material.FontWeight.w700); + + /// One line, cut with an ellipsis. + material.Widget ellipsis() => _QueryaStyledText( + overflow: material.TextOverflow.ellipsis, + maxLines: 1, + child: this, + ); + + /// The muted foreground colour. + material.Widget muted() => _QueryaStyledText( + style: (context) => + material.TextStyle(color: context.colors.mutedForeground), + child: this, + ); + + /// The standard foreground colour. + material.Widget foreground() => _QueryaStyledText( + style: (context) => + material.TextStyle(color: context.colors.foreground), + child: this, + ); + + material.Widget _fontSize(double size) => _QueryaStyledText( + style: (_) => material.TextStyle(fontSize: size), + child: this, + ); + + material.Widget _weight(material.FontWeight weight) => _QueryaStyledText( + style: (_) => material.TextStyle(fontWeight: weight), + child: this, + ); +} + +class _QueryaStyledText extends material.StatelessWidget { + const _QueryaStyledText({ + required this.child, + this.style, + this.overflow, + this.maxLines, + }); + + final material.Widget child; + final material.TextStyle Function(material.BuildContext context)? style; + final material.TextOverflow? overflow; + final int? maxLines; + + @override + material.Widget build(material.BuildContext context) { + return material.DefaultTextStyle.merge( + style: style?.call(context), + overflow: overflow, + maxLines: maxLines, + child: child, + ); + } +} diff --git a/lib/shared/widgets/widgets.dart b/lib/shared/widgets/widgets.dart index 05ab1cde..caee584b 100644 --- a/lib/shared/widgets/widgets.dart +++ b/lib/shared/widgets/widgets.dart @@ -33,6 +33,7 @@ export 'querya_icon_button.dart'; export 'querya_modal_dialog.dart'; export 'querya_search_field.dart'; export 'querya_spinner.dart'; +export 'querya_text.dart'; export 'tree_load_error.dart'; export 'package:querya_desktop/core/motion/querya_motion.dart'; export 'package:querya_desktop/core/motion/querya_motion_context.dart'; @@ -40,4 +41,4 @@ export 'package:querya_desktop/core/motion/querya_animated_expand.dart'; export 'package:querya_desktop/core/motion/querya_fade_slide.dart'; export 'package:querya_desktop/core/theme/querya_theme_scope.dart' show QueryaThemeContext; -export 'package:shadcn_flutter/shadcn_flutter.dart'; +export 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; diff --git a/test/core/editor/querya_code_editor_test.dart b/test/core/editor/querya_code_editor_test.dart index 9152b29e..86278541 100644 --- a/test/core/editor/querya_code_editor_test.dart +++ b/test/core/editor/querya_code_editor_test.dart @@ -5,7 +5,7 @@ import 'package:querya_desktop/core/editor/querya_code_language.dart'; import 'package:querya_desktop/core/editor/querya_highlight_controller.dart'; import 'package:querya_desktop/core/editor/syntax_highlight_service.dart'; import 'package:querya_desktop/core/theme/querya_theme.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import '../../support/pump_syntax_highlight.dart'; import '../../support/querya_theme_test_shell.dart'; diff --git a/test/core/storage/app_settings_test.dart b/test/core/storage/app_settings_test.dart index b095f0f4..975ae7a6 100644 --- a/test/core/storage/app_settings_test.dart +++ b/test/core/storage/app_settings_test.dart @@ -6,7 +6,7 @@ import 'package:querya_desktop/core/storage/app_settings.dart'; import 'package:querya_desktop/core/storage/local_db.dart'; import 'package:querya_desktop/core/theme/querya_theme_preset.dart'; import 'package:querya_desktop/core/updater/update_manifest.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; /// path_provider has no implementation in plain `flutter test`; LocalDb needs a path. class _FakePathProvider extends PathProviderPlatform { diff --git a/test/core/theme/parser/querya_theme_color_scheme_test.dart b/test/core/theme/parser/querya_theme_color_scheme_test.dart index b4ad8bdd..8bcea27c 100644 --- a/test/core/theme/parser/querya_theme_color_scheme_test.dart +++ b/test/core/theme/parser/querya_theme_color_scheme_test.dart @@ -5,7 +5,7 @@ import 'package:querya_desktop/core/theme/parser/color_parser.dart'; import 'package:querya_desktop/core/theme/parser/querya_theme_color_scheme.dart'; import 'package:querya_desktop/core/theme/parser/querya_theme_manifest.dart'; import 'package:querya_desktop/core/theme/querya_theme.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; void main() { group('colorSchemeFromQueryaThemeColors', () { diff --git a/test/core/theme/parser/querya_theme_merge_pipeline_test.dart b/test/core/theme/parser/querya_theme_merge_pipeline_test.dart index df4b7177..b7e31e13 100644 --- a/test/core/theme/parser/querya_theme_merge_pipeline_test.dart +++ b/test/core/theme/parser/querya_theme_merge_pipeline_test.dart @@ -3,7 +3,7 @@ import 'package:querya_desktop/core/theme/parser/querya_theme_from_vscode.dart'; import 'package:querya_desktop/core/theme/parser/vscode_colors_merge.dart'; import 'package:querya_desktop/core/theme/parser/vscode_theme_manifest.dart'; import 'package:querya_desktop/core/theme/querya_theme.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; void main() { group('theme merge pipeline', () { diff --git a/test/core/theme/parser/theme_fixtures_integration_test.dart b/test/core/theme/parser/theme_fixtures_integration_test.dart index e954ceef..365806cf 100644 --- a/test/core/theme/parser/theme_fixtures_integration_test.dart +++ b/test/core/theme/parser/theme_fixtures_integration_test.dart @@ -4,7 +4,7 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:querya_desktop/core/theme/parser/querya_theme_from_vscode.dart'; import 'package:querya_desktop/core/theme/parser/vscode_theme_manifest.dart'; import 'package:querya_desktop/core/theme/querya_theme.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; void main() { group('theme fixtures', () { diff --git a/test/core/theme/parser/vscode_color_map_test.dart b/test/core/theme/parser/vscode_color_map_test.dart index 3ddc5cee..224ef755 100644 --- a/test/core/theme/parser/vscode_color_map_test.dart +++ b/test/core/theme/parser/vscode_color_map_test.dart @@ -5,7 +5,7 @@ import 'package:querya_desktop/core/theme/parser/querya_theme_from_vscode.dart'; import 'package:querya_desktop/core/theme/parser/vscode_color_map.dart'; import 'package:querya_desktop/core/theme/parser/vscode_theme_manifest.dart'; import 'package:querya_desktop/core/theme/querya_theme.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; void main() { group('kVsCodeColorMap', () { diff --git a/test/core/theme/querya_app_theme_test.dart b/test/core/theme/querya_app_theme_test.dart index 4218d51f..612e83db 100644 --- a/test/core/theme/querya_app_theme_test.dart +++ b/test/core/theme/querya_app_theme_test.dart @@ -6,7 +6,7 @@ import 'package:querya_desktop/core/storage/app_settings.dart'; import 'package:querya_desktop/core/storage/local_db.dart'; import 'package:querya_desktop/core/theme/querya_theme.dart'; import 'package:querya_desktop/core/theme/theme_controller.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; class _FakePathProvider extends PathProviderPlatform { _FakePathProvider(this._root); diff --git a/test/core/theme/querya_light_theme_test.dart b/test/core/theme/querya_light_theme_test.dart index 88fb8180..d9de48e2 100644 --- a/test/core/theme/querya_light_theme_test.dart +++ b/test/core/theme/querya_light_theme_test.dart @@ -3,7 +3,7 @@ import 'dart:math' as math; import 'package:flutter_test/flutter_test.dart'; import 'package:querya_desktop/core/theme/querya_color_scheme.dart'; import 'package:querya_desktop/core/theme/querya_theme.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; void main() { group('QueryaTheme.lightDefault', () { diff --git a/test/core/theme/querya_semantic_palette_test.dart b/test/core/theme/querya_semantic_palette_test.dart index 6358b6d2..5e49f220 100644 --- a/test/core/theme/querya_semantic_palette_test.dart +++ b/test/core/theme/querya_semantic_palette_test.dart @@ -1,7 +1,7 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:querya_desktop/core/theme/querya_semantic_palette.dart'; import 'package:querya_desktop/core/theme/querya_theme.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; void main() { test('semantic palette derives roles from theme tokens', () { diff --git a/test/core/theme/querya_theme_scope_test.dart b/test/core/theme/querya_theme_scope_test.dart index 36fc90fc..8f125b34 100644 --- a/test/core/theme/querya_theme_scope_test.dart +++ b/test/core/theme/querya_theme_scope_test.dart @@ -3,7 +3,7 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:querya_desktop/core/theme/app_theme.dart'; import 'package:querya_desktop/core/theme/querya_theme.dart'; import 'package:querya_desktop/core/theme/querya_theme_scope.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; void main() { testWidgets('QueryaThemeScope provides workbench tokens', (tester) async { diff --git a/test/core/theme/querya_theme_test.dart b/test/core/theme/querya_theme_test.dart index 6541b0fa..fa0af679 100644 --- a/test/core/theme/querya_theme_test.dart +++ b/test/core/theme/querya_theme_test.dart @@ -4,7 +4,7 @@ import 'package:querya_desktop/core/theme/querya_colors.dart'; import 'package:querya_desktop/core/theme/querya_editor_theme.dart'; import 'package:querya_desktop/core/theme/querya_theme.dart'; import 'package:querya_desktop/core/theme/querya_workbench_theme.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; void main() { group('QueryaWorkbenchTheme', () { diff --git a/test/core/theme/shadcn_theme_animation_wiring_test.dart b/test/core/theme/shadcn_theme_animation_wiring_test.dart index 02565b6e..5f4a37ec 100644 --- a/test/core/theme/shadcn_theme_animation_wiring_test.dart +++ b/test/core/theme/shadcn_theme_animation_wiring_test.dart @@ -1,7 +1,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:querya_desktop/core/motion/querya_motion.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn; +import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn + hide TextExtension; void main() { Widget wrap(Widget child) { diff --git a/test/core/theme/theme_controller_test.dart b/test/core/theme/theme_controller_test.dart index de342f32..44bf7d39 100644 --- a/test/core/theme/theme_controller_test.dart +++ b/test/core/theme/theme_controller_test.dart @@ -16,7 +16,7 @@ import 'package:querya_desktop/core/theme/theme_definition.dart'; import 'package:querya_desktop/core/extensions/extension_paths.dart'; import 'package:querya_desktop/core/extensions/local_extension_registry.dart'; import 'package:querya_desktop/core/theme/theme_registry_service.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; class _FakePathProvider extends PathProviderPlatform { _FakePathProvider(this._root); diff --git a/test/core/unsaved_work_guard_test.dart b/test/core/unsaved_work_guard_test.dart index c8a58b79..df96b35e 100644 --- a/test/core/unsaved_work_guard_test.dart +++ b/test/core/unsaved_work_guard_test.dart @@ -4,7 +4,7 @@ import 'package:querya_desktop/core/theme/app_theme.dart'; import 'package:querya_desktop/core/unsaved_work_guard.dart'; import 'package:querya_desktop/core/unsaved_work_registry.dart'; import 'package:querya_desktop/features/workspace/data_grid_staging_buffer.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; void main() { tearDown(UnsavedWorkRegistry.instance.resetForTest); diff --git a/test/e2e/04_nosql_workspaces/e2e_redis_cli_terminal_test.dart b/test/e2e/04_nosql_workspaces/e2e_redis_cli_terminal_test.dart index 086c6d97..213f6174 100644 --- a/test/e2e/04_nosql_workspaces/e2e_redis_cli_terminal_test.dart +++ b/test/e2e/04_nosql_workspaces/e2e_redis_cli_terminal_test.dart @@ -4,7 +4,7 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:querya_desktop/core/database/redis_connection.dart'; import 'package:querya_desktop/core/storage/local_db.dart'; import 'package:querya_desktop/features/redis/redis_cli_workspace.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import '../../support/querya_theme_test_shell.dart'; diff --git a/test/e2e/helpers/e2e_command_palette_helper.dart b/test/e2e/helpers/e2e_command_palette_helper.dart index 7fcc257d..57206b6e 100644 --- a/test/e2e/helpers/e2e_command_palette_helper.dart +++ b/test/e2e/helpers/e2e_command_palette_helper.dart @@ -1,5 +1,5 @@ import 'package:flutter/services.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import 'package:flutter_test/flutter_test.dart'; /// Drives the Command Palette (`Ctrl+P`) the way a user does. diff --git a/test/features/command_palette/command_palette_dialog_test.dart b/test/features/command_palette/command_palette_dialog_test.dart index fbb97afb..6b5d020c 100644 --- a/test/features/command_palette/command_palette_dialog_test.dart +++ b/test/features/command_palette/command_palette_dialog_test.dart @@ -6,7 +6,7 @@ import 'package:querya_desktop/core/actions/querya_command_registry.dart'; import 'package:querya_desktop/core/motion/querya_motion.dart'; import 'package:querya_desktop/core/motion/querya_motion_scope.dart'; import 'package:querya_desktop/features/command_palette/command_palette_dialog.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import '../../support/querya_theme_test_shell.dart'; diff --git a/test/features/command_palette/palette_keyboard_scroll_test.dart b/test/features/command_palette/palette_keyboard_scroll_test.dart index 265b4c8e..adfa3539 100644 --- a/test/features/command_palette/palette_keyboard_scroll_test.dart +++ b/test/features/command_palette/palette_keyboard_scroll_test.dart @@ -6,7 +6,7 @@ import 'package:querya_desktop/core/actions/querya_schema_object.dart'; import 'package:querya_desktop/core/motion/querya_motion_scope.dart'; import 'package:querya_desktop/features/command_palette/command_palette_dialog.dart'; import 'package:querya_desktop/features/command_palette/quick_switcher_dialog.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import '../../support/querya_theme_test_shell.dart'; diff --git a/test/features/command_palette/quick_switcher_dialog_test.dart b/test/features/command_palette/quick_switcher_dialog_test.dart index 545266cb..43b049b2 100644 --- a/test/features/command_palette/quick_switcher_dialog_test.dart +++ b/test/features/command_palette/quick_switcher_dialog_test.dart @@ -4,7 +4,7 @@ import 'package:querya_desktop/core/actions/querya_command_host.dart'; import 'package:querya_desktop/core/actions/querya_schema_object.dart'; import 'package:querya_desktop/core/motion/querya_motion_scope.dart'; import 'package:querya_desktop/features/command_palette/quick_switcher_dialog.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import '../../support/querya_theme_test_shell.dart'; diff --git a/test/features/connections/connection_dialog_focus_traversal_test.dart b/test/features/connections/connection_dialog_focus_traversal_test.dart index 50cc21d1..950af3d1 100644 --- a/test/features/connections/connection_dialog_focus_traversal_test.dart +++ b/test/features/connections/connection_dialog_focus_traversal_test.dart @@ -3,7 +3,7 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:querya_desktop/features/connections/new_connection_url_dialog.dart'; import 'package:querya_desktop/features/postgresql/postgresql_connection_form.dart'; import 'package:querya_desktop/shared/widgets/ssl_certificate_fields.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import '../../support/querya_theme_test_shell.dart'; diff --git a/test/features/connections/connection_form_sections_test.dart b/test/features/connections/connection_form_sections_test.dart index bdeafe76..975906a4 100644 --- a/test/features/connections/connection_form_sections_test.dart +++ b/test/features/connections/connection_form_sections_test.dart @@ -4,7 +4,7 @@ import 'package:querya_desktop/core/theme/app_theme.dart'; import 'package:querya_desktop/features/connections/forms/connection_auth_section.dart'; import 'package:querya_desktop/features/connections/forms/connection_database_section.dart'; import 'package:querya_desktop/features/connections/forms/connection_host_port_section.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; void main() { Widget buildApp(Widget child) { diff --git a/test/features/connections/connection_tree_quick_search_test.dart b/test/features/connections/connection_tree_quick_search_test.dart index 7590319e..1c7b7bca 100644 --- a/test/features/connections/connection_tree_quick_search_test.dart +++ b/test/features/connections/connection_tree_quick_search_test.dart @@ -7,7 +7,7 @@ import 'package:querya_desktop/core/storage/folders_storage.dart'; import 'package:querya_desktop/core/storage/local_db.dart'; import 'package:querya_desktop/core/theme/app_theme.dart'; import 'package:querya_desktop/features/connections/connections_panel.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; String _isoNow() => DateTime.now().toUtc().toIso8601String(); diff --git a/test/features/connections/connections_panel_layout_test.dart b/test/features/connections/connections_panel_layout_test.dart index ea72c1f7..1e2c4982 100644 --- a/test/features/connections/connections_panel_layout_test.dart +++ b/test/features/connections/connections_panel_layout_test.dart @@ -8,7 +8,7 @@ import 'package:querya_desktop/core/storage/local_db.dart'; import 'package:querya_desktop/core/theme/app_theme.dart'; import 'package:querya_desktop/core/ui/querya_tree_tokens.dart'; import 'package:querya_desktop/features/connections/connections_panel.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import '../../support/layout_overflow.dart'; diff --git a/test/features/connections/new_connection_url_dialog_test.dart b/test/features/connections/new_connection_url_dialog_test.dart index 5af32e03..81497c21 100644 --- a/test/features/connections/new_connection_url_dialog_test.dart +++ b/test/features/connections/new_connection_url_dialog_test.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart' as material; import 'package:flutter_test/flutter_test.dart'; import 'package:querya_desktop/core/storage/local_db.dart'; import 'package:querya_desktop/features/connections/new_connection_url_dialog.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import '../../support/querya_theme_test_shell.dart'; diff --git a/test/features/connections/sqlite_connection_form_test.dart b/test/features/connections/sqlite_connection_form_test.dart index 95cd5acf..4aa0dcad 100644 --- a/test/features/connections/sqlite_connection_form_test.dart +++ b/test/features/connections/sqlite_connection_form_test.dart @@ -3,7 +3,7 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:querya_desktop/core/storage/local_db.dart'; import 'package:querya_desktop/core/theme/app_theme.dart'; import 'package:querya_desktop/features/connections/sqlite_connection_form.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; void main() { group('showSqliteConnectionForm', () { diff --git a/test/features/extensions/extension_sql_workspace_test.dart b/test/features/extensions/extension_sql_workspace_test.dart index a19a394c..79f1c636 100644 --- a/test/features/extensions/extension_sql_workspace_test.dart +++ b/test/features/extensions/extension_sql_workspace_test.dart @@ -9,7 +9,7 @@ import 'package:querya_desktop/core/extensions/extension_driver_session.dart'; import 'package:querya_desktop/core/storage/app_settings.dart'; import 'package:querya_desktop/core/storage/local_db.dart'; import 'package:querya_desktop/features/extensions/extension_sql_workspace.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import 'package:querya_desktop/shared/widgets/querya_button.dart'; import '../../support/querya_theme_test_shell.dart'; diff --git a/test/features/main_screen/menubar_dropdown_speed_test.dart b/test/features/main_screen/menubar_dropdown_speed_test.dart index 5c5d6fdb..d8f55d3c 100644 --- a/test/features/main_screen/menubar_dropdown_speed_test.dart +++ b/test/features/main_screen/menubar_dropdown_speed_test.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart' as material; import 'package:flutter_test/flutter_test.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; void main() { testWidgets('Menubar dropdown opens fast and toggles on repeated tap', diff --git a/test/features/main_screen/querya_window_title_bar_test.dart b/test/features/main_screen/querya_window_title_bar_test.dart index 3010e8af..9352b036 100644 --- a/test/features/main_screen/querya_window_title_bar_test.dart +++ b/test/features/main_screen/querya_window_title_bar_test.dart @@ -5,7 +5,7 @@ import 'package:querya_desktop/core/storage/local_db.dart'; import 'package:querya_desktop/core/theme/querya_theme.dart'; import 'package:querya_desktop/core/theme/querya_workbench_theme.dart'; import 'package:querya_desktop/features/main_screen/querya_window_title_bar.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import '../../support/querya_theme_test_shell.dart'; diff --git a/test/features/main_screen/shell_chrome_golden_test.dart b/test/features/main_screen/shell_chrome_golden_test.dart index a9a96a21..cfd31107 100644 --- a/test/features/main_screen/shell_chrome_golden_test.dart +++ b/test/features/main_screen/shell_chrome_golden_test.dart @@ -6,7 +6,7 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:querya_desktop/features/main_screen/querya_window_title_bar.dart'; import 'package:querya_desktop/shared/widgets/app_dialog.dart'; import 'package:querya_desktop/shared/widgets/querya_tab_strip.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import '../../support/querya_theme_test_shell.dart'; diff --git a/test/features/main_screen/sidebar_toggle_test.dart b/test/features/main_screen/sidebar_toggle_test.dart index 28637f4f..c0de41fc 100644 --- a/test/features/main_screen/sidebar_toggle_test.dart +++ b/test/features/main_screen/sidebar_toggle_test.dart @@ -12,7 +12,7 @@ import 'package:querya_desktop/features/connections/connections_panel.dart'; import 'package:querya_desktop/features/main_screen/main_screen.dart'; import 'package:querya_desktop/features/main_screen/querya_window_title_bar.dart'; import 'package:querya_desktop/features/main_screen/workspace_panel.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import '../../support/querya_theme_test_shell.dart'; diff --git a/test/features/main_screen/workspace_homes_and_preferences_test.dart b/test/features/main_screen/workspace_homes_and_preferences_test.dart index dbf006f2..9f3e5c45 100644 --- a/test/features/main_screen/workspace_homes_and_preferences_test.dart +++ b/test/features/main_screen/workspace_homes_and_preferences_test.dart @@ -10,7 +10,7 @@ import 'package:querya_desktop/core/theme/app_theme.dart'; import 'package:querya_desktop/features/connections/driver_manager_dialog.dart'; import 'package:querya_desktop/features/mysql/mysql_workspace_home.dart'; import 'package:querya_desktop/features/settings/preferences_dialog.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import '../../support/querya_theme_test_shell.dart'; diff --git a/test/features/mongodb/mongo_aggregation_workspace_test.dart b/test/features/mongodb/mongo_aggregation_workspace_test.dart index 88706a7f..8f94df72 100644 --- a/test/features/mongodb/mongo_aggregation_workspace_test.dart +++ b/test/features/mongodb/mongo_aggregation_workspace_test.dart @@ -4,7 +4,7 @@ import 'package:querya_desktop/core/database/mongodb_connection.dart'; import 'package:querya_desktop/core/theme/querya_theme.dart'; import 'package:querya_desktop/features/mongodb/mongo_aggregation_stage.dart'; import 'package:querya_desktop/features/mongodb/mongo_aggregation_workspace.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import '../../support/querya_theme_test_shell.dart'; diff --git a/test/features/mongodb/mongo_database_dialog_test.dart b/test/features/mongodb/mongo_database_dialog_test.dart index e32eb440..ff9846f2 100644 --- a/test/features/mongodb/mongo_database_dialog_test.dart +++ b/test/features/mongodb/mongo_database_dialog_test.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart' as material; import 'package:flutter_test/flutter_test.dart'; import 'package:querya_desktop/core/theme/app_theme.dart'; import 'package:querya_desktop/features/mongodb/mongo_database_dialog.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; void main() { group('showCreateMongoDBDialog', () { diff --git a/test/features/mongodb/mongo_field_list_perf_test.dart b/test/features/mongodb/mongo_field_list_perf_test.dart index 498c16f2..7dff62c8 100644 --- a/test/features/mongodb/mongo_field_list_perf_test.dart +++ b/test/features/mongodb/mongo_field_list_perf_test.dart @@ -1,7 +1,8 @@ import 'package:flutter/material.dart' as material; import 'package:flutter_test/flutter_test.dart'; import 'package:querya_desktop/features/mongodb/mongo_documents_view.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn; +import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn + hide TextExtension; import '../../support/querya_theme_test_shell.dart'; diff --git a/test/features/mysql/mysql_sql_tx_guard_test.dart b/test/features/mysql/mysql_sql_tx_guard_test.dart index 7a7b0590..c771fa00 100644 --- a/test/features/mysql/mysql_sql_tx_guard_test.dart +++ b/test/features/mysql/mysql_sql_tx_guard_test.dart @@ -3,7 +3,7 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:querya_desktop/core/theme/app_theme.dart'; import 'package:querya_desktop/features/mysql/mysql_object_kind.dart'; import 'package:querya_desktop/features/mysql/mysql_sql_tx_guard.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; void main() { test('mysqlObjectOpensTableBrowser covers table and view only', () { diff --git a/test/features/nosql/nosql_return_to_object_test.dart b/test/features/nosql/nosql_return_to_object_test.dart index 53c09f70..f1db9a08 100644 --- a/test/features/nosql/nosql_return_to_object_test.dart +++ b/test/features/nosql/nosql_return_to_object_test.dart @@ -4,7 +4,8 @@ import 'package:querya_desktop/core/storage/local_db.dart'; import 'package:querya_desktop/features/main_screen/main_screen_workspace_state.dart'; import 'package:querya_desktop/features/mongodb/mongo_stats_view.dart'; import 'package:querya_desktop/features/redis/redis_view.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn; +import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn + hide TextExtension; import 'package:querya_desktop/shared/widgets/querya_button.dart'; void main() { diff --git a/test/features/onboarding/welcome_tour_dialog_test.dart b/test/features/onboarding/welcome_tour_dialog_test.dart index 5384ed67..2d931cfa 100644 --- a/test/features/onboarding/welcome_tour_dialog_test.dart +++ b/test/features/onboarding/welcome_tour_dialog_test.dart @@ -6,7 +6,7 @@ import 'package:path_provider_platform_interface/path_provider_platform_interfac import 'package:querya_desktop/core/motion/querya_motion_scope.dart'; import 'package:querya_desktop/core/storage/local_db.dart'; import 'package:querya_desktop/features/onboarding/welcome_tour_dialog.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import '../../support/querya_theme_test_shell.dart'; diff --git a/test/features/postgresql/postgres_sql_tx_guard_test.dart b/test/features/postgresql/postgres_sql_tx_guard_test.dart index 07ef0b4d..25ea95be 100644 --- a/test/features/postgresql/postgres_sql_tx_guard_test.dart +++ b/test/features/postgresql/postgres_sql_tx_guard_test.dart @@ -3,7 +3,7 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:querya_desktop/core/theme/app_theme.dart'; import 'package:querya_desktop/features/postgresql/postgres_object_kind.dart'; import 'package:querya_desktop/features/postgresql/postgres_sql_tx_guard.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; void main() { test('postgresObjectOpensTableBrowser covers grid kinds only', () { diff --git a/test/features/postgresql/postgres_table_toolbar_layout_test.dart b/test/features/postgresql/postgres_table_toolbar_layout_test.dart index 6ff8abff..a03bd968 100644 --- a/test/features/postgresql/postgres_table_toolbar_layout_test.dart +++ b/test/features/postgresql/postgres_table_toolbar_layout_test.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart' as material; import 'package:flutter_test/flutter_test.dart'; import 'package:querya_desktop/core/theme/app_theme.dart'; import 'package:querya_desktop/features/postgresql/postgres_table_toolbar.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import '../../support/layout_overflow.dart'; diff --git a/test/features/postgresql/postgresql_connection_form_test.dart b/test/features/postgresql/postgresql_connection_form_test.dart index 48a81b7a..477a2429 100644 --- a/test/features/postgresql/postgresql_connection_form_test.dart +++ b/test/features/postgresql/postgresql_connection_form_test.dart @@ -3,7 +3,7 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:querya_desktop/core/storage/local_db.dart'; import 'package:querya_desktop/core/theme/app_theme.dart'; import 'package:querya_desktop/features/postgresql/postgresql_connection_form.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; void main() { group('showPostgresConnectionForm', () { diff --git a/test/features/redis/redis_cli_workspace_test.dart b/test/features/redis/redis_cli_workspace_test.dart index c4d1a4e2..e69b0bff 100644 --- a/test/features/redis/redis_cli_workspace_test.dart +++ b/test/features/redis/redis_cli_workspace_test.dart @@ -6,7 +6,7 @@ import 'package:querya_desktop/core/database/destructive_sql_detector.dart'; import 'package:querya_desktop/core/database/redis_connection.dart'; import 'package:querya_desktop/core/storage/local_db.dart'; import 'package:querya_desktop/features/redis/redis_cli_workspace.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import '../../support/querya_theme_test_shell.dart'; diff --git a/test/features/redis/redis_key_editor_test.dart b/test/features/redis/redis_key_editor_test.dart index 9f6f0e17..9086cdec 100644 --- a/test/features/redis/redis_key_editor_test.dart +++ b/test/features/redis/redis_key_editor_test.dart @@ -6,7 +6,8 @@ import 'package:querya_desktop/core/database/redis_bulk.dart'; import 'package:querya_desktop/core/database/redis_connection.dart'; import 'package:querya_desktop/features/redis/redis_key_editor.dart'; import 'package:querya_desktop/shared/widgets/widgets.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn; +import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn + hide TextExtension; import '../../support/querya_theme_test_shell.dart'; diff --git a/test/features/redis/redis_type_editors_test.dart b/test/features/redis/redis_type_editors_test.dart index ca175dde..9a115067 100644 --- a/test/features/redis/redis_type_editors_test.dart +++ b/test/features/redis/redis_type_editors_test.dart @@ -8,7 +8,8 @@ import 'package:querya_desktop/features/redis/editors/redis_list_editor.dart'; import 'package:querya_desktop/features/redis/editors/redis_set_editor.dart'; import 'package:querya_desktop/features/redis/editors/redis_string_editor.dart'; import 'package:querya_desktop/features/redis/editors/redis_zset_editor.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn; +import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn + hide TextExtension; import '../../support/querya_theme_test_shell.dart'; diff --git a/test/features/results/charts/quick_chart_view_test.dart b/test/features/results/charts/quick_chart_view_test.dart index 9a1102c8..f07f89d1 100644 --- a/test/features/results/charts/quick_chart_view_test.dart +++ b/test/features/results/charts/quick_chart_view_test.dart @@ -9,7 +9,7 @@ import 'package:querya_desktop/core/theme/parser/querya_theme_from_vscode.dart'; import 'package:querya_desktop/core/theme/querya_theme.dart'; import 'package:querya_desktop/features/results/charts/chart_data.dart'; import 'package:querya_desktop/features/results/charts/quick_chart_view.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import '../../../support/querya_theme_test_shell.dart'; diff --git a/test/features/settings/interface_scale_slider_test.dart b/test/features/settings/interface_scale_slider_test.dart index 32318211..ee651abe 100644 --- a/test/features/settings/interface_scale_slider_test.dart +++ b/test/features/settings/interface_scale_slider_test.dart @@ -3,7 +3,7 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:querya_desktop/core/layout/ui_scale_controller.dart'; import 'package:querya_desktop/core/storage/app_settings.dart'; import 'package:querya_desktop/features/settings/preferences_controls.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import '../../support/querya_theme_test_shell.dart'; diff --git a/test/features/settings/preferences_checkbox_row_test.dart b/test/features/settings/preferences_checkbox_row_test.dart index 412f90c3..8427f3c2 100644 --- a/test/features/settings/preferences_checkbox_row_test.dart +++ b/test/features/settings/preferences_checkbox_row_test.dart @@ -1,7 +1,8 @@ import 'package:flutter/material.dart' as material; import 'package:flutter_test/flutter_test.dart'; import 'package:querya_desktop/features/settings/preferences_controls.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:querya_desktop/shared/widgets/querya_text.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import '../../support/querya_theme_test_shell.dart'; diff --git a/test/features/settings/preferences_master_detail_test.dart b/test/features/settings/preferences_master_detail_test.dart index 89269e1f..9390d002 100644 --- a/test/features/settings/preferences_master_detail_test.dart +++ b/test/features/settings/preferences_master_detail_test.dart @@ -8,7 +8,7 @@ import 'package:querya_desktop/core/storage/local_db.dart'; import 'package:querya_desktop/core/theme/app_theme.dart'; import 'package:querya_desktop/features/settings/preferences_controls.dart'; import 'package:querya_desktop/features/settings/preferences_dialog.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; class _FakePathProvider extends PathProviderPlatform { _FakePathProvider(this._root); diff --git a/test/features/sqlite/sqlite_sql_tx_guard_test.dart b/test/features/sqlite/sqlite_sql_tx_guard_test.dart index 7eb47fe3..c624eaab 100644 --- a/test/features/sqlite/sqlite_sql_tx_guard_test.dart +++ b/test/features/sqlite/sqlite_sql_tx_guard_test.dart @@ -4,7 +4,7 @@ import 'package:querya_desktop/core/theme/app_theme.dart'; import 'package:querya_desktop/features/connections/connections_panel.dart' show SqliteObjectKind; import 'package:querya_desktop/features/sqlite/sqlite_sql_tx_guard.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; void main() { test('sqliteObjectOpensTableBrowser covers table and view', () { diff --git a/test/features/workspace/context_menu_mode_switch_test.dart b/test/features/workspace/context_menu_mode_switch_test.dart index 6fb51ede..efc2805b 100644 --- a/test/features/workspace/context_menu_mode_switch_test.dart +++ b/test/features/workspace/context_menu_mode_switch_test.dart @@ -2,7 +2,7 @@ import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart' as material; import 'package:flutter_test/flutter_test.dart'; import 'package:querya_desktop/core/theme/querya_theme.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; material.Widget _testShell({required material.Widget child}) { final td = QueryaTheme.darkDefault diff --git a/test/features/workspace/data_grid_context_menu_test.dart b/test/features/workspace/data_grid_context_menu_test.dart index 5d3f8e1b..d48bbe77 100644 --- a/test/features/workspace/data_grid_context_menu_test.dart +++ b/test/features/workspace/data_grid_context_menu_test.dart @@ -7,7 +7,7 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:querya_desktop/core/theme/querya_theme.dart'; import 'package:querya_desktop/features/workspace/data_grid_staging_buffer.dart'; import 'package:querya_desktop/features/workspace/result_grid_view.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; material.Widget _testShell({required material.Widget child}) { final td = QueryaTheme.darkDefault diff --git a/test/features/workspace/destructive_query_dialog_test.dart b/test/features/workspace/destructive_query_dialog_test.dart index 334533ef..890fa390 100644 --- a/test/features/workspace/destructive_query_dialog_test.dart +++ b/test/features/workspace/destructive_query_dialog_test.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart' as material; import 'package:flutter_test/flutter_test.dart'; import 'package:querya_desktop/core/database/destructive_sql_detector.dart'; import 'package:querya_desktop/features/workspace/destructive_query_dialog.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import '../../support/querya_theme_test_shell.dart'; diff --git a/test/features/workspace/dml_preview_dialog_test.dart b/test/features/workspace/dml_preview_dialog_test.dart index b07006b2..4b70f425 100644 --- a/test/features/workspace/dml_preview_dialog_test.dart +++ b/test/features/workspace/dml_preview_dialog_test.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart' as material; import 'package:flutter_test/flutter_test.dart'; import 'package:querya_desktop/core/database/table_mutation_engine.dart'; import 'package:querya_desktop/features/workspace/dml_preview_dialog.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import '../../support/querya_theme_test_shell.dart'; diff --git a/test/features/workspace/grid_cell_editor_test.dart b/test/features/workspace/grid_cell_editor_test.dart index db576099..2bd5cc2e 100644 --- a/test/features/workspace/grid_cell_editor_test.dart +++ b/test/features/workspace/grid_cell_editor_test.dart @@ -5,7 +5,7 @@ import 'package:querya_desktop/features/workspace/data_grid_staging_buffer.dart' import 'package:querya_desktop/features/workspace/grid_cell_editor.dart'; import 'package:querya_desktop/features/workspace/grid_cell_popover_inspector.dart'; import 'package:querya_desktop/features/workspace/result_grid_view.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import '../../support/querya_theme_test_shell.dart'; diff --git a/test/features/workspace/query_editor_tab_test.dart b/test/features/workspace/query_editor_tab_test.dart index bb941342..89dae2b0 100644 --- a/test/features/workspace/query_editor_tab_test.dart +++ b/test/features/workspace/query_editor_tab_test.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart' as material; import 'package:flutter_test/flutter_test.dart'; import 'package:querya_desktop/features/workspace/query_editor_tab.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import '../../support/querya_theme_test_shell.dart'; diff --git a/test/features/workspace/result_grid_lazy_context_menu_test.dart b/test/features/workspace/result_grid_lazy_context_menu_test.dart index 37c99504..f46508e8 100644 --- a/test/features/workspace/result_grid_lazy_context_menu_test.dart +++ b/test/features/workspace/result_grid_lazy_context_menu_test.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart' as material; import 'package:flutter_test/flutter_test.dart'; import 'package:querya_desktop/core/theme/querya_theme.dart'; import 'package:querya_desktop/features/workspace/result_grid_view.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; material.Widget _testShell({required material.Widget child}) { final td = QueryaTheme.darkDefault diff --git a/test/features/workspace/result_grid_sorting_model_test.dart b/test/features/workspace/result_grid_sorting_model_test.dart index e57b1c10..e1efd25e 100644 --- a/test/features/workspace/result_grid_sorting_model_test.dart +++ b/test/features/workspace/result_grid_sorting_model_test.dart @@ -5,7 +5,7 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:querya_desktop/core/theme/querya_theme.dart'; import 'package:querya_desktop/features/workspace/data_grid_staging_buffer.dart'; import 'package:querya_desktop/features/workspace/result_grid_view.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; material.Widget _testShell({required material.Widget child}) { final td = QueryaTheme.darkDefault diff --git a/test/features/workspace/sql_editor_chrome_test.dart b/test/features/workspace/sql_editor_chrome_test.dart index 53697e4c..316a4b12 100644 --- a/test/features/workspace/sql_editor_chrome_test.dart +++ b/test/features/workspace/sql_editor_chrome_test.dart @@ -5,7 +5,7 @@ import 'package:querya_desktop/core/theme/querya_editor_theme.dart'; import 'package:querya_desktop/core/theme/querya_theme.dart'; import 'package:querya_desktop/core/theme/querya_workbench_theme.dart'; import 'package:querya_desktop/features/workspace/sql_editor_chrome.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import '../../support/querya_theme_test_shell.dart'; diff --git a/test/features/workspace/sql_workspace_execute_dirty_guard_test.dart b/test/features/workspace/sql_workspace_execute_dirty_guard_test.dart index ea911785..8361e4ec 100644 --- a/test/features/workspace/sql_workspace_execute_dirty_guard_test.dart +++ b/test/features/workspace/sql_workspace_execute_dirty_guard_test.dart @@ -7,7 +7,7 @@ import 'package:querya_desktop/core/actions/sql_editor_command_bridge.dart'; import 'package:querya_desktop/core/storage/local_db.dart'; import 'package:querya_desktop/features/sqlite/sqlite_sql_workspace.dart'; import 'package:querya_desktop/features/workspace/workspace.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; import 'package:querya_desktop/shared/widgets/querya_button.dart'; import 'package:sqflite_common_ffi/sqflite_ffi.dart'; diff --git a/test/features/workspace/sql_workspace_toolbar_test.dart b/test/features/workspace/sql_workspace_toolbar_test.dart index 6f5b7f5d..c99fafc2 100644 --- a/test/features/workspace/sql_workspace_toolbar_test.dart +++ b/test/features/workspace/sql_workspace_toolbar_test.dart @@ -5,7 +5,7 @@ import 'package:querya_desktop/core/theme/querya_theme_scope.dart'; import 'package:querya_desktop/features/workspace/sql_execution_delegate.dart'; import 'package:querya_desktop/features/workspace/sql_query_tab_session.dart'; import 'package:querya_desktop/features/workspace/sql_workspace_toolbar.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; class _FakeSqlExecutionDelegate extends BaseSqlExecutionDelegate { @override diff --git a/test/features/workspace/table_view_sorting_test.dart b/test/features/workspace/table_view_sorting_test.dart index 3f01cba0..eb2ac56b 100644 --- a/test/features/workspace/table_view_sorting_test.dart +++ b/test/features/workspace/table_view_sorting_test.dart @@ -4,7 +4,7 @@ import 'package:querya_desktop/core/database/mysql_connection.dart'; import 'package:querya_desktop/core/database/sqlite_connection.dart'; import 'package:querya_desktop/core/theme/querya_theme.dart'; import 'package:querya_desktop/features/postgresql/postgres_table_utils.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; void main() { group('Table Views SQL Sorting Clause Generation', () { diff --git a/test/features/workspace/table_view_staging_test.dart b/test/features/workspace/table_view_staging_test.dart index df6e44f8..75a0324b 100644 --- a/test/features/workspace/table_view_staging_test.dart +++ b/test/features/workspace/table_view_staging_test.dart @@ -7,7 +7,7 @@ import 'package:querya_desktop/core/database/table_schema_meta.dart'; import 'package:querya_desktop/core/theme/app_theme.dart'; import 'package:querya_desktop/features/workspace/data_grid_staging_buffer.dart'; import 'package:querya_desktop/features/workspace/table_view_staging.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; void main() { group('tableViewEditingEnabled', () { diff --git a/test/shared/widgets/querya_text_test.dart b/test/shared/widgets/querya_text_test.dart new file mode 100644 index 00000000..9b4ef0ae --- /dev/null +++ b/test/shared/widgets/querya_text_test.dart @@ -0,0 +1,71 @@ +import 'package:flutter/material.dart' as material; +import 'package:flutter_test/flutter_test.dart'; +import 'package:querya_desktop/shared/widgets/querya_text.dart'; + +import '../../support/querya_theme_test_shell.dart'; + +material.TextStyle _styleOf(WidgetTester tester, String text) { + final context = tester.element(find.text(text)); + return material.DefaultTextStyle.of(context).style; +} + +void main() { + group('QueryaTextStyles', () { + testWidgets('sizes and weights go through the default text style', + (tester) async { + await tester.pumpWidget( + queryaThemeTestShell( + child: material.Column( + children: [ + const material.Text('x').xSmall(), + const material.Text('s').small(), + const material.Text('b').base(), + const material.Text('l').large(), + const material.Text('sb').semiBold(), + const material.Text('bo').bold(), + const material.Text('me').medium(), + ], + ), + ), + ); + + expect(_styleOf(tester, 'x').fontSize, 12); + expect(_styleOf(tester, 's').fontSize, 14); + expect(_styleOf(tester, 'b').fontSize, 16); + expect(_styleOf(tester, 'l').fontSize, 18); + expect(_styleOf(tester, 'sb').fontWeight, material.FontWeight.w600); + expect(_styleOf(tester, 'bo').fontWeight, material.FontWeight.w700); + expect(_styleOf(tester, 'me').fontWeight, material.FontWeight.w500); + }); + + testWidgets('modifiers chain and keep each other', (tester) async { + await tester.pumpWidget( + queryaThemeTestShell( + child: const material.Text('chain').semiBold().small(), + ), + ); + + final style = _styleOf(tester, 'chain'); + expect(style.fontSize, 14); + expect(style.fontWeight, material.FontWeight.w600); + }); + + testWidgets('muted and foreground use the colour scheme', (tester) async { + await tester.pumpWidget( + queryaThemeTestShell( + child: material.Column( + children: [ + const material.Text('quiet').muted(), + const material.Text('loud').foreground(), + ], + ), + ), + ); + + expect( + _styleOf(tester, 'quiet').color, + isNot(_styleOf(tester, 'loud').color), + ); + }); + }); +} diff --git a/test/support/querya_theme_test_shell.dart b/test/support/querya_theme_test_shell.dart index 3bbdf60d..16604034 100644 --- a/test/support/querya_theme_test_shell.dart +++ b/test/support/querya_theme_test_shell.dart @@ -1,7 +1,7 @@ import 'package:querya_desktop/core/layout/ui_scale.dart'; import 'package:querya_desktop/core/theme/querya_theme.dart'; import 'package:querya_desktop/core/theme/querya_theme_scope.dart'; -import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart' hide TextExtension; /// Wraps [child] with [ShadcnApp] and [QueryaThemeScope] for widget tests. Widget queryaThemeTestShell({