DatePicker experimental
Ark UI DatePicker 기반 wrapper입니다. Label, Input, Trigger, 팝업 달력(View/ViewControl/Table)으로 단일 날짜 선택 anatomy를 제공합니다.
Preview
<script lang="ts">
import * as DatePicker from '@odbd/svelte/date-picker'
</script>
<DatePicker.Root locale="ko-KR" style="max-width: 18rem;">
<DatePicker.Label>예약 날짜</DatePicker.Label>
<DatePicker.Control>
<DatePicker.Input />
<DatePicker.Trigger aria-label="달력 열기">
<svg
width="16"
height="16"
viewBox="0 0 16 16"
fill="none"
stroke="currentColor"
stroke-width="1.4"
stroke-linecap="round"
stroke-linejoin="round"
aria-hidden="true"
>
<rect x="2.5" y="3" width="11" height="10.5" rx="1.5" />
<path d="M2.5 6.25h11M5.25 1.75v2.5M10.75 1.75v2.5" />
</svg>
</DatePicker.Trigger>
</DatePicker.Control>
<DatePicker.Positioner>
<DatePicker.Content>
<DatePicker.View view="day">
<DatePicker.Context>
{#snippet render(api)}
<DatePicker.ViewControl>
<DatePicker.PrevTrigger>‹</DatePicker.PrevTrigger>
<DatePicker.ViewTrigger>
<DatePicker.RangeText />
</DatePicker.ViewTrigger>
<DatePicker.NextTrigger>›</DatePicker.NextTrigger>
</DatePicker.ViewControl>
<DatePicker.Table>
<DatePicker.TableHead>
<DatePicker.TableRow>
{#each api().weekDays as weekDay}
<DatePicker.TableHeader>{weekDay.short}</DatePicker.TableHeader>
{/each}
</DatePicker.TableRow>
</DatePicker.TableHead>
<DatePicker.TableBody>
{#each api().weeks as week}
<DatePicker.TableRow>
{#each week as day}
<DatePicker.TableCell value={day}>
<DatePicker.TableCellTrigger>{day.day}</DatePicker.TableCellTrigger>
</DatePicker.TableCell>
{/each}
</DatePicker.TableRow>
{/each}
</DatePicker.TableBody>
</DatePicker.Table>
<div style="display: flex; gap: 0.5rem; justify-content: flex-end;">
<DatePicker.PresetTrigger value="thisMonth">이번 달</DatePicker.PresetTrigger>
<DatePicker.ClearTrigger>지우기</DatePicker.ClearTrigger>
</div>
{/snippet}
</DatePicker.Context>
</DatePicker.View>
</DatePicker.Content>
</DatePicker.Positioner>
</DatePicker.Root>
Import
Svelte와 React가 같은 anatomy 계약을 공유합니다. 선택한 프레임워크는 모든 페이지에서 유지됩니다. 패키지 설치는 Getting Started를 참고하세요.
import * as DatePicker from '@odbd/svelte/date-picker' import { DatePicker } from '@odbd/react/date-picker'