@mamrp/components 1.3.2 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../react-shim.js","../../src/date-pickers/date-range-picker/index.tsx"],"sourcesContent":["import * as React from \"react\";\nexport { React };\n","/**\n * DateRangePicker - کامپوننت پیشرفته انتخاب بازه تاریخ شمسی\n *\n * یک کامپوننت کامل و حرفه‌ای برای انتخاب بازه تاریخ با پشتیبانی از تقویم فارسی/شمسی\n * این کامپوننت از کتابخانه‌های MUI، moment-jalaali و react-icons استفاده می‌کند\n *\n * @version 3.0.0\n * @author Frontend Team\n * @since 2024\n * @updated October 2025\n *\n * ویژگی‌های کلیدی:\n * ✅ پشتیبانی کامل از تقویم شمسی (فارسی)\n * ✅ انتخاب بازه تاریخ با نمایش visual و range highlighting\n * ✅ Responsive design - سازگار با موبایل و دسکتاپ (breakpoint: 700px)\n * ✅ سه حالت نمایش: تقویم popup، DatePicker جداگانه، یا تک/دوتایی\n * ✅ تب‌های هوشمند: حالت خودکار و دستی برای انتخاب تاریخ\n * ✅ آیکون‌های حرفه‌ای React Icons در تمام بخش‌ها\n * ✅ آیکون پاک کردن در input با UX بهبود یافته\n * ✅ سفارشی‌سازی کامل استایل و رنگ‌بندی\n * ✅ پشتیبانی از validation با React Hook Form\n * ✅ قابلیت تنظیم محدوده تاریخ (min/max)\n * ✅ حالت loading و disabled\n * ✅ چندین حالت text alignment (left, center, right)\n * ✅ لیست ماه‌ها به صورت 3 ستونی با CSS Grid\n * ✅ هایلایت روزهای جمعه، امروز و بازه انتخاب شده\n * ✅ انیمیشن و hover effects\n * ✅ تغییر خودکار تب در حالت دستی\n * ✅ عدم بسته شدن پنجره بعد از پاک کردن\n * ✅ راهنمای هوشمند برای کاربر\n *\n * نحوه استفاده:\n * ```tsx\n * import DateRangePicker from './components/date-range-picker';\n * import { useForm } from 'react-hook-form';\n *\n * const MyComponent = () => {\n * const { control } = useForm();\n *\n * return (\n * <DateRangePicker\n * fromDate=\"startDate\"\n * toDate=\"endDate\"\n * control={control}\n * label=\"انتخاب بازه تاریخ\"\n * persian={true}\n * align=\"center\"\n * clear={true}\n * dualCalendar={false} // جدید: کنترل تقویم دوم\n * singleCalendar={false}\n * useMobilePickers={false}\n * />\n * );\n * };\n * ```\n *\n * مثال‌های مختلف:\n *\n * 1. حالت پایه (پیش‌فرض - تک تقویم با تب‌های هوشمند):\n * ```tsx\n * <DateRangePicker\n * fromDate=\"from\"\n * toDate=\"to\"\n * control={control}\n * />\n * ```\n *\n * 2. فعال کردن تقویم دوم:\n * ```tsx\n * <DateRangePicker\n * fromDate=\"from\"\n * toDate=\"to\"\n * control={control}\n * dualCalendar={true} // تقویم دوم فعال می‌شود\n * />\n * ```\n *\n * 3. تک تقویم بدون تب‌های هوشمند:\n * ```tsx\n * <DateRangePicker\n * fromDate=\"from\"\n * toDate=\"to\"\n * control={control}\n * singleCalendar={true}\n * />\n * ```\n *\n * 4. حالت DatePicker جداگانه:\n * ```tsx\n * <DateRangePicker\n * fromDate=\"from\"\n * toDate=\"to\"\n * control={control}\n * useMobilePickers={true}\n * />\n * ```\n *\n * 5. با محدودیت تاریخ و سفارشی‌سازی:\n * ```tsx\n * <DateRangePicker\n * fromDate=\"from\"\n * toDate=\"to\"\n * control={control}\n * minDate={moment().subtract(1, 'year')}\n * maxDate={moment()}\n * label=\"بازه زمانی گزارش\"\n * size=\"small\"\n * align=\"center\"\n * dualCalendar={true}\n * />\n * ```\n *\n * ویژگی‌های تب‌های هوشمند (جدید در v3.0):\n *\n * ```tsx\n * // حالت هوشمند (پیش‌فرض): 🤖\n * // - خودکار تشخیص می‌دهد کاربر کدام تاریخ را می‌خواهد\n * // - اولین کلیک: تاریخ شروع ← تب \"تا تاریخ\" فعال\n * // - دومین کلیک: تاریخ پایان (با تشخیص ترتیب)\n * // - کلیک سوم: شروع مجدد\n *\n * // حالت دستی: 👤\n * // - کاربر خودش تب را انتخاب می‌کند\n * // - بعد از انتخاب \"از تاریخ\" ← خودکار به \"تا تاریخ\" می‌رود\n * // - بعد از انتخاب \"تا تاریخ\" ← خودکار به \"از تاریخ\" برمی‌گردد\n * ```\n *\n * آیکون‌های استفاده شده (React Icons):\n *\n * ```tsx\n * // Input Icons:\n * MdCalendarToday // آیکون تقویم\n * MdClear // آیکون پاک کردن\n *\n * // Tab Icons:\n * MdSmartToy // حالت هوشمند\n * MdPerson // حالت دستی\n * MdDateRange // از تاریخ\n * MdEvent // تا تاریخ\n *\n * // Guide Icons:\n * MdGpsFixed // راهنمای انتخاب\n * MdCheckCircle // تأیید انتخاب\n * ```\n *\n * @interface DateRangePickerProps\n * @property {string} fromDate - نام فیلد تاریخ شروع در form\n * @property {string} toDate - نام فیلد تاریخ پایان در form\n * @property {Control<any>} control - React Hook Form control object\n * @property {DateView[]} [fromViews] - نماهای قابل نمایش برای تاریخ شروع (پیش‌فرض: [\"year\", \"month\", \"day\"])\n * @property {DateView} [fromOpenTo] - نمای ابتدایی برای تاریخ شروع (پیش‌فرض: \"day\")\n * @property {DateView[]} [toViews] - نماهای قابل نمایش برای تاریخ پایان (پیش‌فرض: [\"year\", \"month\", \"day\"])\n * @property {DateView} [toOpenTo] - نمای ابتدایی برای تاریخ پایان (پیش‌فرض: \"day\")\n * @property {string} [label] - برچسب فیلد (پیش‌فرض: \"انتخاب بازه\")\n * @property {\"small\" | \"medium\"} [size] - اندازه فیلد (پیش‌فرض: \"medium\")\n * @property {boolean} [disabled] - غیرفعال کردن کامپوننت (پیش‌فرض: false)\n * @property {boolean} [persian] - استفاده از تاریخ فارسی (پیش‌فرض: true)\n * @property {\"right\" | \"center\" | \"left\"} [align] - تراز متن (پیش‌فرض: \"left\")\n * @property {boolean} [isLoading] - نمایش حالت loading (پیش‌فرض: false)\n * @property {Moment} [minDate] - حداقل تاریخ قابل انتخاب\n * @property {Moment} [maxDate] - حداکثر تاریخ قابل انتخاب\n * @property {boolean} [clear] - نمایش دکمه پاک کردن (پیش‌فرض: true)\n * @property {boolean} [singleCalendar] - نمایش تک تقویم بدون تب‌ها (پیش‌فرض: false)\n * @property {boolean} [useMobilePickers] - استفاده از DatePicker جداگانه (پیش‌فرض: false)\n * @property {boolean} [dualCalendar] - فعال‌سازی تقویم دوم (پیش‌فرض: false)\n *\n * منطق نمایش تقویم‌ها:\n * - اگر dualCalendar = true ← دو تقویم کنار هم\n * - اگر singleCalendar = true ← تک تقویم بدون تب\n * - اگر useMobilePickers = true ← دو DatePicker جداگانه\n * - پیش‌فرض ← تک تقویم با تب‌های هوشمند\n *\n * نکات مهم:\n * - کامپوننت خودکار mobile detection دارد (breakpoint: 700px)\n * - در حالت موبایل، تقویم‌ها responsive می‌شوند\n * - فرمت خروجی همیشه \"YYYY-MM-DD\" است\n * - روزهای جمعه با رنگ قرمز نمایش داده می‌شوند\n * - امکان انتخاب بازه با کلیک و visual feedback وجود دارد\n * - validation errors از React Hook Form پشتیبانی می‌شود\n * - آیکون پاک کردن فقط در صورت وجود تاریخ نمایش داده می‌شود\n * - پاک کردن از داخل popup، پنجره را نمی‌بندد\n * - پاک کردن از input icon، پنجره را باز نمی‌کند\n *\n * Dependencies:\n * - @mui/material\n * - @mui/x-date-pickers\n * - @mui/x-date-pickers/AdapterMomentJalaali\n * - moment-jalaali\n * - react-hook-form\n * - react-icons/md\n *\n * @example\n * // استفاده در فرم با تمام قابلیت‌ها\n * const form = useForm({\n * defaultValues: {\n * startDate: '',\n * endDate: ''\n * }\n * });\n *\n * // حالت پیش‌فرض با تب‌های هوشمند\n * <DateRangePicker\n * fromDate=\"startDate\"\n * toDate=\"endDate\"\n * control={form.control}\n * label=\"انتخاب دوره زمانی\"\n * />\n *\n * // حالت dual calendar\n * <DateRangePicker\n * fromDate=\"startDate\"\n * toDate=\"endDate\"\n * control={form.control}\n * dualCalendar={true}\n * label=\"انتخاب بازه با دو تقویم\"\n * />\n */\n\n\"use client\";\nimport React, { useState, useEffect } from \"react\";\nimport {\n Box,\n Typography,\n CircularProgress,\n Popover,\n TextField,\n Button,\n useMediaQuery,\n IconButton,\n} from \"@mui/material\";\nimport {\n MdClear,\n MdCalendarToday,\n MdDateRange,\n MdEvent,\n MdSmartToy,\n MdPerson,\n MdGpsFixed,\n MdCheckCircle,\n MdTipsAndUpdates,\n} from \"react-icons/md\";\nimport { Control, useController } from \"react-hook-form\";\nimport {\n StaticDatePicker,\n MobileDatePicker,\n DatePicker,\n PickersDay,\n PickersDayProps,\n LocalizationProvider,\n DateView,\n} from \"@mui/x-date-pickers\";\nimport { AdapterMomentJalaali } from \"@mui/x-date-pickers/AdapterMomentJalaali\";\nimport moment, { Moment } from \"moment-jalaali\";\nimport { string } from \"yup\";\n\nmoment.locale(\"fa\");\nmoment.loadPersian({ dialect: \"persian-modern\", usePersianDigits: true });\n\ninterface DateRangePickerProps {\n fromDate: string;\n toDate: string;\n fromViews?: DateView[] | undefined;\n fromOpenTo?: DateView | undefined;\n toViews?: DateView[] | undefined;\n toOpenTo?: DateView | undefined;\n control: Control<any>;\n label?: string;\n size?: \"small\" | \"medium\";\n disabled?: boolean;\n persian?: boolean;\n align?: \"right\" | \"center\" | \"left\";\n isLoading?: boolean;\n minDate?: Moment;\n maxDate?: Moment;\n clear?: boolean;\n singleCalendar?: boolean; // Controls single calendar display on desktop (mobile always shows single calendar)\n useMobilePickers?: boolean; // Use mobile-style DatePicker inputs instead of calendar popup\n dualCalendar?: boolean; // Enable dual calendar mode (default: false)\n}\n\n/**\n * DateRangePicker - کامپوننت انتخاب بازه تاریخ شمسی\n *\n * یک کامپوننت پیشرفته و کامل برای انتخاب بازه تاریخ با پشتیبانی از تقویم فارسی/شمسی\n * این کامپوننت از کتابخانه‌های MUI و moment-jalaali استفاده می‌کند\n *\n * @version 2.0.0\n * @author Frontend MAMRP Team\n * @since 2024\n *\n *\n * نحوه استفاده:\n * ```tsx\n * import DateRangePicker from './components/date-range-picker';\n * import { useForm } from 'react-hook-form';\n *\n * const MyComponent = () => {\n * const { control } = useForm();\n *\n * return (\n * <DateRangePicker\n * fromDate=\"startDate\"\n * toDate=\"endDate\"\n * control={control}\n * label=\"انتخاب بازه تاریخ\"\n * persian={true}\n * align=\"center\"\n * clear={true}\n * singleCalendar={false}\n * useMobilePickers={false}\n * />\n * );\n * };\n * ```\n *\n * مثال‌های مختلف:\n *\n * 1. حالت پایه:\n * ```tsx\n * <DateRangePicker\n * fromDate=\"from\"\n * toDate=\"to\"\n * control={control}\n * />\n * ```\n *\n * 2. با تک تقویم:\n * ```tsx\n * <DateRangePicker\n * fromDate=\"from\"\n * toDate=\"to\"\n * control={control}\n * singleCalendar={true}\n * />\n * ```\n *\n * 3. با DatePicker جداگانه:\n * ```tsx\n * <DateRangePicker\n * fromDate=\"from\"\n * toDate=\"to\"\n * control={control}\n * useMobilePickers={true}\n * />\n * ```\n *\n * 4. با محدودیت تاریخ:\n * ```tsx\n * <DateRangePicker\n * fromDate=\"from\"\n * toDate=\"to\"\n * control={control}\n * minDate={moment().subtract(1, 'year')}\n * maxDate={moment()}\n * />\n * ```\n *\n * 5. سفارشی‌سازی کامل:\n * ```tsx\n * <DateRangePicker\n * fromDate=\"startDate\"\n * toDate=\"endDate\"\n * control={control}\n * label=\"بازه زمانی گزارش\"\n * size=\"small\"\n * align=\"center\"\n * persian={true}\n * clear={true}\n * disabled={false}\n * isLoading={false}\n * singleCalendar={false}\n * useMobilePickers={false}\n * fromViews={[\"year\", \"month\", \"day\"]}\n * fromOpenTo=\"day\"\n * toViews={[\"year\", \"month\", \"day\"]}\n * toOpenTo=\"day\"\n * />\n * ```\n *\n * @interface DateRangePickerProps\n * @property {string} fromDate - نام فیلد تاریخ شروع در form\n * @property {string} toDate - نام فیلد تاریخ پایان در form\n * @property {Control<any>} control - React Hook Form control object\n * @property {DateView[]} [fromViews] - نماهای قابل نمایش برای تاریخ شروع (پیش‌فرض: [\"year\", \"month\", \"day\"])\n * @property {DateView} [fromOpenTo] - نمای ابتدایی برای تاریخ شروع (پیش‌فرض: \"day\")\n * @property {DateView[]} [toViews] - نماهای قابل نمایش برای تاریخ پایان (پیش‌فرض: [\"year\", \"month\", \"day\"])\n * @property {DateView} [toOpenTo] - نمای ابتدایی برای تاریخ پایان (پیش‌فرض: \"day\")\n * @property {string} [label] - برچسب فیلد (پیش‌فرض: \"انتخاب بازه\")\n * @property {\"small\" | \"medium\"} [size] - اندازه فیلد (پیش‌فرض: \"medium\")\n * @property {boolean} [disabled] - غیرفعال کردن کامپوننت (پیش‌فرض: false)\n * @property {boolean} [persian] - استفاده از تاریخ فارسی (پیش‌فرض: true)\n * @property {\"right\" | \"center\" | \"left\"} [align] - تراز متن (پیش‌فرض: \"left\")\n * @property {boolean} [isLoading] - نمایش حالت loading (پیش‌فرض: false)\n * @property {Moment} [minDate] - حداقل تاریخ قابل انتخاب\n * @property {Moment} [maxDate] - حداکثر تاریخ قابل انتخاب\n * @property {boolean} [clear] - نمایش دکمه پاک کردن (پیش‌فرض: true)\n * @property {boolean} [singleCalendar] - نمایش تک تقویم به جای دوتایی (پیش‌فرض: false)\n * @property {boolean} [useMobilePickers] - استفاده از DatePicker جداگانه به جای popup (پیش‌فرض: false)\n *\n * نکات مهم:\n * - کامپوننت خودکار mobile detection دارد (breakpoint: 700px)\n * - در حالت موبایل، تقویم‌ها responsive می‌شوند\n * - فرمت خروجی همیشه \"YYYY-MM-DD\" است\n * - روزهای جمعه با رنگ قرمز نمایش داده می‌شوند\n * - امکان انتخاب بازه با کلیک و drag وجود دارد\n * - validation errors از React Hook Form پشتیبانی می‌شود\n *\n *\n * @example\n * // استفاده در فرم ساده\n * const form = useForm({\n * defaultValues: {\n * startDate: '',\n * endDate: ''\n * }\n * });\n *\n * <DateRangePicker\n * fromDate=\"startDate\"\n * toDate=\"endDate\"\n * control={form.control}\n * label=\"انتخاب دوره زمانی\"\n * />\n */\n\nconst DateRangePicker: React.FC<DateRangePickerProps> = ({\n fromDate,\n toDate,\n fromViews = [\"year\", \"month\", \"day\"],\n fromOpenTo = \"day\",\n toViews = [\"year\", \"month\", \"day\"],\n toOpenTo = \"day\",\n control,\n label = \"انتخاب بازه\",\n size = \"medium\",\n disabled = false,\n persian = true,\n align = \"left\",\n isLoading = false,\n minDate,\n maxDate,\n clear = true,\n singleCalendar = false, // Default to dual calendars on desktop\n useMobilePickers = false, // Default to calendar popup style\n dualCalendar = false, // Default to single calendar with smart tabs\n}) => {\n const [open, setOpen] = useState(false);\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n const [tempStartDate, setTempStartDate] = useState<Moment | null>(null);\n const [tempEndDate, setTempEndDate] = useState<Moment | null>(null);\n const [secondCalendarMonth, setSecondCalendarMonth] =\n useState<Moment>(moment());\n\n // Smart tabs state for single calendar mode\n const [activeTab, setActiveTab] = useState<\"from\" | \"to\">(\"from\");\n const [autoSelectMode, setAutoSelectMode] = useState(true); // Auto detect which date to select\n\n // Mobile detection hook\n const isMobile = useMediaQuery(\"(max-width:700px)\");\n\n // Determine if we should show single calendar (mobile or prop-controlled)\n const showSingleCalendar = isMobile || singleCalendar || !dualCalendar;\n\n // استفاده از useController برای هر دو فیلد\n const {\n field: fieldFrom,\n fieldState: { error: errorFrom },\n } = useController({ name: fromDate, control });\n\n const {\n field: fieldTo,\n fieldState: { error: errorTo },\n } = useController({ name: toDate, control });\n\n const handleOpen = (event: React.MouseEvent<HTMLElement>) => {\n if (!disabled && !isLoading) {\n setAnchorEl(event.currentTarget);\n setOpen(true);\n }\n };\n\n const handleClose = () => {\n setOpen(false);\n setTempStartDate(null);\n setTempEndDate(null);\n };\n\n // بارگذاری مقادیر موجود هنگام باز شدن\n useEffect(() => {\n if (open) {\n if (fieldFrom.value) {\n setTempStartDate(moment(fieldFrom.value));\n setSecondCalendarMonth(moment(fieldFrom.value));\n } else {\n setSecondCalendarMonth(moment());\n }\n if (fieldTo.value) {\n setTempEndDate(moment(fieldTo.value));\n }\n }\n }, [open, fieldFrom.value, fieldTo.value]);\n\n const handleDaySelect = (day: Moment, calendarSide: \"right\" | \"left\") => {\n // Smart tab mode for single calendar\n if (!dualCalendar && showSingleCalendar) {\n if (autoSelectMode) {\n // Auto mode: smart detection\n if (!tempStartDate && !tempEndDate) {\n setTempStartDate(day);\n setActiveTab(\"to\");\n } else if (tempStartDate && !tempEndDate) {\n if (day.isBefore(tempStartDate)) {\n setTempEndDate(tempStartDate);\n setTempStartDate(day);\n } else {\n setTempEndDate(day);\n }\n } else if (!tempStartDate && tempEndDate) {\n if (day.isAfter(tempEndDate)) {\n setTempStartDate(tempEndDate);\n setTempEndDate(day);\n } else {\n setTempStartDate(day);\n }\n } else {\n // Both dates exist, restart\n setTempStartDate(day);\n setTempEndDate(null);\n setActiveTab(\"to\");\n }\n } else {\n // Manual tab mode with auto switch\n if (activeTab === \"from\") {\n setTempStartDate(day);\n setActiveTab(\"to\"); // Auto switch to 'to' tab\n } else {\n setTempEndDate(day);\n setActiveTab(\"from\"); // Auto switch to 'from' tab\n }\n }\n } else {\n // Original dual calendar logic\n if (!tempStartDate && !tempEndDate) {\n if (calendarSide === \"right\") {\n setTempStartDate(day);\n } else {\n setTempEndDate(day);\n }\n } else if (tempStartDate && tempEndDate) {\n setTempStartDate(day);\n setTempEndDate(null);\n } else if (tempStartDate && !tempEndDate) {\n if (day.isBefore(tempStartDate)) {\n setTempEndDate(tempStartDate);\n setTempStartDate(day);\n } else {\n setTempEndDate(day);\n }\n } else if (!tempStartDate && tempEndDate) {\n if (day.isAfter(tempEndDate)) {\n setTempStartDate(tempEndDate);\n setTempEndDate(day);\n } else {\n setTempStartDate(day);\n }\n }\n }\n };\n\n const handleConfirm = () => {\n if (tempStartDate) {\n fieldFrom.onChange(tempStartDate.locale(\"en\").format(\"YYYY-MM-DD\"));\n }\n if (tempEndDate) {\n fieldTo.onChange(tempEndDate.locale(\"en\").format(\"YYYY-MM-DD\"));\n }\n setOpen(false);\n setTempStartDate(null);\n setTempEndDate(null);\n };\n\n const handleClear = () => {\n fieldFrom.onChange(null);\n fieldTo.onChange(null);\n setTempStartDate(null);\n setTempEndDate(null);\n setActiveTab(\"from\"); // Reset to start tab\n // Keep popover open - don't call setOpen(false)\n };\n\n // Separate function for clearing from input icon\n const handleInputClear = (event: React.MouseEvent) => {\n event.stopPropagation(); // Prevent opening popover\n fieldFrom.onChange(null);\n fieldTo.onChange(null);\n setTempStartDate(null);\n setTempEndDate(null);\n setActiveTab(\"from\");\n };\n\n const displayValue = () => {\n const start = fieldFrom.value ? moment(fieldFrom.value) : null;\n const end = fieldTo.value ? moment(fieldTo.value) : null;\n\n if (start && end) {\n return persian\n ? `${end.format(\"jYYYY/jMM/jDD\")} - ${start.format(\"jYYYY/jMM/jDD\")}`\n : `${end.format(\"YYYY/MM/DD\")} - ${start.format(\"YYYY/MM/DD\")}`;\n } else if (start) {\n return persian\n ? \"از تاریخ\" + \" \" + start.format(\"jYYYY/jMM/jDD\")\n : start.format(\"YYYY/MM/DD\");\n } else if (end) {\n return persian\n ? \"تا تاریخ\" + \" \" + end.format(\"jYYYY/jMM/jDD\")\n : end.format(\"YYYY/MM/DD\");\n }\n return \"\";\n };\n\n const error = errorFrom || errorTo;\n\n const customLocaleText = {\n cancelButtonLabel: \"لغو\",\n okButtonLabel: \"تأیید\",\n todayButtonLabel: \"امروز\",\n clearButtonLabel: \"پاک کردن\",\n };\n\n return (\n <LocalizationProvider\n dateAdapter={AdapterMomentJalaali}\n localeText={customLocaleText}\n >\n <Box sx={{ width: \"100%\" }}>\n <TextField\n label={label}\n size={size}\n fullWidth\n value={displayValue()}\n onClick={handleOpen}\n disabled={disabled || isLoading}\n placeholder=\"انتخاب بازه تاریخ\"\n error={!!error}\n InputLabelProps={{\n shrink: true,\n }}\n InputProps={{\n readOnly: true,\n sx: {\n textAlign: align,\n direction: \"ltr\",\n cursor: disabled ? \"default\" : \"pointer\",\n \"& input\": {\n textAlign: align,\n },\n },\n endAdornment: (\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: 0.5 }}>\n {/* Clear Icon */}\n {(fieldFrom.value || fieldTo.value) &&\n !disabled &&\n !isLoading && (\n <IconButton\n size=\"small\"\n onClick={handleInputClear}\n sx={{\n padding: \"4px\",\n color: \"text.secondary\",\n \"&:hover\": {\n color: \"error.main\",\n backgroundColor: \"rgba(244, 67, 54, 0.08)\",\n },\n }}\n >\n <MdClear size={16} />\n </IconButton>\n )}\n\n {/* Loading Indicator */}\n {isLoading && <CircularProgress size={20} color=\"secondary\" />}\n </Box>\n ),\n }}\n sx={{\n \"& .MuiOutlinedInput-root\": {\n height: size === \"small\" ? 40 : 56,\n },\n }}\n />\n\n {error && (\n <Typography fontSize={13} color=\"error\" sx={{ mt: 0.6, ml: 1 }}>\n {error.message}\n </Typography>\n )}\n\n <Popover\n open={open}\n anchorEl={anchorEl}\n onClose={handleClose}\n anchorOrigin={{\n vertical: \"bottom\",\n horizontal: \"left\",\n }}\n transformOrigin={{\n vertical: \"top\",\n horizontal: \"left\",\n }}\n slotProps={{\n paper: {\n sx: {\n mt: 1,\n maxWidth: isMobile ? \"95vw\" : \"auto\",\n width: isMobile ? \"auto\" : \"auto\",\n maxHeight: isMobile ? \"90vh\" : \"auto\",\n overflow: isMobile ? \"auto\" : \"visible\",\n },\n },\n }}\n >\n <Box sx={{ p: isMobile ? 1 : 2 }}>\n {/* Toolbar */}\n <Box sx={{ mb: 2 }}>\n <Typography variant=\"overline\" color=\"primary\">\n انتخاب بازه تاریخ\n </Typography>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {tempStartDate && tempEndDate\n ? `${tempStartDate.format(\"jDD jMMMM\")} تا ${tempEndDate.format(\"jDD jMMMM\")}`\n : tempStartDate\n ? `از ${tempStartDate.format(\"jDD jMMMM\")}`\n : \"تاریخ شروع و پایان را انتخاب کنید\"}\n </Typography>\n </Box>\n\n {/* Calendars - responsive layout */}\n {useMobilePickers ? (\n // Mobile-style: Use DatePicker inputs\n <Box\n sx={{\n display: \"flex\",\n flexDirection: \"column\",\n gap: 2,\n alignItems: \"center\",\n width: \"100%\",\n }}\n >\n <Box sx={{ width: \"100%\" }}>\n <Typography variant=\"body2\" sx={{ mb: 1, fontWeight: 500 }}>\n تاریخ شروع (از):\n </Typography>\n <DatePicker\n value={tempStartDate}\n onChange={(day: Moment | null) => {\n setTempStartDate(day);\n }}\n openTo={fromOpenTo}\n views={fromViews}\n minDate={minDate}\n maxDate={maxDate || moment()}\n slotProps={{\n textField: {\n fullWidth: true,\n size: \"small\",\n placeholder: \"انتخاب تاریخ شروع\",\n },\n }}\n />\n </Box>\n\n <Box sx={{ width: \"100%\" }}>\n <Typography variant=\"body2\" sx={{ mb: 1, fontWeight: 500 }}>\n تاریخ پایان (تا):\n </Typography>\n <DatePicker\n value={tempEndDate}\n onChange={(day: Moment | null) => {\n setTempEndDate(day);\n }}\n openTo={toOpenTo}\n views={toViews}\n minDate={tempStartDate || minDate}\n maxDate={maxDate || moment()}\n slotProps={{\n textField: {\n fullWidth: true,\n size: \"small\",\n placeholder: \"انتخاب تاریخ پایان\",\n },\n }}\n />\n </Box>\n </Box>\n ) : (\n // Calendar popup style: Use StaticDatePicker(s)\n <Box\n sx={{\n display: \"flex\",\n gap: showSingleCalendar ? 0 : 2,\n flexDirection: showSingleCalendar ? \"column\" : \"row\",\n alignItems: \"center\",\n }}\n >\n {/* Smart Tabs for Single Calendar */}\n {!dualCalendar && showSingleCalendar && (\n <Box sx={{ width: \"100%\", mb: 2 }}>\n {/* Auto/Manual Toggle */}\n <Box\n sx={{ display: \"flex\", justifyContent: \"center\", mb: 1 }}\n >\n <Button\n size=\"small\"\n variant={autoSelectMode ? \"contained\" : \"outlined\"}\n onClick={() => setAutoSelectMode(!autoSelectMode)}\n sx={{ fontSize: \"12px\", minWidth: \"120px\" }}\n >\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 0.5,\n }}\n >\n {autoSelectMode ? (\n <MdTipsAndUpdates size={16} />\n ) : (\n <MdPerson size={16} />\n )}\n {autoSelectMode ? \"هوشمند\" : \"دستی\"}\n </Box>\n </Button>\n </Box>\n\n {/* Date Selection Tabs */}\n {!autoSelectMode && (\n <Box\n sx={{\n display: \"flex\",\n justifyContent: \"center\",\n gap: 1,\n mb: 2,\n borderBottom: 1,\n borderColor: \"divider\",\n pb: 1,\n }}\n >\n <Button\n size=\"small\"\n variant={\n activeTab === \"from\" ? \"contained\" : \"outlined\"\n }\n onClick={() => setActiveTab(\"from\")}\n sx={{\n minWidth: \"140px\",\n fontSize: \"13px\",\n backgroundColor:\n activeTab === \"from\"\n ? \"primary.main\"\n : \"transparent\",\n color:\n activeTab === \"from\" ? \"white\" : \"primary.main\",\n }}\n >\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 0.5,\n flexDirection: \"column\",\n }}\n >\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 0.5,\n }}\n >\n <MdDateRange size={16} />\n از تاریخ\n </Box>\n {tempStartDate && (\n <Typography\n variant=\"caption\"\n sx={{ fontSize: \"10px\" }}\n >\n {tempStartDate.format(\"jYYYY/jMM/jDD\")}\n </Typography>\n )}\n </Box>\n </Button>\n\n <Button\n size=\"small\"\n variant={\n activeTab === \"to\" ? \"contained\" : \"outlined\"\n }\n onClick={() => setActiveTab(\"to\")}\n sx={{\n minWidth: \"140px\",\n fontSize: \"13px\",\n backgroundColor:\n activeTab === \"to\"\n ? \"primary.main\"\n : \"transparent\",\n color:\n activeTab === \"to\" ? \"white\" : \"primary.main\",\n }}\n >\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 0.5,\n flexDirection: \"column\",\n }}\n >\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 0.5,\n }}\n >\n <MdEvent size={16} />\n تا تاریخ\n </Box>\n {tempEndDate && (\n <Typography\n variant=\"caption\"\n sx={{ fontSize: \"10px\" }}\n >\n {tempEndDate.format(\"jYYYY/jMM/jDD\")}\n </Typography>\n )}\n </Box>\n </Button>\n </Box>\n )}\n\n {/* Auto Mode Status */}\n {autoSelectMode && (\n <Box sx={{ textAlign: \"center\", mb: 2 }}>\n <Typography\n variant=\"caption\"\n color=\"text.secondary\"\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: 0.5,\n }}\n >\n {!tempStartDate && !tempEndDate ? (\n <>\n <MdGpsFixed size={14} />\n اولین تاریخ را انتخاب کنید\n </>\n ) : tempStartDate && !tempEndDate ? (\n <>\n <MdGpsFixed size={14} />\n تاریخ پایان را انتخاب کنید\n </>\n ) : tempStartDate && tempEndDate ? (\n <>\n <MdCheckCircle size={14} />\n بازه انتخاب شده - تاریخ جدید برای شروع مجدد\n </>\n ) : (\n <>\n <MdGpsFixed size={14} />\n تاریخ شروع را انتخاب کنید\n </>\n )}\n </Typography>\n </Box>\n )}\n </Box>\n )}\n\n {/* تقویم اول */}\n <StaticDatePicker\n value={\n tempStartDate ||\n (fieldFrom.value ? moment(fieldFrom.value) : null)\n }\n onChange={(day: Moment | null) => {\n if (day) handleDaySelect(day, \"right\");\n }}\n openTo={fromOpenTo}\n views={fromViews}\n slots={{\n day: (props) =>\n CustomDay({\n ...props,\n startDate: tempStartDate,\n endDate: tempEndDate,\n }),\n actionBar: () => null,\n monthButton: (props) => {\n return (\n <button\n className={`${props.className}`}\n style={{\n width: \"100%\",\n padding: \"15px 8px\",\n border: \"1px solid #ccc\",\n borderRadius: \"8px\",\n backgroundColor: props.disabled\n ? \"#f0f0f0\"\n : \"#ffffff\",\n fontSize: \"17px\",\n cursor: props.disabled ? \"default\" : \"pointer\",\n textAlign: \"center\",\n boxSizing: \"border-box\",\n }}\n disabled={props.disabled}\n onFocus={props.onFocus}\n onBlur={props.onBlur}\n onClick={props.onClick}\n ref={props.ref}\n >\n {props[\"aria-label\"]}\n </button>\n );\n },\n }}\n minDate={minDate}\n maxDate={maxDate || moment()}\n slotProps={{\n toolbar: { hidden: true },\n layout: {\n sx: {\n \"& .MuiPickersCalendarHeader-root\": {\n minHeight: \"40px\",\n maxHeight: \"40px\",\n },\n \"& .MuiDayCalendar-header\": {\n justifyContent: \"space-around\",\n },\n \"& .MuiDayCalendar-weekContainer\": {\n justifyContent: \"space-around\",\n },\n \"& .MuiPickersDay-root\": {\n fontSize: \"0.875rem\",\n },\n \"& .MuiMonthCalendar-root\": {\n display: \"grid\",\n gridTemplateColumns: \"repeat(3, 1fr)\",\n gap: \"8px\",\n width: \"100%\",\n },\n },\n },\n }}\n sx={{\n \"& .MuiPickersLayout-contentWrapper\": {\n minWidth: showSingleCalendar ? \"300px\" : \"280px\",\n maxWidth: showSingleCalendar ? \"350px\" : \"320px\",\n },\n }}\n />\n\n {/* تقویم دوم - فقط در صورت فعال بودن dualCalendar */}\n {dualCalendar && !showSingleCalendar && (\n <StaticDatePicker\n value={secondCalendarMonth}\n onChange={(day: Moment | null) => {\n if (day) handleDaySelect(day, \"left\");\n }}\n openTo={toOpenTo}\n views={toViews}\n slots={{\n day: (props) =>\n CustomDay({\n ...props,\n startDate: tempStartDate,\n endDate: tempEndDate,\n }),\n actionBar: () => null,\n monthButton: (props) => {\n return (\n <button\n className={`${props.className}`}\n style={{\n width: \"100%\",\n padding: \"15px 8px\",\n border: \"1px solid #ccc\",\n borderRadius: \"8px\",\n backgroundColor: props.disabled\n ? \"#f0f0f0\"\n : \"#ffffff\",\n fontSize: \"17px\",\n cursor: props.disabled ? \"default\" : \"pointer\",\n textAlign: \"center\",\n boxSizing: \"border-box\",\n }}\n disabled={props.disabled}\n onFocus={props.onFocus}\n onBlur={props.onBlur}\n onClick={props.onClick}\n ref={props.ref}\n >\n {props[\"aria-label\"]}\n </button>\n );\n },\n }}\n minDate={minDate}\n maxDate={maxDate || moment()}\n slotProps={{\n toolbar: { hidden: true },\n layout: {\n sx: {\n \"& .MuiPickersCalendarHeader-root\": {\n minHeight: \"40px\",\n maxHeight: \"40px\",\n },\n \"& .MuiDayCalendar-header\": {\n justifyContent: \"space-around\",\n },\n \"& .MuiDayCalendar-weekContainer\": {\n justifyContent: \"space-around\",\n },\n \"& .MuiPickersDay-root\": {\n fontSize: \"0.875rem\",\n },\n \"& .MuiMonthCalendar-root\": {\n display: \"grid\",\n gridTemplateColumns: \"repeat(3, 1fr)\",\n gap: \"8px\",\n width: \"100%\",\n },\n },\n },\n }}\n sx={{\n \"& .MuiPickersLayout-contentWrapper\": {\n minWidth: \"280px\",\n maxWidth: \"320px\",\n },\n }}\n onMonthChange={(newMonth: Moment) => {\n setSecondCalendarMonth(newMonth);\n }}\n />\n )}\n </Box>\n )}\n\n {/* Action Buttons */}\n <Box\n sx={{\n display: \"flex\",\n justifyContent: \"space-between\",\n gap: 1,\n mt: 2,\n pt: 2,\n borderTop: 1,\n borderColor: \"divider\",\n }}\n >\n <Box>\n {clear && (\n <Button\n size=\"small\"\n onClick={handleClear}\n disabled={!fieldFrom.value && !fieldTo.value}\n >\n پاک کردن\n </Button>\n )}\n </Box>\n <Box sx={{ display: \"flex\", gap: 1 }}>\n <Button size=\"small\" onClick={handleClose}>\n لغو\n </Button>\n <Button\n variant=\"contained\"\n size=\"small\"\n onClick={handleConfirm}\n disabled={!tempStartDate && !tempEndDate}\n >\n تأیید\n </Button>\n </Box>\n </Box>\n </Box>\n </Popover>\n </Box>\n </LocalizationProvider>\n );\n};\n\n/* کامپوننت سفارشی روزها با هایلایت بین start و end */\nfunction CustomDay(\n props: PickersDayProps<Moment> & {\n startDate?: Moment | null;\n endDate?: Moment | null;\n }\n) {\n const { day, outsideCurrentMonth, startDate, endDate, ...other } = props;\n\n const isToday = moment(day).isSame(moment(), \"day\");\n const isFriday = moment(day).day() === 5;\n\n let inRange = false;\n if (startDate && endDate) {\n inRange = day.isAfter(startDate, \"day\") && day.isBefore(endDate, \"day\");\n }\n\n const isStart = startDate && day.isSame(startDate, \"day\");\n const isEnd = endDate && day.isSame(endDate, \"day\");\n const isSelected = isStart || isEnd;\n\n return (\n <PickersDay\n {...other}\n day={day}\n outsideCurrentMonth={outsideCurrentMonth}\n selected={false}\n sx={{\n borderRadius: isSelected ? \"50%\" : inRange ? \"100%\" : \"50%\",\n fontSize: \"0.9rem\",\n width: 34,\n height: 34,\n my: 0.2,\n bgcolor: isSelected\n ? \"primary.main\"\n : inRange\n ? \"rgba(25,118,210,0.12)\"\n : isToday\n ? \"rgba(25,118,210,0.08)\"\n : \"transparent\",\n color: isSelected\n ? \"#fff\"\n : isFriday\n ? \"error.main\"\n : isToday\n ? \"primary.main\"\n : outsideCurrentMonth\n ? \"text.disabled\"\n : \"text.primary\",\n fontWeight: isSelected ? 600 : isToday ? 500 : 400,\n \"&:hover\": {\n bgcolor: isSelected\n ? \"primary.dark\"\n : inRange\n ? \"rgba(25,118,210,0.2)\"\n : \"rgba(0,0,0,0.04)\",\n },\n ...(isStart &&\n endDate && {\n borderTopRightRadius: \"50%\",\n borderBottomRightRadius: \"50%\",\n }),\n ...(isEnd &&\n startDate && {\n borderTopLeftRadius: \"50%\",\n borderBottomLeftRadius: \"50%\",\n }),\n }}\n />\n );\n}\n\nexport default DateRangePicker;\n"],"mappings":"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","names":["React"]}
package/dist/index.d.mts CHANGED
@@ -16,9 +16,10 @@ interface MultipleSelectChipProps {
16
16
  disabled?: boolean;
17
17
  size?: "small" | "medium";
18
18
  clear?: boolean;
19
+ variant?: "outlined" | "filled" | "standard";
20
+ placeholder?: string;
19
21
  }
