# Mock challenge: BaseButton component Build a reusable Vue 3 button component suitable for a design system. Focus on API design, accessibility, and Vue 3 best practices. **Suggested time: 25–35 minutes** --- ## Core requirements - Accept a `variant` prop: `primary`, `secondary`, `danger` — each should have visually distinct styles - Accept a `size` prop: `sm`, `md`, `lg` — affects padding and font size - Accept a `disabled` prop — visually and functionally disables the button - Accept a `loading` prop — shows a loading indicator and prevents interaction - Use a default `slot` for button label content - Explicitly declare a `click` emit --- ## Accessibility requirements - Use a native `