Skip to content

Commit

Permalink
docs(calendar): 📝 finish docs
Browse files Browse the repository at this point in the history
  • Loading branch information
navin-moorthy committed Jul 21, 2022
1 parent 0c4b76a commit 902b822
Show file tree
Hide file tree
Showing 10 changed files with 425 additions and 137 deletions.
66 changes: 58 additions & 8 deletions docs-templates/calendar.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
`Calendar` component provides a way to select a date or a range of dates while
allowing you to style them however. All the date, month & year calculations are
done internally to provide the ease of use. It follows the
[Grid Pattern](https://www.w3.org/TR/wai-aria-practices-1.2/#grid) for the
keyboard navigaiton & focus management.
[Grid Pattern](https://www.w3.org/WAI/ARIA/apg/patterns/grid/) for the keyboard
navigaiton & focus management.

<!-- INJECT_TOC -->

Expand All @@ -14,6 +14,19 @@ keyboard navigaiton & focus management.

<!-- IMPORT_EXAMPLE src/calendar/stories/templates/CalendarBasicJsx.ts -->

<!-- CODESANDBOX
link_title: Calendar
js: src/calendar/stories/templates/CalendarBasicJsx.ts
css: src/calendar/stories/templates/CalendarBasicCss.ts
utils: src/calendar/stories/templates/UtilsJsx.ts
-->
<!-- CODESANDBOX
link_title: Calendar TS
tsx: src/calendar/stories/templates/CalendarBasicTsx.ts
css: src/calendar/stories/templates/CalendarBasicCss.ts
utils: src/calendar/stories/templates/UtilsTsx.ts
-->

### Range Calendar

Converting a normal calendar to a range calendar is as easy as just swaping out
Expand All @@ -23,8 +36,18 @@ You'll need to import the `useRangeCalendarState` hook from the `@adaptui/react`
first

```diff
- const state = useCalendarState(props);
+ const state = useRangeCalendarState(props);
- const state = useCalendarBaseState(props);
+ const state = useRangeCalendarBaseState(props);
- const calendar = useCalendarState({ ...props, state });
+ const calendar = useRangeCalendarState({ ...props, state });

return (
- <Calendar state={calendar}>
+ <RangeCalendar state={calendar}>
...
- </Calendar>
+ </RangeCalendar>
);
```

Also we can customize and style the ranges with CSS attribute selectors
Expand All @@ -50,18 +73,45 @@ Also we can customize and style the ranges with CSS attribute selectors
```

<!-- CODESANDBOX
link_title: Calendar
js: src/calendar/stories/templates/CalendarBasicJsx.ts
link_title: Range Calendar
js: src/calendar/stories/templates/CalendarRangeJsx.ts
css: src/calendar/stories/templates/CalendarRangeCss.ts
utils: src/calendar/stories/templates/UtilsJsx.ts
-->
<!-- CODESANDBOX
link_title: Range Calendar TS
tsx: src/calendar/stories/templates/CalendarRangeTsx.ts
css: src/calendar/stories/templates/CalendarRangeCss.ts
utils: src/calendar/stories/templates/UtilsTsx.ts
-->

## Other Examples

<!-- CODESANDBOX
link_title: Calendar Styled
js: src/calendar/stories/templates/CalendarStyledJsx.ts
css: src/calendar/stories/templates/CalendarBasicCss.ts
utils: src/calendar/stories/templates/UtilsJsx.ts
-->
<!-- CODESANDBOX
link_title: Calendar Styled TS
tsx: src/calendar/stories/templates/CalendarStyledTsx.ts
css: src/calendar/stories/templates/CalendarBasicCss.ts
utils: src/calendar/stories/templates/UtilsTsx.ts
-->

<!-- CODESANDBOX
link_title: Range Calendar
js: src/calendar/stories/templates/CalendarRangeJsx.ts
link_title: Calendar Range Styled
js: src/calendar/stories/templates/CalendarRangeStyledJsx.ts
css: src/calendar/stories/templates/CalendarRangeCss.ts
utils: src/calendar/stories/templates/UtilsJsx.ts
-->
<!-- CODESANDBOX
link_title: Calendar Range Styled TS
tsx: src/calendar/stories/templates/CalendarRangeStyledTsx.ts
css: src/calendar/stories/templates/CalendarRangeCss.ts
utils: src/calendar/stories/templates/UtilsTsx.ts
-->

<!-- INJECT_COMPOSITION src/calendar -->

Expand Down
393 changes: 299 additions & 94 deletions docs/calendar.md

Large diffs are not rendered by default.

19 changes: 16 additions & 3 deletions src/calendar/stories/CalendarBasic.component.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
import * as React from "react";
import { VisuallyHidden } from "ariakit";
import { getWeeksInMonth, startOfWeek } from "@internationalized/date";
import {
createCalendar,
getWeeksInMonth,
startOfWeek,
} from "@internationalized/date";
import { useLocale } from "@react-aria/i18n";

import {
Expand All @@ -22,10 +26,19 @@ import {

import { ChevronLeft, ChevronRight } from "./Utils.component";

export type CalendarBasicProps = CalendarBaseStateProps & {};
export type CalendarBasicProps = Omit<
CalendarBaseStateProps,
"locale" | "createCalendar"
> & {};

export const CalendarBasic: React.FC<CalendarBasicProps> = props => {
const state = useCalendarBaseState(props);
let { locale } = useLocale();

const state = useCalendarBaseState({
locale: locale,
createCalendar: createCalendar,
...props,
});
const calendar = useCalendarState({ ...props, state });

return (
Expand Down
6 changes: 1 addition & 5 deletions src/calendar/stories/CalendarBasic.stories.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
import * as React from "react";
import { createCalendar } from "@internationalized/date";
import { useLocale } from "@react-aria/i18n";
import { ComponentMeta } from "@storybook/react";

import { createPreviewTabs } from "../../../.storybook/utils";
Expand All @@ -27,7 +25,5 @@ export default {
} as Meta;

export const Default = () => {
let { locale } = useLocale();

return <CalendarBasic locale={locale} createCalendar={createCalendar} />;
return <CalendarBasic />;
};
19 changes: 16 additions & 3 deletions src/calendar/stories/CalendarRange.component.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
import * as React from "react";
import { VisuallyHidden } from "ariakit";
import { getWeeksInMonth, startOfWeek } from "@internationalized/date";
import {
createCalendar,
getWeeksInMonth,
startOfWeek,
} from "@internationalized/date";
import { useLocale } from "@react-aria/i18n";

import {
Expand All @@ -22,10 +26,19 @@ import {

import { ChevronLeft, ChevronRight } from "./Utils.component";

export type CalendarRangeProps = RangeCalendarBaseStateProps & {};
export type CalendarRangeProps = Omit<
RangeCalendarBaseStateProps,
"locale" | "createCalendar"
> & {};

export const CalendarRange: React.FC<CalendarRangeProps> = props => {
const state = useRangeCalendarBaseState(props);
let { locale } = useLocale();

const state = useRangeCalendarBaseState({
locale: locale,
createCalendar: createCalendar,
...props,
});
const calendar = useRangeCalendarState({ ...props, state });

return (
Expand Down
6 changes: 1 addition & 5 deletions src/calendar/stories/CalendarRange.stories.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
import React from "react";
import { createCalendar } from "@internationalized/date";
import { useLocale } from "@react-aria/i18n";
import { ComponentMeta } from "@storybook/react";

import { createPreviewTabs } from "../../../.storybook/utils";
Expand All @@ -27,7 +25,5 @@ export default {
} as Meta;

export const Default = () => {
let { locale } = useLocale();

return <CalendarRange locale={locale} createCalendar={createCalendar} />;
return <CalendarRange />;
};
19 changes: 16 additions & 3 deletions src/calendar/stories/CalendarRangeStyled.component.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
import * as React from "react";
import { VisuallyHidden } from "ariakit";
import { getWeeksInMonth, startOfWeek } from "@internationalized/date";
import {
createCalendar,
getWeeksInMonth,
startOfWeek,
} from "@internationalized/date";
import { useLocale } from "@react-aria/i18n";

import {
Expand All @@ -22,12 +26,21 @@ import {

import { ChevronLeft, ChevronRight } from "./Utils.component";

export type CalendarRangeStyledProps = RangeCalendarBaseStateProps & {};
export type CalendarRangeStyledProps = Omit<
RangeCalendarBaseStateProps,
"locale" | "createCalendar"
> & {};

export const CalendarRangeStyled: React.FC<
CalendarRangeStyledProps
> = props => {
const state = useRangeCalendarBaseState(props);
let { locale } = useLocale();

const state = useRangeCalendarBaseState({
locale: locale,
createCalendar: createCalendar,
...props,
});
const calendar = useRangeCalendarState({ ...props, state });

return (
Expand Down
9 changes: 1 addition & 8 deletions src/calendar/stories/CalendarRangeStyled.stories.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
import React from "react";
import { createCalendar } from "@internationalized/date";
import { useLocale } from "@react-aria/i18n";
import { ComponentMeta } from "@storybook/react";

import { createPreviewTabs } from "../../../.storybook/utils";
Expand All @@ -14,7 +12,6 @@ import { CalendarRangeStyled } from "./CalendarRangeStyled.component";
import "./tailwind.css";

type Meta = ComponentMeta<typeof CalendarRangeStyled>;
// type Story = ComponentStoryObj<typeof CalendarRangeStyled>;

export default {
title: "Calendar/RangeStyled",
Expand All @@ -32,9 +29,5 @@ export default {
} as Meta;

export const Default = () => {
let { locale } = useLocale();

return (
<CalendarRangeStyled locale={locale} createCalendar={createCalendar} />
);
return <CalendarRangeStyled />;
};
19 changes: 16 additions & 3 deletions src/calendar/stories/CalendarStyled.component.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
import * as React from "react";
import { VisuallyHidden } from "ariakit";
import { getWeeksInMonth, startOfWeek } from "@internationalized/date";
import {
createCalendar,
getWeeksInMonth,
startOfWeek,
} from "@internationalized/date";
import { useLocale } from "@react-aria/i18n";

import {
Expand All @@ -22,10 +26,19 @@ import {

import { ChevronLeft, ChevronRight } from "./Utils.component";

export type CalendarStyledProps = CalendarBaseStateProps & {};
export type CalendarStyledProps = Omit<
CalendarBaseStateProps,
"locale" | "createCalendar"
> & {};

export const CalendarStyled: React.FC<CalendarStyledProps> = props => {
const state = useCalendarBaseState(props);
let { locale } = useLocale();

const state = useCalendarBaseState({
locale: locale,
createCalendar: createCalendar,
...props,
});
const calendar = useCalendarState({ ...props, state });

return (
Expand Down
6 changes: 1 addition & 5 deletions src/calendar/stories/CalendarStyled.stories.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
import * as React from "react";
import { createCalendar } from "@internationalized/date";
import { useLocale } from "@react-aria/i18n";
import { ComponentMeta } from "@storybook/react";

import { createPreviewTabs } from "../../../.storybook/utils";
Expand Down Expand Up @@ -32,7 +30,5 @@ export default {
} as Meta;

export const Default = () => {
let { locale } = useLocale();

return <CalendarStyled locale={locale} createCalendar={createCalendar} />;
return <CalendarStyled />;
};

0 comments on commit 902b822

Please sign in to comment.