import { Button } from "@components/Button";
import { TabProvider, TabTrigger, TabContent, TabList } from "@components/Tabs";
import { Story } from "@/components/Story";
import { LoadedCode } from "@/components/LoadedCode";

# Button
Displays a button or a component that looks like a button.

<TabProvider defaultName="preview">
    <TabList>
        <TabTrigger name="preview">Preview</TabTrigger>
        <TabTrigger name="code">Code</TabTrigger>
    </TabList>
    <TabContent name="preview">
        <Story layout="centered">
            <Button>Button</Button>
        </Story>
    </TabContent>
    <TabContent name="code">
```tsx
import { Button } from "@components/Button";

export function ButtonDemo() {
    return <Button>Button</Button>
}
```
    </TabContent>
</TabProvider>

## Installation

1. Create a new file `Button.tsx` in your component folder.
2. Copy and paste the following code into the file.

<LoadedCode from="https://raw.githubusercontent.com/p-sw/ui/main/packages/react/components/Button.tsx" />

## Examples

### Default

<TabProvider defaultName="preview">
    <TabList>
        <TabTrigger name="preview">Preview</TabTrigger>
        <TabTrigger name="code">Code</TabTrigger>
    </TabList>
    <TabContent name="preview">
        <Story layout="centered">
            <Button>Button</Button>
        </Story>
    </TabContent>
    <TabContent name="code">
```tsx
import { Button } from "@components/Button";

export function ButtonDemo() {
    return <Button preset="default">Button</Button>
}
```
    </TabContent>
</TabProvider>

### Ghost

<TabProvider defaultName="preview">
    <TabList>
        <TabTrigger name="preview">Preview</TabTrigger>
        <TabTrigger name="code">Code</TabTrigger>
    </TabList>
    <TabContent name="preview">
        <Story layout="centered">
            <Button preset="ghost">Button</Button>
        </Story>
    </TabContent>
    <TabContent name="code">
```tsx
import { Button } from "@components/Button";

export function ButtonDemo() {
    return <Button preset="ghost">Button</Button>
}
```
    </TabContent>
</TabProvider>

### Link

<TabProvider defaultName="preview">
    <TabList>
        <TabTrigger name="preview">Preview</TabTrigger>
        <TabTrigger name="code">Code</TabTrigger>
    </TabList>
    <TabContent name="preview">
        <Story layout="centered">
            <Button preset="link">Button</Button>
        </Story>
    </TabContent>
    <TabContent name="code">
```tsx
import { Button } from "@components/Button";

export function ButtonDemo() {
    return <Button preset="link">Button</Button>
}
```
    </TabContent>
</TabProvider>

### Success

<TabProvider defaultName="preview">
    <TabList>
        <TabTrigger name="preview">Preview</TabTrigger>
        <TabTrigger name="code">Code</TabTrigger>
    </TabList>
    <TabContent name="preview">
        <Story layout="centered">
            <Button preset="success">Button</Button>
        </Story>
    </TabContent>
    <TabContent name="code">
```tsx
import { Button } from "@components/Button";

export function ButtonDemo() {
    return <Button preset="success">Button</Button>
}
```
    </TabContent>
</TabProvider>

### Warning

<TabProvider defaultName="preview">
    <TabList>
        <TabTrigger name="preview">Preview</TabTrigger>
        <TabTrigger name="code">Code</TabTrigger>
    </TabList>
    <TabContent name="preview">
        <Story layout="centered">
            <Button preset="warning">Button</Button>
        </Story>
    </TabContent>
    <TabContent name="code">
```tsx
import { Button } from "@components/Button";

export function ButtonDemo() {
    return <Button preset="warning">Button</Button>
}
```
    </TabContent>
</TabProvider>

### Danger

<TabProvider defaultName="preview">
    <TabList>
        <TabTrigger name="preview">Preview</TabTrigger>
        <TabTrigger name="code">Code</TabTrigger>
    </TabList>
    <TabContent name="preview">
        <Story layout="centered">
            <Button preset="danger">Button</Button>
        </Story>
    </TabContent>
    <TabContent name="code">
```tsx
import { Button } from "@components/Button";

export function ButtonDemo() {
    return <Button preset="danger">Button</Button>
}
```
    </TabContent>
</TabProvider>
