Skip to content

Datepicker

The Datepicker is used to allow the user to select a date, and to display that date in the specified format.

Examples

Datepicker

Code
vue
<script setup lang="ts">
import { ref } from 'vue'

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

<template>
  <form @submit.prevent="">
    <base-datepicker v-model="form.date" />
  </form>
</template>

Label

Code
vue
<script setup lang="ts">
import { ref } from 'vue'

const form = ref({
  date1: '',
  date2: ''
})
</script>

<template>
  <form @submit.prevent="">
    <base-datepicker
      v-model="form.date1"
      label="Date"
      layout="vertical"
      description="Vertical Layout"
    />
    <base-datepicker
      v-model="form.date2"
      label="Date"
      layout="horizontal"
      description="Horizontal Layout"
    />
  </form>
</template>

Border

Code
vue
<script setup lang="ts">
import { ref } from 'vue'

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

<template>
  <form @submit.prevent="">
    <base-datepicker v-model="form.date" label="Without Border" border="none" />
    <base-datepicker v-model="form.date" label="Simple Border" border="simple" />
    <base-datepicker v-model="form.date" label="Full Border" border="full" />
  </form>
</template>

Helper

Code
vue
<script setup lang="ts">
import { ref } from 'vue'

const form = ref({
  date: ''
})

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

<template>
  <form @submit.prevent="">
    <base-datepicker v-model="form.date" label="Date" required />
    <base-datepicker v-model="form.date" label="Date" description="Description Example" />
    <base-datepicker v-model="form.date" label="Date" :helpers="['Helper Example']" />
    <base-datepicker v-model="form.date" label="Date" v-model:errors="errors" />
    <base-datepicker v-model="form.date" label="Date" description="Disabled" disabled />
  </form>
</template>

Datepicker API

Types

ts
export type BaseDatepickerBorderType = 'simple' | 'full' | 'none'
export type BaseFormLayoutType = 'vertical' | 'horizontal'

Props

NameTypeDefaultDescription
v-modelstringv-model is required.
v-model:errorsstring[]Input error message.
idstringInput id.
labelstringInput label.
descriptionstringInput description.
borderBaseDatepickerBorderTypesimpleInput border.
layoutBaseFormLayoutTypeverticalInput layout.
autofocusbooleanfalseFocus input on page load.
requiredbooleanfalseif true datepicker is required.
disabledbooleanfalseif true datepicker is disabled.
helpersstring[]Input helper message.
data-testidstringTesting ID.

Automated Test Guide

If you pass a data-testid to the <base-datepicker> component, it will automatically generate unique data-testid attributes for testing.

Gherkin Scenario

txt
When I type "2025-01-01" into "form-date"

Step Definition

ts
When('I type {string} into {string}', (value: string, selector: string) => {
  cy.get(`[data-testid="${selector}"]`).type(value)
})

Code Implementation

vue
<script setup>
import { ref } from 'vue'

const agreement = ref()
</script>

<template>
  <base-datepicker v-model="agreement" data-testid="form-date" />
</template>

Released under the MIT License.