Part of #1331. Implements the scale of the standard issue.
Problem
Heights are defined in four places that do not agree: QueryaIconButtonDensity (28 / 32), QueryaDropdownTokens (36 / compact 26), QueryaTabStrip (dense 4 px vs 8 px vertical padding), and shadcn ButtonSize (scale 1 / 0.75 of a padding that depends on theme density). A toolbar row therefore has no common height by construction.
Scope
lib/core/ui/querya_control_tokens.dart (next to querya_tree_tokens.dart): QueryaControlSize with the values sm, md, lg and height, horizontalPadding, fontSize, iconSize, iconGap, radius, and scaled(context) through uiScale.
QueryaIconButton: density becomes size: QueryaControlSize (dense / standard kept as deprecated aliases for sm / md).
QueryaDropdown, QueryaSearchField, QueryaTabStrip, QueryaToolbarButton: take their height, radius and font from the tokens; dropdown compact 26 becomes sm 28.
- One
QueryaControlSize.of(context) default for a toolbar subtree (QueryaControlScope), so a toolbar sets its size once and its children follow.
Acceptance
Part of #1331. Implements the scale of the standard issue.
Problem
Heights are defined in four places that do not agree:
QueryaIconButtonDensity(28 / 32),QueryaDropdownTokens(36 / compact 26),QueryaTabStrip(dense4 px vs 8 px vertical padding), and shadcnButtonSize(scale 1 / 0.75 of a padding that depends on theme density). A toolbar row therefore has no common height by construction.Scope
lib/core/ui/querya_control_tokens.dart(next toquerya_tree_tokens.dart):QueryaControlSizewith the valuessm,md,lgandheight,horizontalPadding,fontSize,iconSize,iconGap,radius, andscaled(context)throughuiScale.QueryaIconButton:densitybecomessize: QueryaControlSize(dense/standardkept as deprecated aliases forsm/md).QueryaDropdown,QueryaSearchField,QueryaTabStrip,QueryaToolbarButton: take their height, radius and font from the tokens; dropdown compact 26 becomessm28.QueryaControlSize.of(context)default for a toolbar subtree (QueryaControlScope), so a toolbar sets its size once and its children follow.Acceptance
QueryaIconButton,QueryaDropdown,QueryaSearchFieldandQueryaTabStripof one size has one height (widget test).uiScaleand text scale without overflow.