20
- declare function MultipleSelectChip({ name, control, label, data, multipleitems, //قابلیت انتخاب چند گزینه ای
21
- isLoading, disabled, size, clear, }: MultipleSelectChipProps): React.JSX.Element;
22
+ declare function MultipleSelectChip({ name, control, label, data, multipleitems, isLoading, disabled, size, clear, variant, placeholder, }: MultipleSelectChipProps): React.JSX.Element;
22
23
 
23
24
  interface AdvancedSearchButtonProps {
24
25
  isShowFilter: boolean;
@@ -272,9 +273,9 @@ type FormInputNumberProps<T extends FieldValues> = {
272
273
  onKeyDown?: any;
273
274
  textAlign?: "left" | "right" | "center";
274
275
  autoComplete?: string;
275
- borderless?: boolean;
276
+ variant?: "outlined" | "filled" | "standard";
276
277
  } & TextFieldProps;
277
- declare const FormInputNumber: <T extends FieldValues>({ name, control, label, inputRef, onKeyDown, endAdornment, thousandSeparator, startAdornment, onChangeHandler, valueHandler, allowLeadingZeros, allowNegative, maxLength, isLoading, rules, data, borderColor, placeholder, decimalScale, autoComplete, textAlign, borderless, ...rest }: FormInputNumberProps<T>) => React__default.JSX.Element;
278
+ declare const FormInputNumber: <T extends FieldValues>({ name, control, label, inputRef, onKeyDown, endAdornment, thousandSeparator, startAdornment, onChangeHandler, valueHandler, allowLeadingZeros, allowNegative, maxLength, isLoading, rules, data, borderColor, placeholder, decimalScale, autoComplete, textAlign, variant, ...rest }: FormInputNumberProps<T>) => React__default.JSX.Element;
278
279
 
279
280
  type FormInputTextProps$1<T extends FieldValues> = {
280
281
  control: Control<T>;
@@ -289,8 +290,9 @@ type FormInputTextProps$1<T extends FieldValues> = {
289
290
  isLoading?: boolean;
290
291
  onBlurHandler?: any;
291
292
  rows?: number;
293
+ variant?: "outlined" | "filled" | "standard";
292
294
  } & TextFieldProps;
293
- declare const FormInputText: <T extends FieldValues>({ name, control, label, maxLength, readOnly, rules, size, disabled, multiline, isLoading, onBlurHandler, rows, ...rest }: FormInputTextProps$1<T>) => React__default.JSX.Element;
295
+ declare const FormInputText: <T extends FieldValues>({ name, control, label, maxLength, readOnly, rules, size, disabled, multiline, isLoading, onBlurHandler, rows, variant, ...rest }: FormInputTextProps$1<T>) => React__default.JSX.Element;
294
296
 
295
297
  type FormInputTextProps<T extends FieldValues> = {
296
298
  control: Control<T>;
package/dist/index.d.ts CHANGED
@@ -16,9 +16,10 @@ interface MultipleSelectChipProps {
16
16
  disabled?: boolean;
17
17
  size?: "small" | "medium";
18
18
  clear?: boolean;
19
+ variant?: "outlined" | "filled" | "standard";
20
+ placeholder?: string;
19
21
  }
20
- declare function MultipleSelectChip({ name, control, label, data, multipleitems, //قابلیت انتخاب چند گزینه ای
21
- isLoading, disabled, size, clear, }: MultipleSelectChipProps): React.JSX.Element;
22
+ declare function MultipleSelectChip({ name, control, label, data, multipleitems, isLoading, disabled, size, clear, variant, placeholder, }: MultipleSelectChipProps): React.JSX.Element;
22
23
 
23
24
  interface AdvancedSearchButtonProps {
24
25
  isShowFilter: boolean;
@@ -272,9 +273,9 @@ type FormInputNumberProps<T extends FieldValues> = {
272
273
  onKeyDown?: any;
273
274
  textAlign?: "left" | "right" | "center";
274
275
  autoComplete?: string;
275
- borderless?: boolean;
276
+ variant?: "outlined" | "filled" | "standard";
276
277
  } & TextFieldProps;
277
- declare const FormInputNumber: <T extends FieldValues>({ name, control, label, inputRef, onKeyDown, endAdornment, thousandSeparator, startAdornment, onChangeHandler, valueHandler, allowLeadingZeros, allowNegative, maxLength, isLoading, rules, data, borderColor, placeholder, decimalScale, autoComplete, textAlign, borderless, ...rest }: FormInputNumberProps<T>) => React__default.JSX.Element;
278
+ declare const FormInputNumber: <T extends FieldValues>({ name, control, label, inputRef, onKeyDown, endAdornment, thousandSeparator, startAdornment, onChangeHandler, valueHandler, allowLeadingZeros, allowNegative, maxLength, isLoading, rules, data, borderColor, placeholder, decimalScale, autoComplete, textAlign, variant, ...rest }: FormInputNumberProps<T>) => React__default.JSX.Element;
278
279
 
279
280
  type FormInputTextProps$1<T extends FieldValues> = {
280
281
  control: Control<T>;
@@ -289,8 +290,9 @@ type FormInputTextProps$1<T extends FieldValues> = {
289
290
  isLoading?: boolean;
290
291
  onBlurHandler?: any;
291
292
  rows?: number;
293
+ variant?: "outlined" | "filled" | "standard";
292
294
  } & TextFieldProps;
293
- declare const FormInputText: <T extends FieldValues>({ name, control, label, maxLength, readOnly, rules, size, disabled, multiline, isLoading, onBlurHandler, rows, ...rest }: FormInputTextProps$1<T>) => React__default.JSX.Element;
295
+ declare const FormInputText: <T extends FieldValues>({ name, control, label, maxLength, readOnly, rules, size, disabled, multiline, isLoading, onBlurHandler, rows, variant, ...rest }: FormInputTextProps$1<T>) => React__default.JSX.Element;
294
296
 
295
297
  type FormInputTextProps<T extends FieldValues> = {
296
298
  control: Control<T>;
package/dist/index.js CHANGED
@@ -607,16 +607,16 @@ function MultipleSelectChip({
607
607
  label,
608
608
  data,
609
609
  multipleitems,
610
- //قابلیت انتخاب چند گزینه ای
611
610
  isLoading,
612
611
  disabled = false,
613
612
  size = "medium",
614
- clear = false
613
+ clear = false,
614
+ variant = "outlined",
615
+ placeholder
615
616
  }) {
616
617
  const dataOptions = data?.map((value) => ({
617
618
  title: value.userName || value.name || `${value.firstName} ${value.lastName}`,
618
619
  key: value.id || `key_${Math.random()}`,
619
- // Assuming each item has an 'id'
620
620
  httpMethod: numberToHttpMethodMapping[value.httpMethod],
621
621
  url: value.url,
622
622
  licensePlate: value.licensePlate
@@ -641,16 +641,6 @@ function MultipleSelectChip({
641
641
  onChange(value?.key || null);
642
642
  }
643
643
  };
644
- function search(option, value) {
645
- if (option.title.includes(value.title)) {
646
- return true;
647
- }
648
- if (value.title.includes(option.title)) {
649
- return true;
650
- }
651
- return false;
652
- }
653
- const CustomStyledValue = ({ children }) => /* @__PURE__ */ React3.createElement("span", { style: { color: "green", fontStyle: "italic" } }, children);
654
644
  return /* @__PURE__ */ React3.createElement(
655
645
  import_react_hook_form.Controller,
656
646
  {
@@ -665,30 +655,24 @@ function MultipleSelectChip({
665
655
  disableCloseOnSelect: multipleitems,
666
656
  options: combinedOptions,
667
657
  multiple: multipleitems,
668
- sx: {
669
- width: "100%"
670
- },
671
- noOptionsText: "\u062F\u0627\u062F\u0647 \u0627\u06CC \u0628\u0631\u0627\u06CC \u0646\u0645\u0627\u06CC\u0634 \u0648\u062C\u0648\u062F \u0646\u062F\u0627\u0631\u062F",
658
+ sx: { width: "100%" },
659
+ noOptionsText: "\u062F\u0627\u062F\u0647\u200C\u0627\u06CC \u0628\u0631\u0627\u06CC \u0646\u0645\u0627\u06CC\u0634 \u0648\u062C\u0648\u062F \u0646\u062F\u0627\u0631\u062F",
672
660
  value: multipleitems ? selectedValues : combinedOptions.find(
673
661
  (option) => String(option.key) === String(value)
674
662
  ) || { title: "", key: "" },
675
- onChange: (event, value2) => {
676
- handleChange(event, value2, onChange);
677
- },
663
+ onChange: (event, value2) => handleChange(event, value2, onChange),
678
664
  isOptionEqualToValue: (option, value2) => String(option.key) === String(value2?.key),
679
665
  getOptionLabel: (option) => option.title,
680
666
  loading: isLoading,
681
667
  loadingText: "\u062F\u0631 \u062D\u0627\u0644 \u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC...",
682
- renderOption: (props, option) => {
683
- return /* @__PURE__ */ React3.createElement(
684
- CustomeStyle,
685
- {
686
- props,
687
- option,
688
- multipleitems: !!multipleitems
689
- }
690
- );
691
- },
668
+ renderOption: (props, option) => /* @__PURE__ */ React3.createElement(
669
+ CustomeStyle,
670
+ {
671
+ props,
672
+ option,
673
+ multipleitems: !!multipleitems
674
+ }
675
+ ),
692
676
  slots: { popper: import_material3.Popper },
693
677
  slotProps: {
694
678
  popper: {
@@ -706,7 +690,6 @@ function MultipleSelectChip({
706
690
  name: "flip",
707
691
  options: {
708
692
  fallbackPlacements: ["top", "bottom"]
709
- // Ensures it flips to the top if needed
710
693
  }
711
694
  }
712
695
  ]
@@ -720,6 +703,8 @@ function MultipleSelectChip({
720
703
  error: !!error,
721
704
  helperText: error?.message,
722
705
  inputRef: ref,
706
+ variant,
707
+ placeholder,
723
708
  InputProps: {
724
709
  ...params.InputProps,
725
710
  startAdornment: /* @__PURE__ */ React3.createElement(
@@ -729,14 +714,12 @@ function MultipleSelectChip({
729
714
  display: "flex",
730
715
  flexWrap: "wrap",
731
716
  maxHeight: "250px",
732
- // Set the maximum height for the chip container
733
717
  overflowY: "auto",
734
- // Enable vertical scroll
735
718
  padding: 0
736
- // Remove any padding to ensure chips stay inside the container
737
719
  }
738
720
  },
739
- /* @__PURE__ */ React3.createElement(React3.Fragment, null, isLoading ? /* @__PURE__ */ React3.createElement(import_material3.Typography, { sx: { marginRight: 1 } }, "\u062F\u0631 \u062D\u0627\u0644 \u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC...") : null, params.InputProps.startAdornment)
721
+ isLoading ? /* @__PURE__ */ React3.createElement(import_material3.Typography, { sx: { marginRight: 1 } }, "\u062F\u0631 \u062D\u0627\u0644 \u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC...") : null,
722
+ params.InputProps.startAdornment
740
723
  )
741
724
  }
742
725
  }
@@ -3552,7 +3535,7 @@ var FormInputNumber = ({
3552
3535
  decimalScale = 2,
3553
3536
  autoComplete = "off",
3554
3537
  textAlign = "right",
3555
- borderless = false,
3538
+ variant = "outlined",
3556
3539
  ...rest
3557
3540
  }) => {
3558
3541
  return /* @__PURE__ */ import_react22.default.createElement(
@@ -3576,30 +3559,18 @@ var FormInputNumber = ({
3576
3559
  },
3577
3560
  value: data && !value ? data : value == null ? "" : valueHandler ? valueHandler(value) : value,
3578
3561
  fullWidth: true,
3579
- variant: borderless ? "standard" : "outlined",
3562
+ variant,
3580
3563
  sx: {
3581
- ...borderless ? {
3582
- "& .MuiInput-underline:before": {
3583
- borderBottom: "none"
3584
- },
3585
- "& .MuiInput-underline:after": {
3586
- borderBottom: "none"
3587
- },
3588
- "& .MuiInput-underline:hover:not(.Mui-disabled):before": {
3589
- borderBottom: "none"
3590
- }
3591
- } : {
3592
- "& .MuiOutlinedInput-notchedOutline": {
3593
- borderColor: borderColor || ""
3564
+ "& .MuiOutlinedInput-notchedOutline": {
3565
+ borderColor: borderColor || ""
3566
+ },
3567
+ "& .MuiOutlinedInput-root": {
3568
+ borderRadius: "12px",
3569
+ "&:hover fieldset": {
3570
+ borderColor: borderColor ?? "#085938"
3594
3571
  },
3595
- "& .MuiOutlinedInput-root": {
3596
- borderRadius: "12px",
3597
- "&:hover fieldset": {
3598
- borderColor: borderColor ?? "#085938"
3599
- },
3600
- "&.Mui-focused fieldset": {
3601
- borderColor: borderColor ?? "#085938"
3602
- }
3572
+ "&.Mui-focused fieldset": {
3573
+ borderColor: borderColor ?? "#085938"
3603
3574
  }
3604
3575
  },
3605
3576
  "& .MuiInputLabel-root.Mui-focused": {
@@ -3687,6 +3658,7 @@ var FormInputText = ({
3687
3658
  isLoading,
3688
3659
  onBlurHandler,
3689
3660
  rows,
3661
+ variant = "outlined",
3690
3662
  ...rest
3691
3663
  }) => {
3692
3664
  return /* @__PURE__ */ import_react23.default.createElement(
@@ -3708,7 +3680,7 @@ var FormInputText = ({
3708
3680
  value,
3709
3681
  fullWidth: true,
3710
3682
  label,
3711
- variant: "outlined",
3683
+ variant,
3712
3684
  inputProps: {
3713
3685
  ...rest.inputProps,
3714
3686
  maxLength,