import type { LucideIcon, icons } from "lucide-react" import type { ComponentType, SVGAttributes } from "react" export type LayoutType = "vertical" | "horizontal" export type ModeType = "light" | "dark" | "system" export type OrientationType = "vertical" | "horizontal" export type DirectionType = "ltr" | "rtl" export type LocaleType = "de" | "en" export type ThemeType = string export type RadiusType = number export type SettingsType = { theme: ThemeType mode: ModeType radius: RadiusType layout: LayoutType locale: LocaleType } export interface IconProps extends SVGAttributes { children?: never color?: string } export type IconType = ComponentType | LucideIcon export type DynamicIconNameType = keyof typeof icons export interface UserType { id: string firstName: string lastName: string name: string username: string role: string avatar: string background: string status: string phoneNumber: string email: string state: string country: string address: string zipCode: string language: string timeZone: string currency: string organization: string twoFactorAuth: boolean loginAlerts: boolean accountReoveryOption?: "email" | "sms" | "codes" connections: number followers: number } export interface NavigationType { title: string items: NavigationRootItem[] } export type NavigationRootItem = | NavigationRootItemWithHrefType | NavigationRootItemWithItemsType export interface NavigationRootItemBasicType { title: string label?: string iconName: DynamicIconNameType } export interface NavigationRootItemWithHrefType extends NavigationRootItemBasicType { href: string items?: never } export interface NavigationRootItemWithItemsType extends NavigationRootItemBasicType { items: ( | NavigationNestedItemWithHrefType | NavigationNestedItemWithItemsType )[] href?: never } export interface NavigationNestedItemBasicType { title: string label?: string } export interface NavigationNestedItemWithHrefType extends NavigationNestedItemBasicType { href: string items?: never } export interface NavigationNestedItemWithItemsType extends NavigationNestedItemBasicType { items: ( | NavigationNestedItemWithHrefType | NavigationNestedItemWithItemsType )[] href?: never } export type NavigationNestedItem = | NavigationNestedItemWithHrefType | NavigationNestedItemWithItemsType