A component for creating input fields with automatic data formatting according to a specified pattern in real-time.

Mask provides structured input with support for various formats (phones, bank cards, dates, currencies, numbers). The component automatically adds separators and literal characters during typing, restricts input to only allowed characters, supports multiple patterns with automatic selection of the most suitable one, works together with the validation system through `pattern` and `check`, and provides built-in mask types for common data formats.

**Key features:**

- Automatic formatting with separator addition
- Flexible templates with support for single and multiple masks
- Built-in types: text, number, number-format, currency, date, time
- Customizable special characters via `special` property
- Input error prevention with character restriction
- Integration with validation system through `pattern` and `check`
- Alignment support (left/right) and direction (ltr/rtl)
- Rubber groups with dynamic length
- Visibility control for unfilled characters

**Typical use cases:**

- Phone number input fields
- Bank card numbers and CVV codes
- Dates and times in various formats
- Postal codes and identifiers
- Currency amounts with formatting
- Numeric values with separators

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

const phone = ref('')
const cardNumber = ref('')
const date = ref('')
const amount = ref('')

const handleInput = (value) => {
  console.log('Entered value:', value)
}
</script>

<template>
  <!-- Russian phone -->
  <Mask
    v-model="phone"
    mask="+7 *** *** ** **"
    placeholder="Enter phone number"
    @input="handleInput"
  />

  <!-- Bank card -->
  <Mask
    v-model="cardNumber"
    mask="**** **** **** ****"
    placeholder="0000 0000 0000 0000"
  />

  <!-- Multiple phone formats -->
  <Mask
    v-model="phone"
    :mask="['+7 *** *** ** **', '8 *** *** ** **']"
  />

  <!-- Date with built-in type -->
  <Mask
    v-model="date"
    type="date"
    pattern="DD.MM.YYYY"
  />

  <!-- Currency -->
  <Mask
    v-model="amount"
    type="currency"
    currency="RUB"
  />
</template>
```
