// begin Alert.tsx export type MessageType = "info" | "danger" | "success" | "warning" | "dark"; export interface AlertProps { children: React.ReactNode; type?: "info" | "danger" | "success" | "warning" | "dark"; message?: string; } // begin Button.tsx export interface ButtonProps extends ButtonHTMLAttributes { children: React.ReactNode; extra?: string; active?: boolean; } // begin Route export interface Route { id: number; path: string; name: string; } // begin MobileMenu.tsx export interface MobileMenuProps { isOpen: boolean; toggleMenu: () => void; routes: Route[]; } // begin MobileMenuButton.tsx export interface MobileMenuButtonProps { isOpen: boolean; onClick: () => void; } // begin NavbarLink.tsx import { NavLinkProps } from "react-router-dom"; export interface NavbarLinkProps { to: string; children: React.ReactNode; onClick?: () => void; } export interface NavData { isActive: boolean; isPending: boolean; } // begin ListTutorial.tsx import React, { ButtonHTMLAttributes, Component, Dispatch, InputHTMLAttributes, ReactNode, SetStateAction, } from "react"; export type TutorialList = { id: number; name: string }[]; export interface ListTutorialsProps { tutorialList: TutorialList; activeTutorial: number; setActiveTutorial: SetStateAction; } export type LearnProps = { activeTutorial: number; tutorialList: TutorialList; }; // begin TypeWriter.tsx export interface TypewriterProps { text: string; speed?: number; // سرعت تایپ در میلی‌ثانیه } export interface ButtonListProps { ProductsList: { id: number; title: string }[]; activeId: number; setActiveId: SetStateAction; } export interface ProductBoxProps { title: string; space: number; users: number; price: string; btnText: string; variant: number; } export interface InputProps extends InputHTMLAttributes { label?: string; id?: string; type: string; name?: string; placeholder?: string; labelStyle?: string; extra?: string; } export interface MuiModalProps { isOpenModal: boolean; setIsOpenModal: SetStateAction; title?: string; nameService?: string; submitText: string; submitOnClick?: () => void; children: React.ReactNode; } export interface ConfigItemProps { dateBuy: string; configName: string; isDisabled: boolean; } // نوع Item برای آیتم‌های داخل Dropdown export interface DropdownItem { label: string; value: string; onClick: () => void; } export interface DropdownProps { isOpen: boolean; setIsOpen: Dispatch>; children: ReactNode | ReactNode[]; } export interface ProgressSpaceProps { startSpace: number; endSpace: number | "ultimate"; }