Button
A button, or a link that looks like one, with six variants and a spinner it manages itself.
Becomes an `<a>` when `href` is set, and keeps the same appearance. That is
worth a branch, because the alternative — a button that navigates with
JavaScript — cannot be opened in a new tab, cannot be copied, and does not
tell you where it goes.
**The spinner arrives on its own.** A `type="submit"` button inside a
[`Form`](/components/form) reads `processing` from context, so nobody has to
wire it up. That is the coupling Flux gets from Livewire and Askr gets from
Inertia, and it is the one people forget on the second button.
A button with an icon and no text becomes square and requires `label`,
because then the icon *is* the button and it needs a name. A button with
text does not get one, because "Save Save" is worse than "Save".
```svelte
<Button variant="primary" icon={ArrowDownTray}>Export</Button>
<Button.Group>
<Button>Oldest</Button>
<Button>Newest</Button>
</Button.Group>
```