Input
Base text-input form.
Usage
Simple Usage
preview
vue
<template>
<p-input v-model="value" placeholder="Input Here" />
</template>Sizing
Input has 4 variants size: xs, sm, md, lg, default is md.
preview
vue
<template>
<p-input size="xs" />
<p-input size="sm" />
<p-input size="md" />
<p-input size="lg" />
</template>Disabled state
preview
vue
<template>
<p-input disabled />
</template>Readonly state
preview
vue
<template>
<p-input readonly />
</template>Error state
preview
vue
<template>
<p-input error />
</template>Clearable
Add clear button to input with prop clearable.
preview
vue
<template>
<p-input clearable />
</template>Prepend & Append
Input has append & prepend feature to place content inside input field. But the content that can be inserted is limited, which is only an icon.
Prepend
preview
vue
<template>
<p-input>
<template #prepend>
<IconAt />
</template>
</p-input>
<p-input>
<template #prepend>
<IconEmail class="text-muted" />
</template>
</p-input>
</template>Append
preview
vue
<template>
<p-input>
<template #append>
<IconCheck class="text-success" />
</template>
</p-input>
<p-input>
<template #append>
<p-spinner />
</template>
</p-input>
</template>Accept Character
You can filter what characters are allowed to be input using the prop accept. The value can be RegExp, or using available preset.
preview
vue
<template>
<p-input accept="0-9" placeholder="Numeric Only (Manual)" />
<p-input accept="numeric" placeholder="Numeric Only (using Preset)" />
</template>Available Preset
| Preset | RegExp | Alias |
|---|---|---|
numeric | 0-9 | num, digit |
alpha | A-Za-z | |
alpha-space | A-Za-z\s | |
alpha-space-symbol | A-Za-z\s!"#$%&'()*+,./:;<=>?@[\]^_`{|}~- | non-numeric |
alpha-numeric | A-Za-z0-9 | alpha-num |
alpha-numeric-space | A-Za-z0-9\s | alpha-num-space |
alpha-numeric-space-symbol | A-Za-z0-9\s!"#$%&'()*+,./:;<=>?@[\]^_`{|}~- | text, alpha-num-space-symbol |
numeric-space | 0-9\s | num-space |
numeric-space-symbol | 0-9\s!"#$%&'()*+,./:;<=>?@[\]^_`{|}~- | non-alpha, num-space-symbol |
Binding v-model
Input value can be binding with v-model.
preview
result:
-vue
<template>
<p-input v-model="result" />
</template>API
Props
| Props | Type | Default | Description |
|---|---|---|---|
type | String | text | Input type |
size | String | md | Input size variant, valid value: xs, sm, md, lg |
placeholder | String | - | Input placeholder |
disabled | Boolean | false | Disabled state |
readonly | Boolean | false | Readonly state |
error | Boolean | false | Error state |
clearable | Boolean | false | Enable clear button |
accept | String | - | Whitelist character can be inputted |
modelValue | String | - | v-model value |
container-class | String or Array or Object | - | CSS class to add in the input container |
Slots
| Name | Description |
|---|---|
prepend | Content to place icon inside of prepend input field |
append | Content to place icon inside of append input field |
Events
| Name | Arguments | Description |
|---|---|---|
change | String | Event when value changed |
clear | - | Event when clear button clicked |