diff --git a/apps/docs/content/components/date-range-picker/controlled.raw.jsx b/apps/docs/content/components/date-range-picker/controlled.raw.jsx
new file mode 100644
index 0000000000..fd7b3063f3
--- /dev/null
+++ b/apps/docs/content/components/date-range-picker/controlled.raw.jsx
@@ -0,0 +1,36 @@
+import {DateRangePicker} from "@nextui-org/react";
+import {parseDate, getLocalTimeZone} from "@internationalized/date";
+import {useDateFormatter} from "@react-aria/i18n";
+
+export default function App() {
+ const [value, setValue] = React.useState({
+ start: parseDate("2024-04-01"),
+ end: parseDate("2024-04-08"),
+ });
+
+ let formatter = useDateFormatter({dateStyle: "long"});
+
+ return (
+
+
+
+
+ Selected date:{" "}
+ {value
+ ? formatter.formatRange(
+ value.start.toDate(getLocalTimeZone()),
+ value.end.toDate(getLocalTimeZone()),
+ )
+ : "--"}
+
+
+
+
+ );
+}
diff --git a/apps/docs/content/components/date-range-picker/controlled.raw.tsx b/apps/docs/content/components/date-range-picker/controlled.raw.tsx
new file mode 100644
index 0000000000..868b5440f2
--- /dev/null
+++ b/apps/docs/content/components/date-range-picker/controlled.raw.tsx
@@ -0,0 +1,40 @@
+import type {RangeValue} from "@react-types/shared";
+import type {DateValue} from "@react-types/datepicker";
+
+import React from "react";
+import {DateRangePicker} from "@nextui-org/react";
+import {parseDate, getLocalTimeZone} from "@internationalized/date";
+import {useDateFormatter} from "@react-aria/i18n";
+
+export default function App() {
+ const [value, setValue] = React.useState>({
+ start: parseDate("2024-04-01"),
+ end: parseDate("2024-04-08"),
+ });
+
+ let formatter = useDateFormatter({dateStyle: "long"});
+
+ return (
+
+
+
+
+ Selected date:{" "}
+ {value
+ ? formatter.formatRange(
+ value.start.toDate(getLocalTimeZone()),
+ value.end.toDate(getLocalTimeZone()),
+ )
+ : "--"}
+
+
+
+
+ );
+}
diff --git a/apps/docs/content/components/date-range-picker/controlled.ts b/apps/docs/content/components/date-range-picker/controlled.ts
index 12f5e4d8ae..1f1a363363 100644
--- a/apps/docs/content/components/date-range-picker/controlled.ts
+++ b/apps/docs/content/components/date-range-picker/controlled.ts
@@ -1,86 +1,5 @@
-const App = `import {DateRangePicker} from "@nextui-org/react";
-import {parseDate, getLocalTimeZone} from "@internationalized/date";
-import {useDateFormatter} from "@react-aria/i18n";
-
-export default function App() {
- const [value, setValue] = React.useState({
- start: parseDate("2024-04-01"),
- end: parseDate("2024-04-08"),
- });
-
- let formatter = useDateFormatter({dateStyle: "long"});
-
- return (
-
-
-
-
- Selected date:{" "}
- {value
- ? formatter.formatRange(
- value.start.toDate(getLocalTimeZone()),
- value.end.toDate(getLocalTimeZone()),
- )
- : "--"}
-
-
-
-
- );
-}`;
-
-const AppTs = `import {DateRangePicker} from "@nextui-org/react";
-import {parseDate, getLocalTimeZone} from "@internationalized/date";
-import {useDateFormatter} from "@react-aria/i18n";
-import {RangeValue} from "@react-types/shared";
-import {DateValue} from "@react-types/datepicker";
-
-export default function App() {
- const [value, setValue] = React.useState>({
- start: parseDate("2024-04-01"),
- end: parseDate("2024-04-08"),
- });
-
- let formatter = useDateFormatter({dateStyle: "long"});
-
- return (
-
-
-
-
- Selected date:{" "}
- {value
- ? formatter.formatRange(
- value.start.toDate(getLocalTimeZone()),
- value.end.toDate(getLocalTimeZone()),
- )
- : "--"}
-
-
-
-
- );
-}`;
+import App from "./controlled.raw.jsx?raw";
+import AppTs from "./controlled.raw.tsx?raw";
const react = {
"/App.jsx": App,
diff --git a/apps/docs/content/components/date-range-picker/custom-styles.raw.jsx b/apps/docs/content/components/date-range-picker/custom-styles.raw.jsx
new file mode 100644
index 0000000000..17a676327c
--- /dev/null
+++ b/apps/docs/content/components/date-range-picker/custom-styles.raw.jsx
@@ -0,0 +1,33 @@
+import {DateRangePicker} from "@nextui-org/react";
+
+export default function App() {
+ return (
+
+ );
+}
diff --git a/apps/docs/content/components/date-range-picker/custom-styles.ts b/apps/docs/content/components/date-range-picker/custom-styles.ts
index 6c11daf883..da3ea9093a 100644
--- a/apps/docs/content/components/date-range-picker/custom-styles.ts
+++ b/apps/docs/content/components/date-range-picker/custom-styles.ts
@@ -1,36 +1,4 @@
-const App = `import {DateRangePicker} from "@nextui-org/react";
-
-export default function App() {
- return (
-
- );
-}`;
+import App from "./custom-styles.raw.jsx?raw";
const react = {
"/App.jsx": App,
diff --git a/apps/docs/content/components/date-range-picker/description.raw.jsx b/apps/docs/content/components/date-range-picker/description.raw.jsx
new file mode 100644
index 0000000000..0300812373
--- /dev/null
+++ b/apps/docs/content/components/date-range-picker/description.raw.jsx
@@ -0,0 +1,11 @@
+import {DateRangePicker} from "@nextui-org/react";
+
+export default function App() {
+ return (
+
+ );
+}
diff --git a/apps/docs/content/components/date-range-picker/description.ts b/apps/docs/content/components/date-range-picker/description.ts
index a81889d1bd..aeb6340b6b 100644
--- a/apps/docs/content/components/date-range-picker/description.ts
+++ b/apps/docs/content/components/date-range-picker/description.ts
@@ -1,14 +1,4 @@
-const App = `import {DateRangePicker} from "@nextui-org/react";
-
-export default function App() {
- return (
-
- );
-}`;
+import App from "./description.raw.jsx?raw";
const react = {
"/App.jsx": App,
diff --git a/apps/docs/content/components/date-range-picker/disabled.raw.jsx b/apps/docs/content/components/date-range-picker/disabled.raw.jsx
new file mode 100644
index 0000000000..c1ac55a525
--- /dev/null
+++ b/apps/docs/content/components/date-range-picker/disabled.raw.jsx
@@ -0,0 +1,16 @@
+import {DateRangePicker} from "@nextui-org/react";
+import {parseDate} from "@internationalized/date";
+
+export default function App() {
+ return (
+
+ );
+}
diff --git a/apps/docs/content/components/date-range-picker/disabled.ts b/apps/docs/content/components/date-range-picker/disabled.ts
index ea2ff51167..1a215cc91f 100644
--- a/apps/docs/content/components/date-range-picker/disabled.ts
+++ b/apps/docs/content/components/date-range-picker/disabled.ts
@@ -1,19 +1,4 @@
-const App = `import {DateRangePicker} from "@nextui-org/react";
-import {parseDate} from "@internationalized/date";
-
-export default function App() {
- return (
-
- );
-}`;
+import App from "./disabled.raw.jsx?raw";
const react = {
"/App.jsx": App,
diff --git a/apps/docs/content/components/date-range-picker/error-message-function.raw.jsx b/apps/docs/content/components/date-range-picker/error-message-function.raw.jsx
new file mode 100644
index 0000000000..db1263f550
--- /dev/null
+++ b/apps/docs/content/components/date-range-picker/error-message-function.raw.jsx
@@ -0,0 +1,22 @@
+import {DateRangePicker} from "@nextui-org/react";
+import {parseDate} from "@internationalized/date";
+
+export default function App() {
+ return (
+ {
+ if (value.isInvalid) {
+ return "Please enter your stay duration";
+ }
+ }}
+ label="Stay duration"
+ variant="bordered"
+ />
+ );
+}
diff --git a/apps/docs/content/components/date-range-picker/error-message-function.ts b/apps/docs/content/components/date-range-picker/error-message-function.ts
index 9e8cb16eab..1af0006141 100644
--- a/apps/docs/content/components/date-range-picker/error-message-function.ts
+++ b/apps/docs/content/components/date-range-picker/error-message-function.ts
@@ -1,25 +1,4 @@
-const App = `import {DateRangePicker} from "@nextui-org/react";
-import {parseDate} from "@internationalized/date";
-
-export default function App() {
- return (
- {
- if (value.isInvalid) {
- return "Please enter your stay duration";
- }
- }}
- defaultValue={{
- start: parseDate("2024-04-01"),
- end: parseDate("2024-04-08"),
- }}
- className="max-w-xs"
- />
- );
-}`;
+import App from "./error-message-function.raw.jsx?raw";
const react = {
"/App.jsx": App,
diff --git a/apps/docs/content/components/date-range-picker/error-message.raw.jsx b/apps/docs/content/components/date-range-picker/error-message.raw.jsx
new file mode 100644
index 0000000000..fe6d92e392
--- /dev/null
+++ b/apps/docs/content/components/date-range-picker/error-message.raw.jsx
@@ -0,0 +1,18 @@
+import {DateRangePicker} from "@nextui-org/react";
+import {parseDate} from "@internationalized/date";
+
+export default function App() {
+ return (
+
+ );
+}
diff --git a/apps/docs/content/components/date-range-picker/error-message.ts b/apps/docs/content/components/date-range-picker/error-message.ts
index ed0abd8ab5..fb8101b132 100644
--- a/apps/docs/content/components/date-range-picker/error-message.ts
+++ b/apps/docs/content/components/date-range-picker/error-message.ts
@@ -1,21 +1,4 @@
-const App = `import {DateRangePicker} from "@nextui-org/react";
-import {parseDate} from "@internationalized/date";
-
-export default function App() {
- return (
-
- );
-}`;
+import App from "./error-message.raw.jsx?raw";
const react = {
"/App.jsx": App,
diff --git a/apps/docs/content/components/date-range-picker/granularity.raw.jsx b/apps/docs/content/components/date-range-picker/granularity.raw.jsx
new file mode 100644
index 0000000000..46d82da6ac
--- /dev/null
+++ b/apps/docs/content/components/date-range-picker/granularity.raw.jsx
@@ -0,0 +1,28 @@
+import {DateRangePicker} from "@nextui-org/react";
+import {parseAbsoluteToLocal} from "@internationalized/date";
+
+export default function App() {
+ let [date, setDate] = React.useState({
+ start: parseAbsoluteToLocal("2024-04-01T18:45:22Z"),
+ end: parseAbsoluteToLocal("2024-04-08T19:15:22Z"),
+ });
+
+ return (
+
+
+
+
+ );
+}
diff --git a/apps/docs/content/components/date-range-picker/granularity.raw.tsx b/apps/docs/content/components/date-range-picker/granularity.raw.tsx
new file mode 100644
index 0000000000..e1ec7fb919
--- /dev/null
+++ b/apps/docs/content/components/date-range-picker/granularity.raw.tsx
@@ -0,0 +1,32 @@
+import type {RangeValue} from "@react-types/shared";
+import type {DateValue} from "@react-types/datepicker";
+
+import React from "react";
+import {DateRangePicker} from "@nextui-org/react";
+import {parseAbsoluteToLocal} from "@internationalized/date";
+
+export default function App() {
+ let [date, setDate] = React.useState>({
+ start: parseAbsoluteToLocal("2024-04-01T18:45:22Z"),
+ end: parseAbsoluteToLocal("2024-04-08T19:15:22Z"),
+ });
+
+ return (
+
+
+
+
+ );
+}
diff --git a/apps/docs/content/components/date-range-picker/granularity.ts b/apps/docs/content/components/date-range-picker/granularity.ts
index 10094d839a..6196832da6 100644
--- a/apps/docs/content/components/date-range-picker/granularity.ts
+++ b/apps/docs/content/components/date-range-picker/granularity.ts
@@ -1,67 +1,15 @@
-const App = `import {DateRangePicker} from "@nextui-org/react";
-import {parseAbsoluteToLocal} from "@internationalized/date";
-
-export default function App() {
- let [date, setDate] = React.useState({
- start: parseAbsoluteToLocal("2024-04-01T18:45:22Z"),
- end: parseAbsoluteToLocal("2024-04-08T19:15:22Z"),
- });
-
- return (
-
-
-
-
- );
-}`;
-
-const AppTs = `import {DateRangePicker} from "@nextui-org/react";
-import {DateValue, parseAbsoluteToLocal} from "@internationalized/date";
-import {RangeValue} from "@react-types/shared";
-
-export default function App() {
- let [date, setDate] = React.useState>({
- start: parseAbsoluteToLocal("2024-04-01T18:45:22Z"),
- end: parseAbsoluteToLocal("2024-04-08T19:15:22Z"),
- });
-
- return (
-
-
-
-
- );
-}`;
+import App from "./granularity.raw.jsx?raw";
+import AppTs from "./granularity.raw.tsx?raw";
const react = {
"/App.jsx": App,
+};
+
+const reactTs = {
"/App.tsx": AppTs,
};
export default {
...react,
+ ...reactTs,
};
diff --git a/apps/docs/content/components/date-range-picker/international-calendar.raw.jsx b/apps/docs/content/components/date-range-picker/international-calendar.raw.jsx
new file mode 100644
index 0000000000..75e82363c9
--- /dev/null
+++ b/apps/docs/content/components/date-range-picker/international-calendar.raw.jsx
@@ -0,0 +1,18 @@
+import {DateRangePicker} from "@nextui-org/react";
+import {parseAbsoluteToLocal} from "@internationalized/date";
+import {I18nProvider} from "@react-aria/i18n";
+
+export default function App() {
+ let [date, setDate] = React.useState({
+ start: parseAbsoluteToLocal("2021-04-01T18:45:22Z"),
+ end: parseAbsoluteToLocal("2021-04-14T19:15:22Z"),
+ });
+
+ return (
+
+
+
+
+
+ );
+}
diff --git a/apps/docs/content/components/date-range-picker/international-calendar.raw.tsx b/apps/docs/content/components/date-range-picker/international-calendar.raw.tsx
new file mode 100644
index 0000000000..c6eca23922
--- /dev/null
+++ b/apps/docs/content/components/date-range-picker/international-calendar.raw.tsx
@@ -0,0 +1,22 @@
+import type {RangeValue} from "@react-types/shared";
+import type {DateValue} from "@react-types/datepicker";
+
+import React from "react";
+import {DateRangePicker} from "@nextui-org/react";
+import {parseAbsoluteToLocal} from "@internationalized/date";
+import {I18nProvider} from "@react-aria/i18n";
+
+export default function App() {
+ let [date, setDate] = React.useState>({
+ start: parseAbsoluteToLocal("2021-04-01T18:45:22Z"),
+ end: parseAbsoluteToLocal("2021-04-14T19:15:22Z"),
+ });
+
+ return (
+
+
+
+
+
+ );
+}
diff --git a/apps/docs/content/components/date-range-picker/international-calendar.ts b/apps/docs/content/components/date-range-picker/international-calendar.ts
index e28d31e8ea..a8707fd093 100644
--- a/apps/docs/content/components/date-range-picker/international-calendar.ts
+++ b/apps/docs/content/components/date-range-picker/international-calendar.ts
@@ -1,47 +1,15 @@
-const App = `import {DateRangePicker} from "@nextui-org/react";
-import {parseAbsoluteToLocal} from "@internationalized/date";
-import {I18nProvider} from "@react-aria/i18n";
-
-export default function App() {
- let [date, setDate] = React.useState({
- start: parseAbsoluteToLocal("2021-04-01T18:45:22Z"),
- end: parseAbsoluteToLocal("2021-04-14T19:15:22Z"),
- });
-
- return (
-
-
-
-
-
- );
-}`;
-
-const AppTs = `import {DateRangePicker} from "@nextui-org/react";
-import {DateValue, parseAbsoluteToLocal} from "@internationalized/date";
-import {RangeValue} from "@react-types/shared";
-import {I18nProvider} from "@react-aria/i18n";
-
-export default function App() {
- let [date, setDate] = React.useState>({
- start: parseAbsoluteToLocal("2021-04-01T18:45:22Z"),
- end: parseAbsoluteToLocal("2021-04-14T19:15:22Z"),
- });
-
- return (
-
-
-
-
-
- );
-}`;
+import App from "./international-calendar.raw.jsx?raw";
+import AppTs from "./international-calendar.raw.tsx?raw";
const react = {
"/App.jsx": App,
+};
+
+const reactTs = {
"/App.tsx": AppTs,
};
export default {
...react,
+ ...reactTs,
};
diff --git a/apps/docs/content/components/date-range-picker/label-placements.raw.jsx b/apps/docs/content/components/date-range-picker/label-placements.raw.jsx
new file mode 100644
index 0000000000..1f5b70d378
--- /dev/null
+++ b/apps/docs/content/components/date-range-picker/label-placements.raw.jsx
@@ -0,0 +1,20 @@
+import {DateRangePicker} from "@nextui-org/react";
+
+export default function App() {
+ const placements = ["inside", "outside", "outside-left"];
+
+ return (
+
+
+ {placements.map((placement) => (
+
+ ))}
+
+
+ );
+}
diff --git a/apps/docs/content/components/date-range-picker/label-placements.ts b/apps/docs/content/components/date-range-picker/label-placements.ts
index ae0d8f4c5b..cd2a65d352 100644
--- a/apps/docs/content/components/date-range-picker/label-placements.ts
+++ b/apps/docs/content/components/date-range-picker/label-placements.ts
@@ -1,27 +1,4 @@
-const App = `import {DateRangePicker} from "@nextui-org/react";
-
-export default function App() {
- const placements = [
- "inside",
- "outside",
- "outside-left",
- ];
-
- return (
-
-
- {placements.map((placement) => (
-
- ))}
-
-
- );
-}`;
+import App from "./label-placements.raw.jsx?raw";
const react = {
"/App.jsx": App,
diff --git a/apps/docs/content/components/date-range-picker/min-and-max-date.raw.jsx b/apps/docs/content/components/date-range-picker/min-and-max-date.raw.jsx
new file mode 100644
index 0000000000..b3557e1621
--- /dev/null
+++ b/apps/docs/content/components/date-range-picker/min-and-max-date.raw.jsx
@@ -0,0 +1,31 @@
+import {DateRangePicker} from "@nextui-org/react";
+import {getLocalTimeZone, parseDate, today} from "@internationalized/date";
+
+export default function App() {
+ return (
+
+
+
Min date
+
+
+
+
Max date
+
+
+
+ );
+}
diff --git a/apps/docs/content/components/date-range-picker/min-and-max-date.ts b/apps/docs/content/components/date-range-picker/min-and-max-date.ts
index a1db8afe8f..be9af0fc43 100644
--- a/apps/docs/content/components/date-range-picker/min-and-max-date.ts
+++ b/apps/docs/content/components/date-range-picker/min-and-max-date.ts
@@ -1,34 +1,4 @@
-const App = `import {DateRangePicker} from "@nextui-org/react";
-import {getLocalTimeZone, parseDate, today} from "@internationalized/date";
-
-export default function App() {
- return (
-
-
-
Min date
-
-
-
-
Max date
-
-
-
- );
-}`;
+import App from "./min-and-max-date.raw.jsx?raw";
const react = {
"/App.jsx": App,
diff --git a/apps/docs/content/components/date-range-picker/non-contiguous.raw.jsx b/apps/docs/content/components/date-range-picker/non-contiguous.raw.jsx
new file mode 100644
index 0000000000..ea418e7815
--- /dev/null
+++ b/apps/docs/content/components/date-range-picker/non-contiguous.raw.jsx
@@ -0,0 +1,17 @@
+import {DateRangePicker} from "@nextui-org/react";
+import {isWeekend, today, getLocalTimeZone} from "@internationalized/date";
+import {useLocale} from "@react-aria/i18n";
+
+export default function App() {
+ let {locale} = useLocale();
+
+ return (
+ isWeekend(date, locale)}
+ label="Time off request"
+ minValue={today(getLocalTimeZone())}
+ visibleMonths={2}
+ />
+ );
+}
diff --git a/apps/docs/content/components/date-range-picker/non-contiguous.ts b/apps/docs/content/components/date-range-picker/non-contiguous.ts
index a85e7f570e..1d0c412e68 100644
--- a/apps/docs/content/components/date-range-picker/non-contiguous.ts
+++ b/apps/docs/content/components/date-range-picker/non-contiguous.ts
@@ -1,20 +1,4 @@
-const App = `import {DateRangePicker} from "@nextui-org/react";
-import {isWeekend, today, getLocalTimeZone} from "@internationalized/date";
-import {useLocale} from "@react-aria/i18n";
-
-export default function App() {
- let {locale} = useLocale();
-
- return (
- isWeekend(date, locale)}
- label="Time off request"
- minValue={today(getLocalTimeZone())}
- visibleMonths={2}
- />
- );
-}`;
+import App from "./non-contiguous.raw.jsx?raw";
const react = {
"/App.jsx": App,
diff --git a/apps/docs/content/components/date-range-picker/page-behavior.raw.jsx b/apps/docs/content/components/date-range-picker/page-behavior.raw.jsx
new file mode 100644
index 0000000000..a7493015c9
--- /dev/null
+++ b/apps/docs/content/components/date-range-picker/page-behavior.raw.jsx
@@ -0,0 +1,9 @@
+import {DateRangePicker} from "@nextui-org/react";
+
+export default function App() {
+ return (
+
+
+
+ );
+}
diff --git a/apps/docs/content/components/date-range-picker/page-behavior.ts b/apps/docs/content/components/date-range-picker/page-behavior.ts
index 49d92881d7..70c2ebfd2f 100644
--- a/apps/docs/content/components/date-range-picker/page-behavior.ts
+++ b/apps/docs/content/components/date-range-picker/page-behavior.ts
@@ -1,16 +1,4 @@
-const App = `import {DateRangePicker} from "@nextui-org/react";
-
-export default function App() {
- return (
-
-
-
- );
-}`;
+import App from "./page-behavior.raw.jsx?raw";
const react = {
"/App.jsx": App,
diff --git a/apps/docs/content/components/date-range-picker/presets.raw.jsx b/apps/docs/content/components/date-range-picker/presets.raw.jsx
new file mode 100644
index 0000000000..6a14eaf429
--- /dev/null
+++ b/apps/docs/content/components/date-range-picker/presets.raw.jsx
@@ -0,0 +1,122 @@
+import {DateRangePicker, Radio, RadioGroup, Button, ButtonGroup, cn} from "@nextui-org/react";
+import {
+ today,
+ startOfWeek,
+ startOfMonth,
+ endOfWeek,
+ endOfMonth,
+ getLocalTimeZone,
+} from "@internationalized/date";
+import {useLocale, useDateFormatter} from "@react-aria/i18n";
+
+export default function App() {
+ let defaultDate = {
+ start: today(getLocalTimeZone()),
+ end: today(getLocalTimeZone()).add({days: 7}),
+ };
+ let [value, setValue] = React.useState(defaultDate);
+
+ let {locale} = useLocale();
+ let formatter = useDateFormatter({dateStyle: "full"});
+ let now = today(getLocalTimeZone());
+ let nextWeek = {
+ start: startOfWeek(now.add({weeks: 1}), locale),
+ end: endOfWeek(now.add({weeks: 1}), locale),
+ };
+ let nextMonth = {
+ start: startOfMonth(now.add({months: 1})),
+ end: endOfMonth(now.add({months: 1})),
+ };
+
+ const CustomRadio = (props) => {
+ const {children, ...otherProps} = props;
+
+ return (
+
+ {children}
+
+ );
+ };
+
+ return (
+
+
+ Exact dates
+ 1 day
+ 2 days
+ 3 days
+ 7 days
+ 14 days
+
+ }
+ CalendarTopContent={
+
+
+
+
+
+ }
+ calendarProps={{
+ focusedValue: value.start,
+ onFocusChange: (val) => setValue({...value, start: val}),
+ nextButtonProps: {
+ variant: "bordered",
+ },
+ prevButtonProps: {
+ variant: "bordered",
+ },
+ }}
+ label="Event date"
+ value={value}
+ onChange={setValue}
+ />
+
+ Selected date:{" "}
+ {value
+ ? formatter.formatRange(
+ value.start.toDate(getLocalTimeZone()),
+ value.end.toDate(getLocalTimeZone()),
+ )
+ : "--"}
+
+
+ );
+}
diff --git a/apps/docs/content/components/date-range-picker/presets.ts b/apps/docs/content/components/date-range-picker/presets.ts
index 6bf954195b..a73828a679 100644
--- a/apps/docs/content/components/date-range-picker/presets.ts
+++ b/apps/docs/content/components/date-range-picker/presets.ts
@@ -1,241 +1,7 @@
-const App = `import {DateRangePicker, Radio, RadioGroup, Button, ButtonGroup, cn} from "@nextui-org/react";
-import {today, startOfWeek, startOfMonth, endOfWeek, endOfMonth, getLocalTimeZone} from "@internationalized/date";
-import {useLocale, useDateFormatter} from "@react-aria/i18n";
-
-export default function App() {
- let defaultDate = {
- start: today(getLocalTimeZone()),
- end: today(getLocalTimeZone()).add({days: 7}),
- };
- let [value, setValue] = React.useState(defaultDate);
-
- let {locale} = useLocale();
- let formatter = useDateFormatter({dateStyle: "full"});
- let now = today(getLocalTimeZone());
- let nextWeek = {
- start: startOfWeek(now.add({weeks: 1}), locale),
- end: endOfWeek(now.add({weeks: 1}), locale),
- };
- let nextMonth = {
- start: startOfMonth(now.add({months: 1})),
- end: endOfMonth(now.add({months: 1})),
- };
-
- const CustomRadio = (props) => {
- const {children, ...otherProps} = props;
-
- return (
-
- {children}
-
- );
- };
-
- return (
-
-
- Exact dates
- 1 day
- 2 days
- 3 days
- 7 days
- 14 days
-
- }
- CalendarTopContent={
-
-
-
-
-
- }
- calendarProps={{
- focusedValue: value?.start,
- onFocusChange: (val) => setValue({...value, start: val}),
- nextButtonProps: {
- variant: "bordered",
- },
- prevButtonProps: {
- variant: "bordered",
- },
- }}
- value={value}
- onChange={setValue}
- label="Event date"
- />
-
- Selected date:{" "}
- {value
- ? formatter.formatRange(
- value.start.toDate(getLocalTimeZone()),
- value.end.toDate(getLocalTimeZone()),
- )
- : "--"}
-
-
- );
-}`;
-
-// const AppTs = `import {DateRangePicker} from "@nextui-org/react";
-// import {now, today, startOfWeek, startOfMonth, useDateFormatter, getLocalTimeZone} from "@internationalized/date";
-// import {useLocale} from "@react-aria/i18n";
-// import {RangeValue} from "@react-types/shared";
-
-// export default function App() {
-// let defaultDate = {
-// start: today(getLocalTimeZone()),
-// end: today(getLocalTimeZone()).add({days: 7}),
-// };
-
-// const [value, setValue] = React.useState>(defaultDate);
-
-// let {locale} = useLocale();
-// let formatter = useDateFormatter({dateStyle: "full"});
-
-// let now = today(getLocalTimeZone());
-// let nextWeek = {
-// start: startOfWeek(now.add({weeks: 1}), locale),
-// end: endOfWeek(now.add({weeks: 1}), locale),
-// };
-// let nextMonth = {
-// start: startOfMonth(now.add({months: 1})),
-// end: endOfMonth(now.add({months: 1})),
-// };
-
-// const CustomRadio = (props) => {
-// const {children, ...otherProps} = props;
-
-// return (
-//
-// {children}
-//
-// );
-// };
-
-// return (
-//
-//
-// Exact dates
-// 1 day
-// 2 days
-// 3 days
-// 7 days
-// 14 days
-//
-// }
-// CalendarTopContent={
-//
-//
-//
-//
-//
-// }
-// calendarProps={{
-// focusedValue: value.start,
-// onFocusChange: (val) => setValue({...value, start: val}),
-// nextButtonProps: {
-// variant: "bordered",
-// },
-// prevButtonProps: {
-// variant: "bordered",
-// },
-// }}
-// value={value}
-// onChange={setValue}
-// label="Event date"
-// />
-//
-// Selected date:{" "}
-// {value
-// ? formatter.formatRange(
-// value.start.toDate(getLocalTimeZone()),
-// value.end.toDate(getLocalTimeZone()),
-// )
-// : "--"}
-//
-//
-// );
-// }`;
+import App from "./presets.raw.jsx?raw";
const react = {
"/App.jsx": App,
- // "/App.tsx": AppTs,
};
export default {
diff --git a/apps/docs/content/components/date-range-picker/readonly.raw.jsx b/apps/docs/content/components/date-range-picker/readonly.raw.jsx
new file mode 100644
index 0000000000..11e281d0a9
--- /dev/null
+++ b/apps/docs/content/components/date-range-picker/readonly.raw.jsx
@@ -0,0 +1,16 @@
+import {DateRangePicker} from "@nextui-org/react";
+import {parseDate} from "@internationalized/date";
+
+export default function App() {
+ return (
+
+ );
+}
diff --git a/apps/docs/content/components/date-range-picker/readonly.ts b/apps/docs/content/components/date-range-picker/readonly.ts
index 4ac98ed8b4..fabd05ba36 100644
--- a/apps/docs/content/components/date-range-picker/readonly.ts
+++ b/apps/docs/content/components/date-range-picker/readonly.ts
@@ -1,19 +1,4 @@
-const App = `import {DateRangePicker} from "@nextui-org/react";
-import {parseDate} from "@internationalized/date";
-
-export default function App() {
- return (
-
- );
-}`;
+import App from "./readonly.raw.jsx?raw";
const react = {
"/App.jsx": App,
diff --git a/apps/docs/content/components/date-range-picker/required.raw.jsx b/apps/docs/content/components/date-range-picker/required.raw.jsx
new file mode 100644
index 0000000000..8076e8e767
--- /dev/null
+++ b/apps/docs/content/components/date-range-picker/required.raw.jsx
@@ -0,0 +1,16 @@
+import {DateRangePicker} from "@nextui-org/react";
+import {parseDate} from "@internationalized/date";
+
+export default function App() {
+ return (
+
+ );
+}
diff --git a/apps/docs/content/components/date-range-picker/required.ts b/apps/docs/content/components/date-range-picker/required.ts
index c3c9e0bbd1..b50b781e6f 100644
--- a/apps/docs/content/components/date-range-picker/required.ts
+++ b/apps/docs/content/components/date-range-picker/required.ts
@@ -1,19 +1,4 @@
-const App = `import {DateRangePicker} from "@nextui-org/react";
-import {parseDate} from "@internationalized/date";
-
-export default function App() {
- return (
-
- );
-}`;
+import App from "./required.raw.jsx?raw";
const react = {
"/App.jsx": App,
diff --git a/apps/docs/content/components/date-range-picker/selector-button-placement.raw.jsx b/apps/docs/content/components/date-range-picker/selector-button-placement.raw.jsx
new file mode 100644
index 0000000000..f8f253caf7
--- /dev/null
+++ b/apps/docs/content/components/date-range-picker/selector-button-placement.raw.jsx
@@ -0,0 +1,10 @@
+import {DateRangePicker} from "@nextui-org/react";
+
+export default function App() {
+ return (
+
+
+
+
+ );
+}
diff --git a/apps/docs/content/components/date-range-picker/selector-button-placement.ts b/apps/docs/content/components/date-range-picker/selector-button-placement.ts
index f36752737f..2d69e80fe8 100644
--- a/apps/docs/content/components/date-range-picker/selector-button-placement.ts
+++ b/apps/docs/content/components/date-range-picker/selector-button-placement.ts
@@ -1,19 +1,4 @@
-const App = `import {DateRangePicker} from "@nextui-org/react";
-
-export default function App() {
- return (
-
-
-
-
- );
-}`;
+import App from "./selector-button-placement.raw.jsx?raw";
const react = {
"/App.jsx": App,
diff --git a/apps/docs/content/components/date-range-picker/selector-icon.raw.jsx b/apps/docs/content/components/date-range-picker/selector-icon.raw.jsx
new file mode 100644
index 0000000000..0df488b234
--- /dev/null
+++ b/apps/docs/content/components/date-range-picker/selector-icon.raw.jsx
@@ -0,0 +1,27 @@
+import {DateRangePicker} from "@nextui-org/react";
+
+export const SelectorIcon = (props) => {
+ return (
+
+ );
+};
+
+export default function App() {
+ return (
+
+ } />
+
+ );
+}
diff --git a/apps/docs/content/components/date-range-picker/selector-icon.ts b/apps/docs/content/components/date-range-picker/selector-icon.ts
index 10e4eeb89d..9997d508de 100644
--- a/apps/docs/content/components/date-range-picker/selector-icon.ts
+++ b/apps/docs/content/components/date-range-picker/selector-icon.ts
@@ -1,35 +1,7 @@
-const SelectorIcon = `export const SelectorIcon = (props) => (
-
-);`;
-
-const App = `import {DateRangePicker} from "@nextui-org/react";
-import {SelectorIcon} from './SelectorIcon';
-export default function App() {
- return (
-
- }
- />
-
- );
-}`;
+import App from "./selector-icon.raw.jsx?raw";
const react = {
"/App.jsx": App,
- "/SelectorIcon.jsx": SelectorIcon,
};
export default {
diff --git a/apps/docs/content/components/date-range-picker/time-zones.raw.jsx b/apps/docs/content/components/date-range-picker/time-zones.raw.jsx
new file mode 100644
index 0000000000..b353f82593
--- /dev/null
+++ b/apps/docs/content/components/date-range-picker/time-zones.raw.jsx
@@ -0,0 +1,25 @@
+import {DateRangePicker} from "@nextui-org/react";
+import {parseZonedDateTime, parseAbsoluteToLocal} from "@internationalized/date";
+
+export default function App() {
+ return (
+
+
+
+
+ );
+}
diff --git a/apps/docs/content/components/date-range-picker/time-zones.ts b/apps/docs/content/components/date-range-picker/time-zones.ts
index ac08becc56..803b4ec768 100644
--- a/apps/docs/content/components/date-range-picker/time-zones.ts
+++ b/apps/docs/content/components/date-range-picker/time-zones.ts
@@ -1,28 +1,4 @@
-const App = `import {DateRangePicker} from "@nextui-org/react";
-import {parseZonedDateTime, parseAbsoluteToLocal} from "@internationalized/date";
-
-export default function App() {
- return (
-
-
-
-
- );
-}`;
+import App from "./time-zones.raw.jsx?raw";
const react = {
"/App.jsx": App,
diff --git a/apps/docs/content/components/date-range-picker/unavailable-dates.raw.jsx b/apps/docs/content/components/date-range-picker/unavailable-dates.raw.jsx
new file mode 100644
index 0000000000..3e2324f44d
--- /dev/null
+++ b/apps/docs/content/components/date-range-picker/unavailable-dates.raw.jsx
@@ -0,0 +1,33 @@
+import {DateRangePicker} from "@nextui-org/react";
+import {today, getLocalTimeZone} from "@internationalized/date";
+
+export default function App() {
+ let now = today(getLocalTimeZone());
+
+ let disabledRanges = [
+ [now, now.add({days: 5})],
+ [now.add({days: 14}), now.add({days: 16})],
+ [now.add({days: 23}), now.add({days: 24})],
+ ];
+
+ return (
+
+ disabledRanges.some(
+ (interval) => date.compare(interval[0]) >= 0 && date.compare(interval[1]) <= 0,
+ )
+ }
+ label="Stay duration"
+ minValue={today(getLocalTimeZone())}
+ validate={(value) =>
+ disabledRanges.some(
+ (interval) =>
+ value && value.end.compare(interval[0]) >= 0 && value.start.compare(interval[1]) <= 0,
+ )
+ ? "Selected date range may not include unavailable dates."
+ : null
+ }
+ validationBehavior="native"
+ />
+ );
+}
diff --git a/apps/docs/content/components/date-range-picker/unavailable-dates.ts b/apps/docs/content/components/date-range-picker/unavailable-dates.ts
index c300b5fc5b..b4e1f4df1a 100644
--- a/apps/docs/content/components/date-range-picker/unavailable-dates.ts
+++ b/apps/docs/content/components/date-range-picker/unavailable-dates.ts
@@ -1,36 +1,4 @@
-const App = `import {DateRangePicker} from "@nextui-org/react";
-import {today, getLocalTimeZone} from "@internationalized/date";
-
-export default function App() {
- let now = today(getLocalTimeZone());
-
- let disabledRanges = [
- [now, now.add({days: 5})],
- [now.add({days: 14}), now.add({days: 16})],
- [now.add({days: 23}), now.add({days: 24})],
- ];
-
- return (
-
- disabledRanges.some(
- (interval) => date.compare(interval[0]) >= 0 && date.compare(interval[1]) <= 0,
- )
- }
- minValue={today(getLocalTimeZone())}
- validate={(value) =>
- disabledRanges.some(
- (interval) =>
- value && value.end.compare(interval[0]) >= 0 && value.start.compare(interval[1]) <= 0,
- )
- ? "Selected date range may not include unavailable dates."
- : null
- }
- validationBehavior="native"
- />
- );
-}`;
+import App from "./unavailable-dates.raw.jsx?raw";
const react = {
"/App.jsx": App,
diff --git a/apps/docs/content/components/date-range-picker/usage.raw.jsx b/apps/docs/content/components/date-range-picker/usage.raw.jsx
new file mode 100644
index 0000000000..0eacc56b4e
--- /dev/null
+++ b/apps/docs/content/components/date-range-picker/usage.raw.jsx
@@ -0,0 +1,5 @@
+import {DateRangePicker} from "@nextui-org/react";
+
+export default function App() {
+ return ;
+}
diff --git a/apps/docs/content/components/date-range-picker/usage.ts b/apps/docs/content/components/date-range-picker/usage.ts
index b83666a5cb..1118304c37 100644
--- a/apps/docs/content/components/date-range-picker/usage.ts
+++ b/apps/docs/content/components/date-range-picker/usage.ts
@@ -1,13 +1,4 @@
-const App = `import {DateRangePicker} from "@nextui-org/react";
-
-export default function App() {
- return (
-
- );
-}`;
+import App from "./usage.raw.jsx?raw";
const react = {
"/App.jsx": App,
diff --git a/apps/docs/content/components/date-range-picker/variants.raw.jsx b/apps/docs/content/components/date-range-picker/variants.raw.jsx
new file mode 100644
index 0000000000..5f20d0946b
--- /dev/null
+++ b/apps/docs/content/components/date-range-picker/variants.raw.jsx
@@ -0,0 +1,15 @@
+import {DateRangePicker} from "@nextui-org/react";
+
+export default function App() {
+ const variants = ["flat", "bordered", "underlined", "faded"];
+
+ return (
+
+ {variants.map((variant) => (
+
+
+
+ ))}
+
+ );
+}
diff --git a/apps/docs/content/components/date-range-picker/variants.ts b/apps/docs/content/components/date-range-picker/variants.ts
index 668f9c83fe..ddea95fb2e 100644
--- a/apps/docs/content/components/date-range-picker/variants.ts
+++ b/apps/docs/content/components/date-range-picker/variants.ts
@@ -1,22 +1,4 @@
-const App = `import {DateRangePicker} from "@nextui-org/react";
-
-export default function App() {
- const variants = ["flat", "bordered", "underlined", "faded"];
-
- return (
-
- {variants.map((variant) => (
-
-
-
- ))}
-
- );
-}`;
+import App from "./variants.raw.jsx?raw";
const react = {
"/App.jsx": App,
diff --git a/apps/docs/content/components/date-range-picker/visible-month.raw.jsx b/apps/docs/content/components/date-range-picker/visible-month.raw.jsx
new file mode 100644
index 0000000000..a45041c3da
--- /dev/null
+++ b/apps/docs/content/components/date-range-picker/visible-month.raw.jsx
@@ -0,0 +1,9 @@
+import {DateRangePicker} from "@nextui-org/react";
+
+export default function App() {
+ return (
+
+
+
+ );
+}
diff --git a/apps/docs/content/components/date-range-picker/visible-month.ts b/apps/docs/content/components/date-range-picker/visible-month.ts
index 0f30be2412..7c3a2abe6a 100644
--- a/apps/docs/content/components/date-range-picker/visible-month.ts
+++ b/apps/docs/content/components/date-range-picker/visible-month.ts
@@ -1,15 +1,4 @@
-const App = `import {DateRangePicker} from "@nextui-org/react";
-
-export default function App() {
- return (
-
-
-
- );
-}`;
+import App from "./visible-month.raw.jsx?raw";
const react = {
"/App.jsx": App,
diff --git a/apps/docs/content/components/date-range-picker/with-month-and-year-pickers.raw.jsx b/apps/docs/content/components/date-range-picker/with-month-and-year-pickers.raw.jsx
new file mode 100644
index 0000000000..3107c1c489
--- /dev/null
+++ b/apps/docs/content/components/date-range-picker/with-month-and-year-pickers.raw.jsx
@@ -0,0 +1,9 @@
+import {DateRangePicker} from "@nextui-org/react";
+
+export default function App() {
+ return (
+
+
+
+ );
+}
diff --git a/apps/docs/content/components/date-range-picker/with-month-and-year-pickers.ts b/apps/docs/content/components/date-range-picker/with-month-and-year-pickers.ts
index 5e5d03a2fd..5e5431496b 100644
--- a/apps/docs/content/components/date-range-picker/with-month-and-year-pickers.ts
+++ b/apps/docs/content/components/date-range-picker/with-month-and-year-pickers.ts
@@ -1,16 +1,4 @@
-const App = `import {DateRangePicker} from "@nextui-org/react";
-
-export default function App() {
- return (
-
-
-
- );
-}`;
+import App from "./with-month-and-year-pickers.raw.jsx?raw";
const react = {
"/App.jsx": App,
diff --git a/apps/docs/content/components/date-range-picker/with-time-field.raw.jsx b/apps/docs/content/components/date-range-picker/with-time-field.raw.jsx
new file mode 100644
index 0000000000..e988e95839
--- /dev/null
+++ b/apps/docs/content/components/date-range-picker/with-time-field.raw.jsx
@@ -0,0 +1,18 @@
+import {DateRangePicker} from "@nextui-org/react";
+import {parseZonedDateTime} from "@internationalized/date";
+
+export default function App() {
+ return (
+
+
+
+ );
+}
diff --git a/apps/docs/content/components/date-range-picker/with-time-field.ts b/apps/docs/content/components/date-range-picker/with-time-field.ts
index 318f9f3770..8df135a004 100644
--- a/apps/docs/content/components/date-range-picker/with-time-field.ts
+++ b/apps/docs/content/components/date-range-picker/with-time-field.ts
@@ -1,21 +1,4 @@
-const App = `import {DateRangePicker} from "@nextui-org/react";
-import {parseZonedDateTime} from "@internationalized/date";
-
-export default function App() {
- return (
-
-
-
- );
-}`;
+import App from "./with-time-field.raw.jsx?raw";
const react = {
"/App.jsx": App,