# PromptBox

## Demos

[[ demo src="/demo/prompt-box/base.vue" ]]

## API

### Props

| Name | Type | Default | Description |
| --- | --- | --- | --- |
| `open` | `boolean` | `false` | [^open] |
| `title` | `string` | - | The title of the prompt box. |
| `content` | `string` | - | The description text above the text input. |
| `value` | `string` | `''` | [^value] |
| `loading` | `boolean=` | `false` | Wehter the prompt box is in loading state. When loading, the OK button will enter loading state as well and become unclickable. |
| `disabled` | `boolean=` | `false` | Wehter the prompt box is disabled. When disabled, the OK button will be disabled as well and become unclickable. |
| `ok-label` | `string=` | - | The text content of the “OK” button. |
| `cancel-label` | `string=` | - | The text content of the “Cancel” button. |
| `before-close` | `function(string): boolean=|Promise<boolean=>` | - | Executed when user interaction is about to trigger closing the prompt box. See the [`before-close`](./dialog#props) prop of the [`Dialog`](./dialog) component. |
| `overlay-class` | `string|Array|Object=` | - | See the [`overlay-class`](./overlay#props) prop of the [`Overlay`](./overlay) component. |
| `overlay-style` | `string|Array|Object=` | - | See the [`overlay-style`](./overlay#props) prop of the [`Overlay`](./overlay) component. |

^^^open
:::badges
`.sync`
:::

Whether the prompt box is displayed.
^^^

^^^value
:::badges
`v-model`
:::

The value of the prompt input.
^^^

### Slots

| Name | Description |
| -- | -- |
| `default` | The content of the prompt box. |
| `title` | The title of the prompt box. Will ignore the `title` prop when specified. |
| `foot` | The foot area of the prompt box. Displays an “OK” and a “Cancel” button by default. |

### Events

| Name | Description |
| -- | -- |
| `input` | [^event-input] |
| `ok` | Triggered when the “OK” button is clicked. |
| `cancel` | Triggered when the “Cancel” button is clicked. |
| `afterclose` | Triggered after the box overlay is closed. If leaving transition is provided by the theme, the event will be triggered after the transition completes. |

^^^event-input
:::badges
`v-model`
:::

Triggered when the input value changes. The callback parameter list is `(value: string)` with `value` being the current value of the input.
^^^
