UNPKG

@kananon/thai-datepicker

Version:

Thai Buddhist Calendar DatePicker for Vue 3

132 lines (100 loc) 2.96 kB
# Thai DatePicker Vue 3 DatePicker component with Thai Buddhist calendar support. # Image Example ![Image](https://github.com/talqwerty/Tal-Picker/blob/main/src/assets/example.png) ## Features - 🗓️ Thai Buddhist calendar (พ.ศ.) - 🎨 Beautiful UI with yellow/gold theme - 📱 Mobile responsive - ♿ Accessible with ARIA labels - 🔧 Customizable props - 💪 TypeScript support - 🌐 Returns Gregorian dates (ค.ศ.) ## Installation ```bash npm i @kananon/thai-datepicker ``` ## Usage ### ES Module (Recommended) ```vue <script setup> import { ThaiDatePicker } from '@kananon/thai-datepicker' import '@kananon/thai-datepicker/dist/thai-datepicker.css' import { ref } from 'vue' const selectedDate = ref('') </script> <template> <ThaiDatePicker v-model="selectedDate" placeholder="เลือกวันที่" /> <input type="hidden" v-model="selectedDate"> <!-- ค่าที่ส่งไปยัง server --> </template> ``` ### CDN Usage ```html <!DOCTYPE html> <html> <head> <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script> <script src="https://unpkg.com/thai-datepicker@latest/dist/thai-datepicker.iife.js"></script> <link rel="stylesheet" href="https://unpkg.com/thai-datepicker@latest/dist/thai-datepicker.css"> </head> <body> <div id="app"> <thai-date-picker v-model="date"></thai-date-picker> <p>Selected: {{ date }}</p> </div> <script> const { createApp, ref } = Vue createApp({ setup() { const date = ref('') return { date } } }).use(ThaiDatePicker).mount('#app') </script> </body> </html> ``` ## Props | Prop | Type | Default | Description | |------|------|---------|-------------| | `modelValue` | `String` | `''` | Selected date value (v-model) | | `placeholder` | `String` | `'เลือกวันที่'` | Input placeholder text | | `minYear` | `Number` | `currentYear - 50` | Minimum selectable year | | `maxYear` | `Number` | `currentYear + 10` | Maximum selectable year | ## Events | Event | Payload | Description | |-------|---------|-------------| | `update:modelValue` | `String` | Emitted when date is selected | | `change` | `String` | Emitted when date changes | ## Date Format - **Display**: Thai Buddhist year format (`DD/MM/YYYY` in พ.ศ.) - **Output**: Gregorian year format (`DD/MM/YYYY` in ค.ศ.) Example: - User sees: `15/08/2568` - v-model gets: `15/08/2025` ## Browser Support - Chrome/Edge 88+ - Firefox 85+ - Safari 14+ ## Development ```bash # Install dependencies npm install # Development server npm run dev # Build library npm run build # Preview build npm run preview ``` ## License MIT ## Contributing 1. Fork the repository 2. Create your feature branch (`git checkout -b feature/amazing-feature`) 3. Commit your changes (`git commit -m 'Add amazing feature'`) 4. Push to the branch (`git push origin feature/amazing-feature`) 5. Open a Pull Request