You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
epic(ui): migrate QueryaDropdown, QueryaModalDialog, and QueryaSearchField off shadcn_flutter to Flutter primitives #1365
Eliminate remaining shadcn_flutter dependencies inside the Querya UI Kit (lib/shared/widgets/) by migrating QueryaDropdown, QueryaModalDialog, QueryaSearchField, QueryaTabStrip, and QueryaSpinner to native Flutter primitives.
Context
While Epic #1331 targets migrating all buttons to the Querya UI Kit, 65 files across the project still import package:shadcn_flutter. Most notably, core widgets inside lib/shared/widgets/ still depend directly on shadcn_flutter types:
querya_dropdown.dart: Uses shadcn.Popover and shadcn.OutlinedContainer.
querya_modal_dialog.dart: Uses shadcn.Dialog.
querya_search_field.dart: Uses shadcn.TextField.
querya_tab_strip.dart: Uses shadcn.Tab and shadcn container wrappers.
Moving these to own implementations built on Flutter primitives (OverlayPortal / RawKeyboardListener / CustomPainter) removes external library constraints, unifies control scale tokens, and eliminates frame hitches from complex shadcn widget trees.
Subtasks
Migrate QueryaDropdown from shadcn.Popover to an OverlayPortal-based native popup trigger.
Migrate QueryaModalDialog and showAppDialog to pure showGeneralDialog with Querya theme tokens.
Migrate QueryaSearchField to a pure material.TextField / EditableText wrapper with Querya search icons.
Migrate QueryaSpinner to a lightweight CustomPainter with theme accent.
Add guard test test/guards/shared_does_not_import_shadcn_test.dart to prevent regressions.
Acceptance Criteria
No file in lib/shared/widgets/ imports package:shadcn_flutter.
All existing dialog, dropdown, search, and navigation tests pass.
Visual regression tests in the UI kit gallery match current design tokens.
Related accessibility requirement: #1371 tracks adding accessible combobox semantics (button, expanded, value) and selected menu item announcements to QueryaDropdown during the migration off shadcn_flutter.
The UI kit widgets listed here are off shadcn (earlier PRs and the toast in #1466); lib/shared imports it only through the widgets.dart barrel, guarded by shared_does_not_import_shadcn_test. The rest of leaving shadcn (text styles #1468, Gap, colour types, ShadcnApp, the barrel) continues in #1465.
Activity
ZhuchkaTriplesix commentedon Oct 10, 2026
Related accessibility requirement: #1371 tracks adding accessible combobox semantics (
button,expanded,value) and selected menu item announcements toQueryaDropdownduring the migration off shadcn_flutter.refactor(ui): app toast on our own overlay, off shadcn (#1466)
ZhuchkaTriplesix commentedon Oct 11, 2026
The UI kit widgets listed here are off shadcn (earlier PRs and the toast in #1466);
lib/sharedimports it only through thewidgets.dartbarrel, guarded byshared_does_not_import_shadcn_test. The rest of leaving shadcn (text styles #1468,Gap, colour types,ShadcnApp, the barrel) continues in #1465.