Part of #1331. Needs QueryaButton.
Problem
The compositions that went wrong in the review are two buttons placed side by side: Execute + its menu (generic_sql_workspace.dart), Export / Views menus next to action buttons (ERD), and every dialog's hand-assembled footer.
Scope
QueryaSplitButton: a primary action and a chevron that opens a menu, one border and radius, equal height, shared hover / focus / loading, one tooltip each. Replaces Execute + QueryaActionMenu.
QueryaMenuButton: a button that opens a menu (label or icon, chevron, isActive while open); replaces the trigger of QueryaActionMenu / ExportMenuButton, the menu surface stays QueryaDropdown's.
QueryaDialogActions: the footer row of the standard: order, spacing 8, lg size, right alignment, a divider; takes cancel, secondary, primary / destructive slots and enforces one primary; handles Esc -> cancel and Enter -> primary through the dialog's focus scope.
QueryaButtonGroup for segmented actions that are not tabs.
Acceptance
Part of #1331. Needs
QueryaButton.Problem
The compositions that went wrong in the review are two buttons placed side by side: Execute + its menu (
generic_sql_workspace.dart), Export / Views menus next to action buttons (ERD), and every dialog's hand-assembled footer.Scope
QueryaSplitButton: a primary action and a chevron that opens a menu, one border and radius, equal height, shared hover / focus / loading, one tooltip each. Replaces Execute +QueryaActionMenu.QueryaMenuButton: a button that opens a menu (label or icon, chevron,isActivewhile open); replaces the trigger ofQueryaActionMenu/ExportMenuButton, the menu surface staysQueryaDropdown's.QueryaDialogActions: the footer row of the standard: order, spacing 8,lgsize, right alignment, a divider; takescancel,secondary,primary/destructiveslots and enforces one primary; handles Esc -> cancel and Enter -> primary through the dialog's focus scope.QueryaButtonGroupfor segmented actions that are not tabs.Acceptance
SizedBoxbetween halves.QueryaDialogActionscannot show two primaries (assert in debug).