| Su | Mo | Tu | We | Th | Fr | Sa |
|---|---|---|---|---|---|---|
28 | 29 | 30 | 1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 | 1 |
<script lang="ts">
import { getLocalTimeZone, today } from "@internationalized/date";
import { RangeCalendar } from "$lib/components/ui/range-calendar/index.js";
const start = today(getLocalTimeZone());
const end = start.add({ days: 7 });
let value = $state({
start,
end
});
</script>
<RangeCalendar bind:value class="rounded-md border" /> About
The <RangeCalendar /> component is built on top of the Bits Range Calendar component, which uses the @internationalized/date package to handle dates.
Blocks
Installation
pnpm dlx jsrepo@latest add range-calendarnpx jsrepo@latest add range-calendaryarn dlx jsrepo@latest add range-calendarbunx jsrepo@latest add range-calendarInstall bits-ui and @internationalized/date:
pnpm add bits-ui @internationalized/date -Dnpm install bits-ui @internationalized/date -Dyarn add bits-ui @internationalized/date -Dbun add bits-ui @internationalized/date -DCopy and paste the following code into your project.
import Root from './range-calendar.svelte';
import Cell from './range-calendar-cell.svelte';
import Day from './range-calendar-day.svelte';
import Grid from './range-calendar-grid.svelte';
import Header from './range-calendar-header.svelte';
import Months from './range-calendar-months.svelte';
import GridRow from './range-calendar-grid-row.svelte';
import Heading from './range-calendar-heading.svelte';
import HeadCell from './range-calendar-head-cell.svelte';
import NextButton from './range-calendar-next-button.svelte';
import PrevButton from './range-calendar-prev-button.svelte';
import MonthSelect from './range-calendar-month-select.svelte';
import YearSelect from './range-calendar-year-select.svelte';
import Caption from './range-calendar-caption.svelte';
import Nav from './range-calendar-nav.svelte';
import Month from './range-calendar-month.svelte';
import GridBody from './range-calendar-grid-body.svelte';
import GridHead from './range-calendar-grid-head.svelte';
export {
Day,
Cell,
Grid,
Header,
Months,
GridRow,
Heading,
GridBody,
GridHead,
HeadCell,
NextButton,
PrevButton,
MonthSelect,
YearSelect,
Caption,
Nav,
Month,
//
Root as RangeCalendar
};