Telegram (ask questions / claim the issue here first): https://t.me/+DOylgFv1jyJlNzM0
Why this matters
frontend/src/app/components/global_ui/Button.tsx is a 336-byte stub with hardcoded px-4 py-2 bg-blue-600 styles, no variants/sizes/loading/forwardRef, and a default export. It is imported by nothing except its own frontend/src/app/components/global_ui/Button.test.tsx - the real, app-wide button is frontend/src/app/components/ui/Button.tsx (named export, 5 variants, used in 6+ files and the ui-demo). The stub shadows the design system and the test gives a false impression that Button is covered when it tests the unused component.
Acceptance criteria
Files to touch
frontend/src/app/components/global_ui/Button.tsx
frontend/src/app/components/global_ui/Button.test.tsx
frontend/src/app/components/ui/Button.tsx
Out of scope
- Refactoring the design-system Button API
Why this matters
frontend/src/app/components/global_ui/Button.tsx is a 336-byte stub with hardcoded px-4 py-2 bg-blue-600 styles, no variants/sizes/loading/forwardRef, and a default export. It is imported by nothing except its own frontend/src/app/components/global_ui/Button.test.tsx - the real, app-wide button is frontend/src/app/components/ui/Button.tsx (named export, 5 variants, used in 6+ files and the ui-demo). The stub shadows the design system and the test gives a false impression that Button is covered when it tests the unused component.
Acceptance criteria
Files to touch
frontend/src/app/components/global_ui/Button.tsxfrontend/src/app/components/global_ui/Button.test.tsxfrontend/src/app/components/ui/Button.tsxOut of scope