Skip to content

Input

The input element with a type attribute whose value is "text" represents a one-line plain text edit control for the input element’s value.

Examples

Input

Code
vue
<script setup lang="ts">
import { ref } from 'vue'
import { BaseInput } from '@point-hub/papp'

const form = ref({
  name: ''
})
</script>

<template>
  <form @submit.prevent="">
    <component :is="BaseInput" v-model="form.name" />
  </form>
</template>

Label

Code
vue
<script setup lang="ts">
import { ref } from 'vue'
import { BaseInput } from '@point-hub/papp'

const form = ref({
  name1: '',
  name2: ''
})
</script>

<template>
  <form @submit.prevent="">
    <component
      :is="BaseInput"
      v-model="form.name1"
      label="Label"
      layout="horizontal"
      description="Horizontal Layout"
    />
    <component
      :is="BaseInput"
      v-model="form.name2"
      label="Label"
      layout="vertical"
      description="Vertical Layout"
    />
  </form>
</template>

Border

Code
vue
<script setup lang="ts">
import { ref } from 'vue'
import { BaseInput } from '@point-hub/papp'

const form = ref({
  name1: '',
  name2: '',
  name3: ''
})
</script>

<template>
  <form @submit.prevent="">
    <component :is="BaseInput" v-model="form.name1" label="Without Border" border="none" />
    <component :is="BaseInput" v-model="form.name2" label="Simple Border" border="simple" />
    <component :is="BaseInput" v-model="form.name3" label="Full Border" border="full" />
  </form>
</template>

Helper

Code
vue
<script setup lang="ts">
import { ref } from 'vue'
import { BaseInput } from '@point-hub/papp'

const form = ref({
  name1: '',
  name2: '',
  name3: '',
  name4: '',
  name5: '',
  name6: 'Disabled'
})

const errors = ref(['Error Example'])
</script>

<template>
  <form @submit.prevent="">
    <component :is="BaseInput" v-model="form.name1" label="Label" required />
    <component
      :is="BaseInput"
      v-model="form.name2"
      label="Label"
      placeholder="Placeholder example"
    />
    <component
      :is="BaseInput"
      v-model="form.name3"
      label="Label"
      description="Description example"
    />
    <component :is="BaseInput" v-model="form.name4" label="Label" :helpers="['Helper example']" />
    <component :is="BaseInput" v-model="form.name5" label="Label" v-model:errors="errors" />
    <component :is="BaseInput" v-model="form.name6" label="Label" description="Disabled" disabled />
  </form>
</template>

Group

Code
vue
<script setup lang="ts">
import { BaseButton, BaseInput } from '@point-hub/papp'
import { ref } from 'vue'

const form = ref({
  name: '',
  password: ''
})
</script>

<template>
  <Demo>
    <form @submit.prevent="">
      <component
        :is="BaseInput"
        required
        v-model="form.name"
        label="Name"
        placeholder="Placeholder Name"
      >
        <template #prefix>
          <base-icon icon="i-far-user mx-2" />
        </template>
      </component>
      <component :is="BaseInput" required v-model="form.password" label="Password" type="password">
        <template #suffix>
          <component :is="BaseButton" variant="text">
            <base-icon icon="i-far-eye mx-2" />
          </component>
        </template>
      </component>
    </form>
  </Demo>
</template>

Input API

Types

ts
export type BaseInputType = 'text' | 'tel' | 'email' | 'password' | 'date' | 'number'
export type BaseInputBorderType = 'none' | 'simple' | 'full'
export type BaseFormLayoutType = `horizontal` `vertical`

Props

NameTypeDefaultDescription
v-modelstringv-model is required.
v-model:typeBaseInputTypetextInput type.
v-model:errorsstring[]Input error message.
idstringInput id.
labelstringInput label.
descriptionstringInput description.
placeholderstringInput placeholder.
borderBaseInputBorderTypesimpleInput border.
layoutBaseFormLayoutTypeverticalInput layout.
maxlengthnumberMax text length
autofocusbooleanfalseFocus input on page load.
requiredbooleanfalseif true input is required.
disabledbooleanfalseif true input is disabled.
helpersstring[]Input helper message.

Slot

#prefix slot for rendering input prefix like icon

#suffix slot for rendering input suffix like icon

Released under the MIT License.