Skip to content

Commit 60f2558

Browse files
committed
date picker structure
1 parent a433366 commit 60f2558

File tree

4 files changed

+55
-6
lines changed

4 files changed

+55
-6
lines changed

content/components/date-picker.md

+51
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,55 @@ description: A date picker component.
1616

1717
## Structure
1818

19+
```svelte
20+
<script lang="ts">
21+
import { DatePicker } from "bits-ui";
22+
</script>
23+
24+
<DatePicker.Root>
25+
<DatePicker.Label />
26+
<DatePicker.Input let:segments>
27+
{#each segments as { part, value }}
28+
<DatePicker.Segment {part}>
29+
{value}
30+
</DatePicker.Segment>
31+
{/each}
32+
<DatePicker.Trigger />
33+
</DatePicker.Input>
34+
<DatePicker.Content>
35+
<DatePicker.Calendar let:months let:daysOfWeek>
36+
<DatePicker.CalendarHeader>
37+
<DatePicker.CalendarPrevButton />
38+
<DatePicker.CalendarHeading />
39+
<DatePicker.CalendarNextButton />
40+
</DatePicker.CalendarHeader>
41+
{#each months as month}
42+
<DatePicker.CalendarGrid>
43+
<DatePicker.CalendarGridHead>
44+
<DatePicker.CalendarGridRow>
45+
{#each daysOfWeek as day}
46+
<DatePicker.CalendarHeadCell>
47+
{day}
48+
</DatePicker.CalendarHeadCell>
49+
{/each}
50+
</DatePicker.CalendarGridRow>
51+
</DatePicker.CalendarGridHead>
52+
<DatePicker.CalendarGridBody>
53+
{#each month.weeks as weekDates}
54+
<DatePicker.CalendarGridRow>
55+
{#each weekDates as date}
56+
<DatePicker.CalendarCell {date}>
57+
<DatePicker.CalendarDate {date} month={month.value} />
58+
</DatePicker.CalendarCell>
59+
{/each}
60+
</DatePicker.CalendarGridRow>
61+
{/each}
62+
</DatePicker.CalendarGridBody>
63+
</DatePicker.CalendarGrid>
64+
{/each}
65+
</DatePicker.Calendar>
66+
</DatePicker.Content>
67+
</DatePicker.Root>
68+
```
69+
1970
<APISection {schemas} />

src/components/demos/date-picker-demo.svelte

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,12 @@
2222
</div>
2323
{/each}
2424
<DatePicker.Trigger
25-
class="ml-auto rounded-[5px] p-1 transition-all hover:bg-dark-10"
25+
class="ml-auto rounded-[5px] p-1 transition-all hover:bg-dark-10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-foreground focus-visible:ring-offset-2 focus-visible:ring-offset-background"
2626
>
2727
<CalendarBlank class="h-5 w-5" />
2828
</DatePicker.Trigger>
2929
</DatePicker.Input>
30-
<DatePicker.Content sideOffset={8} transition={flyAndScale}>
30+
<DatePicker.Content sideOffset={10} transition={flyAndScale}>
3131
<DatePicker.Calendar
3232
class="rounded-card border border-dark-10 bg-background p-6 shadow-popover"
3333
let:months

src/components/demos/dropdown-menu-demo.svelte

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
<DropdownMenu.Root>
1616
<DropdownMenu.Trigger
17-
class="border-input inline-flex h-10 w-10 items-center justify-center rounded-full border bg-background text-sm font-medium text-foreground shadow-btn transition-all hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-foreground focus-visible:ring-offset-2 focus-visible:ring-offset-background active:scale-98"
17+
class="border-input inline-flex h-10 w-10 items-center justify-center rounded-full border border bg-background text-sm font-medium text-foreground shadow-btn transition-all hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-foreground focus-visible:ring-offset-2 focus-visible:ring-offset-background active:scale-98"
1818
>
1919
<DotsThree class="h-6 w-6 text-foreground" />
2020
</DropdownMenu.Trigger>

src/lib/bits/date-picker/ctx.ts

+1-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { getAttrs as getCalendarAttrs } from "$lib/bits/calendar/ctx.js";
55
import { getAttrs as getFieldAttrs } from "$lib/bits/date-field/ctx.js";
66
import { getAttrs as getPopoverAttrs } from "$lib/bits/popover/ctx.js";
77
import { getPositioningUpdater, type PositioningProps } from "../floating/helpers";
8-
import { get, type Writable } from "svelte/store";
8+
import type { Writable } from "svelte/store";
99
import type { FloatingConfig } from "../floating/floating-config";
1010

1111
const NAME = "date-picker";
@@ -33,13 +33,11 @@ const defaultPlacement = {
3333
} satisfies PositioningProps;
3434

3535
export function updatePositioning(props: PositioningProps) {
36-
console.log("updating positioning");
3736
const withDefaults = { ...defaultPlacement, ...props } satisfies PositioningProps;
3837
const {
3938
options: { positioning }
4039
} = getCtx();
4140

4241
const updater = getPositioningUpdater(positioning as Writable<FloatingConfig>);
4342
updater(withDefaults);
44-
console.log(get(positioning));
4543
}

0 commit comments

Comments
 (0)