From e1ffbe336ea9c0a28650ca84c7385e255a8cd943 Mon Sep 17 00:00:00 2001 From: prateekmtri Date: Mon, 5 Jan 2026 20:29:22 +0530 Subject: [PATCH 1/4] feat(datepicker): add styling for out-of-month days --- apps/storybook/tailwind.config.cjs | 6 +- apps/web/tailwind.config.cjs | 1 + bun.lock | 2 +- packages/ui/schema.json | 206 +++++++++--------- .../src/components/Datepicker/Views/Days.tsx | 8 +- .../ui/src/components/Datepicker/theme.ts | 3 +- 6 files changed, 119 insertions(+), 107 deletions(-) diff --git a/apps/storybook/tailwind.config.cjs b/apps/storybook/tailwind.config.cjs index 71fe86655..083edab8c 100644 --- a/apps/storybook/tailwind.config.cjs +++ b/apps/storybook/tailwind.config.cjs @@ -3,7 +3,11 @@ const flowbiteReact = require("flowbite-react/plugin/tailwindcss"); /** @type {import('tailwindcss').Config} */ module.exports = { darkMode: "class", - content: ["./src/**/*.{ts,tsx}", ".flowbite-react/class-list.json"], + content: [ + "./src/**/*.{ts,tsx}", + ".flowbite-react/class-list.json", + ".flowbite-react\\class-list.json" + ], theme: { extend: {}, }, diff --git a/apps/web/tailwind.config.cjs b/apps/web/tailwind.config.cjs index 0ddc6bcf4..fa36ada3f 100644 --- a/apps/web/tailwind.config.cjs +++ b/apps/web/tailwind.config.cjs @@ -9,6 +9,7 @@ module.exports = { "./data/**/*.{js,jsx,ts,tsx}", "./examples/**/*.{js,jsx,ts,tsx}", ".flowbite-react/class-list.json", + ".flowbite-react\\class-list.json" ], theme: { extend: { diff --git a/bun.lock b/bun.lock index 302605dfc..57b36245b 100644 --- a/bun.lock +++ b/bun.lock @@ -109,7 +109,7 @@ }, "packages/ui": { "name": "flowbite-react", - "version": "0.12.13", + "version": "0.12.15", "bin": { "flowbite-react": "./dist/cli/bin.js", }, diff --git a/packages/ui/schema.json b/packages/ui/schema.json index 0d43ff966..739d1c003 100644 --- a/packages/ui/schema.json +++ b/packages/ui/schema.json @@ -9,109 +9,109 @@ "type": "string", "enum": [ "*", - "Accordion", - "AccordionContent", - "AccordionTitle", - "Alert", - "Avatar", - "AvatarGroup", - "AvatarGroupCounter", - "Badge", - "Banner", - "BannerCollapseButton", - "Blockquote", - "Breadcrumb", - "BreadcrumbItem", - "Button", - "ButtonGroup", - "Card", - "Carousel", - "Checkbox", - "Clipboard", - "ClipboardWithIcon", - "ClipboardWithIconText", - "DarkThemeToggle", - "Datepicker", - "Drawer", - "DrawerHeader", - "DrawerItems", - "Dropdown", - "DropdownDivider", - "DropdownHeader", - "DropdownItem", - "FileInput", - "FloatingLabel", - "Footer", - "FooterBrand", - "FooterCopyright", - "FooterDivider", - "FooterIcon", - "FooterLink", - "FooterLinkGroup", - "FooterTitle", - "HR", - "HRIcon", - "HRSquare", - "HRText", - "HRTrimmed", - "HelperText", - "Kbd", - "Label", - "List", - "ListItem", - "ListGroup", - "ListGroupItem", - "MegaMenu", - "MegaMenuDropdown", - "MegaMenuDropdownToggle", - "Modal", - "ModalBody", - "ModalFooter", - "ModalHeader", - "Navbar", - "NavbarBrand", - "NavbarCollapse", - "NavbarLink", - "NavbarToggle", - "Pagination", - "PaginationButton", - "Popover", - "Progress", - "Radio", - "RangeSlider", - "Rating", - "RatingAdvanced", - "RatingStar", - "Select", - "Sidebar", - "SidebarCTA", - "SidebarCollapse", - "SidebarItem", - "SidebarItemGroup", - "SidebarItems", - "SidebarLogo", - "Spinner", - "Table", - "TableBody", - "TableCell", - "TableHead", - "TableHeadCell", - "TableRow", - "TabItem", - "Tabs", - "TextInput", - "Textarea", - "Timeline", - "TimelineBody", - "TimelineContent", - "TimelineItem", - "TimelinePoint", - "TimelineTime", - "TimelineTitle", - "Toast", - "ToastToggle", - "ToggleSwitch", - "Tooltip" + "src\\components\\Accordion\\Accordion", + "src\\components\\Accordion\\AccordionContent", + "src\\components\\Accordion\\AccordionTitle", + "src\\components\\Alert\\Alert", + "src\\components\\Avatar\\Avatar", + "src\\components\\Avatar\\AvatarGroup", + "src\\components\\Avatar\\AvatarGroupCounter", + "src\\components\\Badge\\Badge", + "src\\components\\Banner\\Banner", + "src\\components\\Banner\\BannerCollapseButton", + "src\\components\\Blockquote\\Blockquote", + "src\\components\\Breadcrumb\\Breadcrumb", + "src\\components\\Breadcrumb\\BreadcrumbItem", + "src\\components\\Button\\Button", + "src\\components\\Button\\ButtonGroup", + "src\\components\\Card\\Card", + "src\\components\\Carousel\\Carousel", + "src\\components\\Checkbox\\Checkbox", + "src\\components\\Clipboard\\Clipboard", + "src\\components\\Clipboard\\ClipboardWithIcon", + "src\\components\\Clipboard\\ClipboardWithIconText", + "src\\components\\DarkThemeToggle\\DarkThemeToggle", + "src\\components\\Datepicker\\Datepicker", + "src\\components\\Drawer\\Drawer", + "src\\components\\Drawer\\DrawerHeader", + "src\\components\\Drawer\\DrawerItems", + "src\\components\\Dropdown\\Dropdown", + "src\\components\\Dropdown\\DropdownDivider", + "src\\components\\Dropdown\\DropdownHeader", + "src\\components\\Dropdown\\DropdownItem", + "src\\components\\FileInput\\FileInput", + "src\\components\\FloatingLabel\\FloatingLabel", + "src\\components\\Footer\\Footer", + "src\\components\\Footer\\FooterBrand", + "src\\components\\Footer\\FooterCopyright", + "src\\components\\Footer\\FooterDivider", + "src\\components\\Footer\\FooterIcon", + "src\\components\\Footer\\FooterLink", + "src\\components\\Footer\\FooterLinkGroup", + "src\\components\\Footer\\FooterTitle", + "src\\components\\HR\\HR", + "src\\components\\HR\\HRIcon", + "src\\components\\HR\\HRSquare", + "src\\components\\HR\\HRText", + "src\\components\\HR\\HRTrimmed", + "src\\components\\HelperText\\HelperText", + "src\\components\\Kbd\\Kbd", + "src\\components\\Label\\Label", + "src\\components\\ListGroup\\ListGroup", + "src\\components\\ListGroup\\ListGroupItem", + "src\\components\\List\\List", + "src\\components\\List\\ListItem", + "src\\components\\MegaMenu\\MegaMenu", + "src\\components\\MegaMenu\\MegaMenuDropdown", + "src\\components\\MegaMenu\\MegaMenuDropdownToggle", + "src\\components\\Modal\\Modal", + "src\\components\\Modal\\ModalBody", + "src\\components\\Modal\\ModalFooter", + "src\\components\\Modal\\ModalHeader", + "src\\components\\Navbar\\Navbar", + "src\\components\\Navbar\\NavbarBrand", + "src\\components\\Navbar\\NavbarCollapse", + "src\\components\\Navbar\\NavbarLink", + "src\\components\\Navbar\\NavbarToggle", + "src\\components\\Pagination\\Pagination", + "src\\components\\Pagination\\PaginationButton", + "src\\components\\Popover\\Popover", + "src\\components\\Progress\\Progress", + "src\\components\\Radio\\Radio", + "src\\components\\RangeSlider\\RangeSlider", + "src\\components\\Rating\\Rating", + "src\\components\\Rating\\RatingAdvanced", + "src\\components\\Rating\\RatingStar", + "src\\components\\Select\\Select", + "src\\components\\Sidebar\\Sidebar", + "src\\components\\Sidebar\\SidebarCTA", + "src\\components\\Sidebar\\SidebarCollapse", + "src\\components\\Sidebar\\SidebarItem", + "src\\components\\Sidebar\\SidebarItemGroup", + "src\\components\\Sidebar\\SidebarItems", + "src\\components\\Sidebar\\SidebarLogo", + "src\\components\\Spinner\\Spinner", + "src\\components\\Table\\Table", + "src\\components\\Table\\TableBody", + "src\\components\\Table\\TableCell", + "src\\components\\Table\\TableHead", + "src\\components\\Table\\TableHeadCell", + "src\\components\\Table\\TableRow", + "src\\components\\Tabs\\TabItem", + "src\\components\\Tabs\\Tabs", + "src\\components\\TextInput\\TextInput", + "src\\components\\Textarea\\Textarea", + "src\\components\\Timeline\\Timeline", + "src\\components\\Timeline\\TimelineBody", + "src\\components\\Timeline\\TimelineContent", + "src\\components\\Timeline\\TimelineItem", + "src\\components\\Timeline\\TimelinePoint", + "src\\components\\Timeline\\TimelineTime", + "src\\components\\Timeline\\TimelineTitle", + "src\\components\\Toast\\Toast", + "src\\components\\Toast\\ToastToggle", + "src\\components\\ToggleSwitch\\ToggleSwitch", + "src\\components\\Tooltip\\Tooltip" ] }, "uniqueItems": true diff --git a/packages/ui/src/components/Datepicker/Views/Days.tsx b/packages/ui/src/components/Datepicker/Views/Days.tsx index f91a0843f..99c426e28 100644 --- a/packages/ui/src/components/Datepicker/Views/Days.tsx +++ b/packages/ui/src/components/Datepicker/Views/Days.tsx @@ -25,6 +25,7 @@ export interface DatepickerViewsDaysTheme { selected: string; disabled: string; today: string; + outside: string; // ✅ Updated: Added 'outside' key for theme support }; }; } @@ -66,6 +67,9 @@ export function DatepickerViewsDays() { !isDateInRange(currentDate, minDate, maxDate) || (filterDate && !filterDate(currentDate, Views.Days)); const isToday = isDateToday(currentDate); + // ✅ Logic: Check if the date belongs to the currently displayed month + const isOutOfMonth = currentDate.getMonth() !== viewDate.getMonth(); + return (