refactor(ui): centralize product icon-button padding in EMCN

Merged
BI
2mo ago
+111-61

Summary

Product icon actions repeatedly force p-1! or p-1.5! over EMCN Button's text-button padding. Add optional iconPadding='sm' | 'md' variants to the existing Button and migrate all 57 product occurrences across 19 consumer files. For example, a terminal copy button now uses iconPadding='md' while keeping its -m-1.5 layout margin.

The selected padding is composed after size and resolved by the existing class merger, so it needs no !important. Existing sizes, colors, corner radii, icon strokes, labels, handlers and disabled states are preserved. Button defaults are unchanged. Remove the unused terminal ROW_STYLES.iconButton recipe as well.

Landing pages are excluded. This PR contains only 21 product files; all audit scripts, reports and browser fixtures remain outside the branch. No new dependencies or tests.

Testing

  • 343 existing EMCN tests and 46 relevant app tests passed; EMCN/app type checks, repository lint and API validation passed.
  • AST comparison verifies all 57 consumer changes are limited to moving padding into the new prop; children, event handlers and other props remain identical.
  • External Chromium fixtures use real before/after Button renders and compiled app CSS: 354 comparisons match across light/dark idle, disabled and hover states. All 70 existing variant/size combinations without the new prop render identical markup. These are isolated component comparisons, not end-to-end product navigation.
  • Final external category audit: 57 findings → 0; broader findings 1060 → 1003, with the other findings unchanged. Product source search finds no remaining old padding recipes. Landing diff is empty.
  • Committed-diff conformance audit: zero usage violations; two expected central-definition notices for the new padding options. The full inventory still has unrelated findings and analysis gaps.