export type DeepPartial = T extends object ? { [K in keyof T]?: DeepPartial; } : T; export type RemoveIndexSignature = { [K in keyof T as string extends K ? never : K]: T[K]; }; export type DynamicStringEnum = T | (string & {}); export type DynamicStringEnumKeysOf = DynamicStringEnum>; export type DeepPartialOf = T extends object ? { [K in keyof T]?: DeepPartialOf; } | V : V; export type DeepPartialBoolean = DeepPartialOf; export type ApplyTheme = "merge" | "replace"; export type DeepPartialApplyTheme = DeepPartialOf; export interface ThemingProps { /** * Partial theme object to merge (or replace, see `applyTheme` prop) with default theme * * @link https://flowbite-react.com/docs/customize/theme * @default undefined */ theme?: DeepPartial; /** * Indicates which theme properties should be cleared * * `boolean` | partial `theme` structure of `boolean` * * @link https://flowbite-react.com/docs/customize/theme * @default undefined */ clearTheme?: DeepPartialBoolean; /** * Specifies how theme properties should be applied/merged * * `"merge"` | `"replace"` | partial `theme` structure of `"merge"` | `"replace"` * * @link https://flowbite-react.com/docs/customize/theme * @default "merge" */ applyTheme?: DeepPartialApplyTheme; } export type WithoutThemingProps = Omit>; export interface FlowbiteBoolean { off: string; on: string; } export interface FlowbiteStateColors { info: string; failure: string; success: string; warning: string; } export interface FlowbiteColors extends FlowbiteStateColors { [key: string]: string; blue: string; cyan: string; dark: string; gray: string; green: string; indigo: string; light: string; lime: string; pink: string; purple: string; red: string; teal: string; yellow: string; } export type FlowbiteHeadingLevel = "h1" | "h2" | "h3" | "h4" | "h5" | "h6"; export interface FlowbitePositions { "bottom-left": string; "bottom-right": string; "bottom-center": string; "top-left": string; "top-center": string; "top-right": string; "center-left": string; center: string; "center-right": string; } export interface FlowbiteSizes { xs: string; sm: string; md: string; lg: string; xl: string; "2xl": string; "3xl": string; "4xl": string; "5xl": string; "6xl": string; "7xl": string; } export interface FlowbiteTheme { accordion: import("../components/Accordion").AccordionTheme; alert: import("../components/Alert").AlertTheme; avatar: import("../components/Avatar").AvatarTheme; badge: import("../components/Badge").BadgeTheme; blockquote: import("../components/Blockquote").BlockquoteTheme; breadcrumb: import("../components/Breadcrumb").BreadcrumbTheme; button: import("../components/Button").ButtonTheme; buttonGroup: import("../components/Button").ButtonGroupTheme; card: import("../components/Card").CardTheme; carousel: import("../components/Carousel").CarouselTheme; checkbox: import("../components/Checkbox").CheckboxTheme; clipboard: import("../components/Clipboard").ClipboardTheme; darkThemeToggle: import("../components/DarkThemeToggle").DarkThemeToggleTheme; datepicker: import("../components/Datepicker").DatepickerTheme; drawer: import("../components/Drawer").DrawerTheme; dropdown: import("../components/Dropdown").DropdownTheme; fileInput: import("../components/FileInput").FileInputTheme; floatingLabel: import("../components/FloatingLabel").FloatingLabelTheme; footer: import("../components/Footer").FooterTheme; helperText: import("../components/HelperText").HelperTextTheme; hr: import("../components/HR").HRTheme; kbd: import("../components/Kbd").KbdTheme; label: import("../components/Label").LabelTheme; list: import("../components/List").ListTheme; listGroup: import("../components/ListGroup").ListGroupTheme; megaMenu: import("../components/MegaMenu").MegaMenuTheme; modal: import("../components/Modal").ModalTheme; navbar: import("../components/Navbar").NavbarTheme; pagination: import("../components/Pagination").PaginationTheme; popover: import("../components/Popover").PopoverTheme; progress: import("../components/Progress").ProgressTheme; radio: import("../components/Radio").RadioTheme; rangeSlider: import("../components/RangeSlider").RangeSliderTheme; rating: import("../components/Rating").RatingTheme; ratingAdvanced: import("../components/Rating").RatingAdvancedTheme; select: import("../components/Select").SelectTheme; sidebar: import("../components/Sidebar").SidebarTheme; spinner: import("../components/Spinner").SpinnerTheme; table: import("../components/Table").TableTheme; tabs: import("../components/Tabs").TabsTheme; textarea: import("../components/Textarea").TextareaTheme; textInput: import("../components/TextInput").TextInputTheme; timeline: import("../components/Timeline").TimelineTheme; toast: import("../components/Toast").ToastTheme; toggleSwitch: import("../components/ToggleSwitch").ToggleSwitchTheme; tooltip: import("../components/Tooltip").TooltipTheme; } export type CustomFlowbiteTheme = DeepPartial; export interface FlowbiteProps { accordion: Partial>; accordionContent: Partial>; accordionTitle: Partial>; alert: Partial>; avatar: Partial>; avatarGroup: Partial>; avatarGroupCounter: Partial>; badge: Partial>; banner: Partial>; bannerCollapseButton: Partial>; blockquote: Partial>; breadcrumb: Partial>; breadcrumbItem: Partial>; button: Partial>; buttonGroup: Partial>; card: Partial>; carousel: Partial>; checkbox: Partial>; clipboard: Partial>; clipboardWithIcon: Partial>; clipboardWithIconText: Partial>; darkThemeToggle: Partial>; datepicker: Partial>; drawer: Partial>; drawerHeader: Partial>; drawerItems: Partial>; dropdown: Partial>; dropdownDivider: Partial>; dropdownHeader: Partial>; dropdownItem: Partial>; fileInput: Partial>; floatingLabel: Partial>; footer: Partial>; footerBrand: Partial>; footerCopyright: Partial>; footerDivider: Partial>; footerIcon: Partial>; footerLink: Partial>; footerLinkGroup: Partial>; footerTitle: Partial>; helperText: Partial>; hr: Partial>; hrIcon: Partial>; hrSquare: Partial>; hrText: Partial>; hrTrimmed: Partial>; kbd: Partial>; label: Partial>; list: Partial>; listGroup: Partial>; listGroupItem: Partial>; listItem: Partial>; megaMenu: Partial>; megaMenuDropdown: Partial>; megaMenuDropdownToggle: Partial>; modal: Partial>; modalBody: Partial>; modalFooter: Partial>; modalHeader: Partial>; navbar: Partial>; navbarBrand: Partial>; navbarCollapse: Partial>; navbarLink: Partial>; navbarToggle: Partial>; pagination: Partial>; popover: Partial>; progress: Partial>; radio: Partial>; rangeSlider: Partial>; rating: Partial>; ratingAdvanced: Partial>; ratingStar: Partial>; select: Partial>; sidebar: Partial>; sidebarCollapse: Partial>; sidebarCTA: Partial>; sidebarItem: Partial>; sidebarItemGroup: Partial>; sidebarItems: Partial>; sidebarLogo: Partial>; spinner: Partial>; tabItem: Partial>; table: Partial>; tableBody: Partial>; tableCell: Partial>; tableHead: Partial>; tableHeadCell: Partial>; tableRow: Partial>; tabs: Partial>; textarea: Partial>; textInput: Partial>; timeline: Partial>; timelineBody: Partial>; timelineContent: Partial>; timelineItem: Partial>; timelinePoint: Partial>; timelineTime: Partial>; timelineTitle: Partial>; toast: Partial>; toastToggle: Partial>; toggleSwitch: Partial>; tooltip: Partial>; }