From 84b336cd3867ffb563cd1ba402dc60abc9eaee38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ole=20Marius=20L=C3=B8set?= Date: Mon, 20 Nov 2023 10:54:46 +0100 Subject: [PATCH] refactor: extracted types from v-calendar --- .../registry/default/ui/calendar/Calendar.vue | 19 +++++++++++++++++- .../new-york/ui/calendar/Calendar.vue | 20 +++++++++++++++++-- 2 files changed, 36 insertions(+), 3 deletions(-) diff --git a/apps/www/src/lib/registry/default/ui/calendar/Calendar.vue b/apps/www/src/lib/registry/default/ui/calendar/Calendar.vue index 78fe4304..c349efa0 100644 --- a/apps/www/src/lib/registry/default/ui/calendar/Calendar.vue +++ b/apps/www/src/lib/registry/default/ui/calendar/Calendar.vue @@ -4,10 +4,27 @@ import type { Calendar } from 'v-calendar' import { DatePicker } from 'v-calendar' import { ChevronLeft, ChevronRight } from 'lucide-vue-next' import { computed, nextTick, onMounted, ref } from 'vue' -import type { DatePickerModel } from 'v-calendar/dist/types/src/use/datePicker' import { buttonVariants } from '@/lib/registry/default/ui/button' import { cn } from '@/lib/utils' +/* Extracted from v-calendar */ +type DatePickerModel = DatePickerDate | DatePickerRangeObject +type DateSource = Date | string | number +type DatePickerDate = DateSource | Partial | null +interface DatePickerRangeObject { + start: Exclude + end: Exclude +} +interface SimpleDateParts { + year: number + month: number + day: number + hours: number + minutes: number + seconds: number + milliseconds: number +} + defineOptions({ inheritAttrs: false, }) diff --git a/apps/www/src/lib/registry/new-york/ui/calendar/Calendar.vue b/apps/www/src/lib/registry/new-york/ui/calendar/Calendar.vue index d462d39a..10543957 100644 --- a/apps/www/src/lib/registry/new-york/ui/calendar/Calendar.vue +++ b/apps/www/src/lib/registry/new-york/ui/calendar/Calendar.vue @@ -4,14 +4,30 @@ import type { Calendar } from 'v-calendar' import { DatePicker } from 'v-calendar' import { ChevronLeftIcon, ChevronRightIcon } from '@radix-icons/vue' import { computed, nextTick, onMounted, ref } from 'vue' -import type { DatePickerModel } from 'v-calendar/dist/types/src/use/datePicker' import { buttonVariants } from '@/lib/registry/new-york/ui/button' import { cn } from '@/lib/utils' +/* Extracted from v-calendar */ +type DatePickerModel = DatePickerDate | DatePickerRangeObject +type DateSource = Date | string | number +type DatePickerDate = DateSource | Partial | null +interface DatePickerRangeObject { + start: Exclude + end: Exclude +} +interface SimpleDateParts { + year: number + month: number + day: number + hours: number + minutes: number + seconds: number + milliseconds: number +} + defineOptions({ inheritAttrs: false, }) - const props = withDefaults(defineProps< { modelValue?: string | number | Date | DatePickerModel modelModifiers?: object