diff --git a/.changeset/cyan-emus-swim.md b/.changeset/cyan-emus-swim.md
new file mode 100644
index 0000000000..48ef694f26
--- /dev/null
+++ b/.changeset/cyan-emus-swim.md
@@ -0,0 +1,5 @@
+---
+"@nextui-org/date-picker": patch
+---
+
+Fix calendar props on date-range-picker
diff --git a/apps/docs/content/components/date-range-picker/custom-styles.ts b/apps/docs/content/components/date-range-picker/custom-styles.ts
new file mode 100644
index 0000000000..6c11daf883
--- /dev/null
+++ b/apps/docs/content/components/date-range-picker/custom-styles.ts
@@ -0,0 +1,41 @@
+const App = `import {DateRangePicker} from "@nextui-org/react";
+
+export default function App() {
+ return (
+
+ );
+}`;
+
+const react = {
+ "/App.jsx": App,
+};
+
+export default {
+ ...react,
+};
diff --git a/apps/docs/content/components/date-range-picker/index.ts b/apps/docs/content/components/date-range-picker/index.ts
index 27759f8408..313789ff29 100644
--- a/apps/docs/content/components/date-range-picker/index.ts
+++ b/apps/docs/content/components/date-range-picker/index.ts
@@ -19,6 +19,7 @@ import visibleMonth from "./visible-month";
import pageBehavior from "./page-behavior";
import nonContigous from "./non-contiguous";
import presets from "./presets";
+import customStyles from "./custom-styles";
export const dateRangePickerContent = {
usage,
@@ -42,4 +43,5 @@ export const dateRangePickerContent = {
pageBehavior,
nonContigous,
presets,
+ customStyles,
};
diff --git a/apps/docs/content/docs/components/date-range-picker.mdx b/apps/docs/content/docs/components/date-range-picker.mdx
index b03e2d6245..cfabdb5d15 100644
--- a/apps/docs/content/docs/components/date-range-picker.mdx
+++ b/apps/docs/content/docs/components/date-range-picker.mdx
@@ -302,6 +302,12 @@ import {useLocale, useDateFormatter} from "@react-aria/i18n";
- **description**: The description of the date-input.
- **errorMessage**: The error message of the date-input.
+### Custom Styles
+
+You can customize the `DateRangePicker` component by passing custom Tailwind CSS classes to the component slots.
+
+
+
## Data Attributes
diff --git a/packages/components/date-picker/src/use-date-range-picker.ts b/packages/components/date-picker/src/use-date-range-picker.ts
index 42df170d40..5bd728a169 100644
--- a/packages/components/date-picker/src/use-date-range-picker.ts
+++ b/packages/components/date-picker/src/use-date-range-picker.ts
@@ -20,7 +20,7 @@ import {useDateRangePickerState} from "@react-stately/datepicker";
import {useDateRangePicker as useAriaDateRangePicker} from "@react-aria/datepicker";
import {clsx, dataAttr, objectToDeps} from "@nextui-org/shared-utils";
import {mergeProps} from "@react-aria/utils";
-import {dateRangePicker, dateInput} from "@nextui-org/theme";
+import {dateRangePicker, dateInput, cn} from "@nextui-org/theme";
import {ariaShouldCloseOnInteractOutside} from "@nextui-org/aria-utils";
import {useDatePickerBase} from "./use-date-picker-base";
@@ -227,8 +227,11 @@ export function useDateRangePicker({
...ariaCalendarProps,
...calendarProps,
classNames: {
- base: slots.calendar({class: classNames?.calendar}),
- content: slots.calendarContent({class: classNames?.calendarContent}),
+ ...calendarProps.classNames,
+ base: slots.calendar({class: cn(calendarProps?.classNames?.base, classNames?.calendar)}),
+ content: slots.calendarContent({
+ class: cn(calendarProps?.classNames?.content, classNames?.calendarContent),
+ }),
},
} as RangeCalendarProps;
};
diff --git a/packages/components/date-picker/stories/date-range-picker.stories.tsx b/packages/components/date-picker/stories/date-range-picker.stories.tsx
index 25df66ab0c..ac5b3103ea 100644
--- a/packages/components/date-picker/stories/date-range-picker.stories.tsx
+++ b/packages/components/date-picker/stories/date-range-picker.stories.tsx
@@ -636,3 +636,38 @@ export const WithValidation = {
label: "Date Range (Year 2024 or later)",
},
};
+
+export const CustomStyles = {
+ render: Template,
+
+ args: {
+ ...defaultProps,
+ variant: "bordered",
+ className: "max-w-xs",
+ calendarProps: {
+ classNames: {
+ base: "bg-background",
+ headerWrapper: "pt-4 bg-background",
+ prevButton: "border-1 border-default-200 rounded-small",
+ nextButton: "border-1 border-default-200 rounded-small",
+ gridHeader: "bg-background shadow-none border-b-1 border-default-100",
+ cellButton: [
+ "data-[today=true]:bg-default-100 data-[selected=true]:bg-transparent rounded-small",
+ // start (pseudo)
+ "data-[range-start=true]:before:rounded-l-small",
+ "data-[selection-start=true]:before:rounded-l-small",
+
+ // end (pseudo)
+ "data-[range-end=true]:before:rounded-r-small",
+ "data-[selection-end=true]:before:rounded-r-small",
+
+ // start (selected)
+ "data-[selected=true]:data-[selection-start=true]:data-[range-selection=true]:rounded-small",
+
+ // end (selected)
+ "data-[selected=true]:data-[selection-end=true]:data-[range-selection=true]:rounded-small",
+ ],
+ },
+ },
+ },
+};