range-calendar
shadcn-vue/range-calendarFreeComponent
shadcn-vue publishes no description for this item.
Live preview
live · rendered by the registry
Rendered by shadcn-vue on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://shadcn-vue.com/r/styles/new-york/range-calendar.jsonSource
1<script lang="ts" setup>2import type { RangeCalendarRootEmits, RangeCalendarRootProps } from "reka-ui"3import type { HTMLAttributes } from "vue"4import { reactiveOmit } from "@vueuse/core"5import { RangeCalendarRoot, useForwardPropsEmits } from "reka-ui"6import { cn } from "@/lib/utils"7import { RangeCalendarCell, RangeCalendarCellTrigger, RangeCalendarGrid, RangeCalendarGridBody, RangeCalendarGridHead, RangeCalendarGridRow, RangeCalendarHeadCell, RangeCalendarHeader, RangeCalendarHeading, RangeCalendarNextButton, RangeCalendarPrevButton } from "."89const props = defineProps<RangeCalendarRootProps & { class?: HTMLAttributes["class"] }>()1011const emits = defineEmits<RangeCalendarRootEmits>()1213const delegatedProps = reactiveOmit(props, "class")1415const forwarded = useForwardPropsEmits(delegatedProps, emits)16</script>1718<template>19 <RangeCalendarRoot20 v-slot="{ grid, weekDays }"21 :class="cn('p-3', props.class)"22 v-bind="forwarded"23 >24 <RangeCalendarHeader>25 <RangeCalendarPrevButton />26 <RangeCalendarHeading />27 <RangeCalendarNextButton />28 </RangeCalendarHeader>2930 <div class="flex flex-col gap-y-4 mt-4 sm:flex-row sm:gap-x-4 sm:gap-y-0">31 <RangeCalendarGrid v-for="month in grid" :key="month.value.toString()">32 <RangeCalendarGridHead>33 <RangeCalendarGridRow>34 <RangeCalendarHeadCell35 v-for="day in weekDays" :key="day"36 >37 {{ day }}38 </RangeCalendarHeadCell>39 </RangeCalendarGridRow>40 </RangeCalendarGridHead>41 <RangeCalendarGridBody>42 <RangeCalendarGridRow v-for="(weekDates, index) in month.rows" :key="`weekDate-${index}`" class="mt-2 w-full">43 <RangeCalendarCell44 v-for="weekDate in weekDates"45 :key="weekDate.toString()"46 :date="weekDate"47 >48 <RangeCalendarCellTrigger49 :day="weekDate"50 :month="month.value"51 />52 </RangeCalendarCell>53 </RangeCalendarGridRow>54 </RangeCalendarGridBody>55 </RangeCalendarGrid>56 </div>57 </RangeCalendarRoot>58</template>
What it pulls in
npm packages
Other registry items
Files it writes
More from shadcn-vue
All 66 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| accordionaccordion | shadcn-vue | Components | Free | 2 deps · 5 files | |
| alertalert | shadcn-vue | Components | Free | no deps · 4 files | |
| alert-dialogalert-dialog | shadcn-vue | Components | Free | 2 deps · 10 files | |
| aspect-ratioaspect-ratio | shadcn-vue | Components | Free | 1 dep · 2 files | |
| attachmentattachment | shadcn-vue | Components | Free | 1 dep · 10 files | |
| avataravatar | shadcn-vue | Components | Free | 2 deps · 4 files | |
| badgebadge | shadcn-vue | Components | Free | 2 deps · 2 files | |
| breadcrumbbreadcrumb | shadcn-vue | Components | Free | 1 dep · 8 files |
