flexible-multi-calendar-datepicker 1.0.0

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":["../node_modules/react-date-object/calendars/arabic.js","../node_modules/react-date-object/calendars/gregorian.js","../node_modules/react-date-object/calendars/persian.js","../node_modules/react-date-object/locales/arabic_en.js","../node_modules/react-date-object/locales/arabic_fa.js","../node_modules/react-date-object/locales/gregorian_en.js","../node_modules/react-date-object/locales/gregorian_fa.js","../node_modules/react-date-object/locales/persian_en.js","../node_modules/react-date-object/locales/persian_fa.js","../src/index.ts","../src/styles/auto-css.ts","../src/components/JalaliDatepicker.tsx","../src/components/ComboSelect.tsx","../src/components/icons.tsx","../src/components/CalendarGrid.tsx","../node_modules/react-date-object/dist/index.module.js","../src/utils/calendar.ts","../src/utils/format.ts"],"sourcesContent":["\"use strict\";function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var t=e({name:\"arabic\",startYear:1,yearLength:354,epoch:1948438,century:14,weekStartDayIndex:0,getMonthLengths:e=>[30,29,30,29,30,29,30,29,30,29,30,e?30:29],isLeap:e=>[2,5,7,10,13,15,18,21,24,26,29].includes(e%30),getLeaps(e){if(0===e)return;let t=e>0?1:-1,r=[];for(;e>0?t<=e:e<=t;)this.isLeap(t)&&r.push(t),e>0?t++:t--;return r},getDayOfYear({year:e,month:t,day:r}){let a=this.getMonthLengths(this.isLeap(e));for(let e=0;e<t.index;e++)r+=a[e];return r},getAllDays(e){const{year:t}=e;return this.yearLength*(t-1)+this.leapsLength(t)+this.getDayOfYear(e)},leapsLength:e=>11/30*(e-1)+.5|0,guessYear:(e,t)=>~~((e-.5)/354.366)+(t>0?1:-1)});module.exports=t;\n","\"use strict\";function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var t=e({name:\"gregorian\",startYear:1,yearLength:365,epoch:1721424,century:20,weekStartDayIndex:1,getMonthLengths:e=>[31,e?29:28,31,30,31,30,31,31,30,31,30,31],isLeap:e=>e%4==0&&e%100!=0||e%400==0,getLeaps(e){if(0===e)return;let t=e>0?1:-1,r=[];for(;e>0?t<=e:e<=t;)this.isLeap(t)&&r.push(t),e>0?t++:t--;return r},getDayOfYear({year:e,month:t,day:r}){let a=this.getMonthLengths(this.isLeap(e));for(let e=0;e<t.index;e++)r+=a[e];return r},getAllDays(e){const{year:t}=e;return this.yearLength*(t-1)+this.leapsLength(t)+this.getDayOfYear(e)},leapsLength:e=>((e-1)/4|0)+(-(e-1)/100|0)+((e-1)/400|0),guessYear:(e,t)=>~~(e/365.24)+(t>0?1:-1)});module.exports=t;\n","\"use strict\";function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var t=e({name:\"persian\",startYear:1,yearLength:365,epoch:1948319,century:14,weekStartDayIndex:0,getMonthLengths:e=>[31,31,31,31,31,31,30,30,30,30,30,e?30:29],isLeap(e){return this.getLeaps(e).includes(e)},getLeaps(e){if(0===e)return;let t=e>0?1:-1,r=[],a=.242362,s=e>0?.2684:.7316,n={5:4,38:37,199:198,232:231,265:264,298:297,557:558,590:591,623:624,982:983,1015:1016,1048:1049,1081:1082,1114:1115,1242:1243,1374:1375,1407:1408,1440:1441,1506:1507,1539:1540,1572:1573,1605:1606,1931:1932,1964:1965,2063:2064,2096:2097,2687:2686,2720:2719,2753:2752,2819:2818,2852:2851,2885:2884,3017:3016,3112:3111,3145:3144,3178:3177,3211:3210,3244:3243,3277:3276,3310:3309,3343:3342,3376:3375,3409:3408,3442:3441,3508:3507,3541:3540,3574:3573,3603:3602,3607:3606,3636:3635,3669:3668,3702:3701,3706:3705,3735:3734,3768:3767,3801:3800,3834:3833,3867:3866,3900:3899,3933:3932,3966:3965,3999:3998,4065:4064,4094:4093,4098:4097,4127:4126,4131:4130,4160:4159,4193:4192,4226:4225,4259:4258,4292:4291,4325:4324,4358:4357,4391:4390,4585:4584,4618:4617,4651:4650,4750:4749,4943:4944,4976:4977,5009:5010,5170:5171,5203:5204,5236:5237,5265:5266,5269:5270,5298:5299,5302:5303,5331:5332,5335:5336,5364:5365,5368:5369,5393:5394,5397:5398,5401:5402,5426:5427,5430:5431,5434:5435,5459:5460,5463:5464,5467:5468,5492:5493,5496:5497,5500:5501,5521:5522,5525:5526,5529:5530,5554:5555,5558:5559,5562:5563,5587:5588,5591:5592,5595:5596,5616:5617,5620:5621,5624:5625,5628:5629,5649:5650,5653:5654,5657:5658,5661:5662,5682:5683,5686:5687,5690:5691,5694:5695,5715:5716,5719:5720,5723:5724,5727:5728,5744:5745,5748:5749,5752:5753,5756:5757,5760:5761,5777:5778,5781:5782,5785:5786,5789:5790,5793:5794,5810:5811,5814:5815,5818:5819,5822:5823,5826:5827,5839:5840,5843:5844,5847:5848,5851:5852,5855:5856,5859:5860,5872:5873,5876:5877,5880:5881,5884:5885,5888:5889,5892:5893,5901:5902,5905:5906,5909:5910,5913:5914,5917:5918,5921:5922,5925:5926,5934:5935,5938:5939,5942:5943,5946:5947,5950:5951,5954:5955,5958:5959,5967:5968,5971:5972,5975:5976,5979:5980,5983:5984,5987:5988,5991:5992,5996:5997,6e3:6001,6004:6005,6008:6009,6012:6013,6016:6017,6020:6021,6029:6030,6033:6034,6037:6038,6041:6042,6045:6046,6049:6050,6053:6054,6058:6059,6062:6063,6066:6067,6070:6071,6074:6075,6078:6079,6082:6083,6086:6087,6091:6092,6095:6096,6099:6100,6103:6104,6107:6108,6111:6112,6115:6116,6119:6120,6124:6125,6128:6129,6132:6133,6136:6137,6140:6141,6144:6145,6148:6149,6152:6154,6157:6158,6161:6162,6165:6166,6169:6170,6173:6174,6177:6178,6181:6182,6185:6187,6190:6191,6194:6195,6198:6199,6202:6203,6206:6207,6210:6211,6214:6215,6218:6220,6223:6224,6227:6228,6231:6232,6235:6236,6239:6240,6243:6244,6247:6249,6251:6253,6256:6257,6260:6261,6264:6265,6268:6269,6272:6273,6276:6277,6280:6282,6284:6286,6289:6290,6293:6294,6297:6298,6301:6302,6305:6306,6309:6310,6313:6315,6317:6319,6322:6323,6326:6327,6330:6331,6334:6335,6338:6339,6342:6344,6346:6348,6350:6352,6355:6356,6359:6360,6363:6364,6367:6368,6371:6372,6375:6377,6379:6381,6383:6385,6388:6389,6392:6393,6396:6397,6400:6401,6404:6406,6408:6410,6412:6414,6416:6418,6421:6422,6425:6426,6429:6430,6433:6434,6437:6439,6441:6443,6445:6447,6449:6451,6454:6455,6458:6459,6462:6463,6466:6468,6470:6472,6474:6476,6478:6480,6482:6484,6487:6488,6491:6492,6495:6496};for(;e>0?t<=e:e<=t;){if(s+=e>0?a:-1*a,s>1&&(s-=1),s<0&&(s+=1),s>=.257800926&&s<=.5){let a=n[t]||t<-1?t+1:t;e>0&&a<=e&&r.push(a),e<0&&r.push(a)}e>0?t++:t--}return r},getDayOfYear:({month:{index:e},day:t})=>(e<=6?31*e:186+30*(e-6))+t,getAllDays(e){const{year:t}=e,r=this.getLeaps(t),a=r.includes(t);return this.yearLength*(t-1)+(a?r.length-1:r.length)+this.getDayOfYear(e)},guessYear:(e,t)=>~~((e+.5)/365.241)+(t>0?1:-1)});module.exports=t;\n","\"use strict\";function a(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,\"default\")?a.default:a}var h=a({name:\"arabic_en\",months:[[\"Muharram\",\"Mu\"],[\"Safar\",\"Sa\"],[\"Rabi`al-Awwal\",\"RI\"],[\"Rabi`ath-Thani\",\"RII\"],[\"Jumada l-Ula\",\"JI\"],[\"Jumada t-Tania\",\"JII\"],[\"Rajab\",\"Ra\"],[\"Sha`ban\",\"Sh\"],[\"Ramadan\",\"Ra\"],[\"Shawwal\",\"Sh\"],[\"Dhu l-Qa`da \",\"DhQ\"],[\"Dhu l-Hijja\",\"DhH\"]],weekDays:[[\"as-sabt\",\"Sab\"],[\"al-'ahad\",\"Aha\"],[\"al-'ithnayn\",\"Ith\"],[\"ath-thalatha\",\"Tha\"],[\"al-'arb`a'\",\"Arb\"],[\"al-khamis\",\"Kha\"],[\"al-jum`a\",\"Jum\"]],digits:[\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\"],meridiems:[[\"AM\",\"am\"],[\"PM\",\"pm\"]]});module.exports=h;\n","\"use strict\";function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var t=e({name:\"arabic_fa\",months:[[\"محرم\",\"محرم\"],[\"صفر\",\"صفر\"],[\"ربیع الاول\",\"ربیع الاول\"],[\"ربیع الثانی\",\"ربیع الثانی\"],[\"جمادی الاول\",\"جمادی الاول\"],[\"جمادی الثانی\",\"جمادی الثانی\"],[\"رجب\",\"رجب\"],[\"شعبان\",\"شعبان\"],[\"رمضان\",\"رمضان\"],[\"شوال\",\"شوال\"],[\"ذیقعده \",\"ذیقعده\"],[\"ذیحجه\",\"ذیحجه\"]],weekDays:[[\"شنبه\",\"شن\"],[\"یکشنبه\",\"یک\"],[\"دوشنبه\",\"دو\"],[\"سه شنبه\",\"سه\"],[\"چهارشنبه\",\"چهار\"],[\"پنجشنبه\",\"پنج\"],[\"جمعه\",\"جم\"]],digits:[\"۰\",\"۱\",\"۲\",\"۳\",\"۴\",\"۵\",\"۶\",\"۷\",\"۸\",\"۹\"],meridiems:[[\"قبل از ظهر\",\"ق.ظ\"],[\"بعد از ظهر\",\"ب.ظ\"]]});module.exports=t;\n","\"use strict\";function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var a=e({name:\"gregorian_en\",months:[[\"January\",\"Jan\"],[\"February\",\"Feb\"],[\"March\",\"Mar\"],[\"April\",\"Apr\"],[\"May\",\"May\"],[\"June\",\"Jun\"],[\"July\",\"Jul\"],[\"August\",\"Aug\"],[\"September\",\"Sep\"],[\"October\",\"Oct\"],[\"November\",\"Nov\"],[\"December\",\"Dec\"]],weekDays:[[\"Saturday\",\"Sat\"],[\"Sunday\",\"Sun\"],[\"Monday\",\"Mon\"],[\"Tuesday\",\"Tue\"],[\"Wednesday\",\"Wed\"],[\"Thursday\",\"Thu\"],[\"Friday\",\"Fri\"]],digits:[\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\"],meridiems:[[\"AM\",\"am\"],[\"PM\",\"pm\"]]});module.exports=a;\n","\"use strict\";function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var t=e({name:\"gregorian_fa\",months:[[\"ژانویه\",\"ژان\"],[\"فوریه\",\"فور\"],[\"مارس\",\"ما\"],[\"آوریل\",\"آور\"],[\"مه\",\"مه\"],[\"ژوئن\",\"ژو\"],[\"ژوئیه\",\"ژوئیه\"],[\"اوت\",\"اوت\"],[\"سپتامبر\",\"سپ\"],[\"اکتبر\",\"اک\"],[\"نوامبر\",\"نو\"],[\"دسامبر\",\"دس\"]],weekDays:[[\"شنبه\",\"شن\"],[\"یکشنبه\",\"یک\"],[\"دوشنبه\",\"دو\"],[\"سه‌شنبه\",\"سه\"],[\"چهارشنبه\",\"چهار\"],[\"پنجشنبه\",\"پنج\"],[\"جمعه\",\"جم\"]],digits:[\"۰\",\"۱\",\"۲\",\"۳\",\"۴\",\"۵\",\"۶\",\"۷\",\"۸\",\"۹\"],meridiems:[[\"قبل از ظهر\",\"ق.ظ\"],[\"بعد از ظهر\",\"ب.ظ\"]]});module.exports=t;\n","\"use strict\";function a(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,\"default\")?a.default:a}var e=a({name:\"persian_en\",months:[[\"Farvardin\",\"Far\"],[\"Ordibehesht\",\"Ord\"],[\"Khordad\",\"Kho\"],[\"Tir\",\"Tir\"],[\"Mordad\",\"Mor\"],[\"Shahrivar\",\"Sha\"],[\"Mehr\",\"Meh\"],[\"Aban\",\"Aba\"],[\"Azar\",\"Aza\"],[\"Dey\",\"Dey\"],[\"Bahman\",\"Bah\"],[\"Esfand\",\"Esf\"]],weekDays:[[\"Shanbeh\",\"Sha\"],[\"YekShanbeh\",\"Yek\"],[\"Doshanbeh\",\"Do\"],[\"Seshanbeh\",\"Se\"],[\"Chaharshanbeh\",\"Cha\"],[\"Panjshanbeh\",\"Pan\"],[\"Jom'eh\",\"Jom\"]],digits:[\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\"],meridiems:[[\"AM\",\"am\"],[\"PM\",\"pm\"]]});module.exports=e;\n","\"use strict\";function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var t=e({name:\"persian_fa\",months:[[\"فروردین\",\"فر\"],[\"اردیبهشت\",\"ار\"],[\"خرداد\",\"خرد\"],[\"تیر\",\"تیر\"],[\"مرداد\",\"مر\"],[\"شهریور\",\"شه\"],[\"مهر\",\"مه\"],[\"آبان\",\"آبا\"],[\"آذر\",\"آذ\"],[\"دی\",\"دی\"],[\"بهمن\",\"بهم\"],[\"اسفند\",\"اسف\"]],weekDays:[[\"شنبه\",\"شن\"],[\"یکشنبه\",\"یک\"],[\"دوشنبه\",\"دو\"],[\"سه‌شنبه\",\"سه\"],[\"چهارشنبه\",\"چهار\"],[\"پنجشنبه\",\"پنج\"],[\"جمعه\",\"جم\"]],digits:[\"۰\",\"۱\",\"۲\",\"۳\",\"۴\",\"۵\",\"۶\",\"۷\",\"۸\",\"۹\"],meridiems:[[\"قبل از ظهر\",\"ق.ظ\"],[\"بعد از ظهر\",\"ب.ظ\"]]});module.exports=t;\n","import { ensureStylesInjected } from \"./styles/auto-css\";\r\nensureStylesInjected(); // یک‌بار تزریق خودکار استایل‌ها\r\n\r\nexport { default as JalaliDatepicker } from \"./components/JalaliDatepicker\";\r\nexport { default as PersianDatepicker } from \"./components/JalaliDatepicker\";\r\nexport type {\r\n JalaliDatepickerProps,\r\n JalaliDisabledDateRange,\r\n} from \"./components/JalaliDatepicker\";\r\n\r\nexport { default as ComboSelect } from \"./components/ComboSelect\";\r\nexport type {\r\n ComboSelectProps,\r\n Option as ComboSelectOption,\r\n SingleChange as ComboSelectSingleChange,\r\n MultiChange as ComboSelectMultiChange,\r\n} from \"./components/ComboSelect\";\r\n\r\nexport { ArrowDownCombo, TickCircle } from \"./components/icons\";\r\n\r\nexport {\r\n formatCalendarDate,\r\n parseCalendarDate,\r\n formatJalaliDate,\r\n parseJalaliDate,\r\n} from \"./utils/format\";\r\nexport type {\r\n CalendarDisplayFormat,\r\n CalendarFormatOptions,\r\n JalaliDisplayFormat,\r\n JalaliFormatLocale,\r\n} from \"./utils/format\";\r\nexport type {\r\n CalendarSystem,\r\n CalendarLocale,\r\n IslamicDateAdjustment,\r\n} from \"./utils/calendar\";\r\n","// src/styles/auto-css.ts\r\n\r\n// ۱) فونت‌ها را فایل‌محور ایمپورت کن تا tsup آدرس final بدهد و به dist/fonts کپی کند\r\nimport IR_UltraLight from \"../fonts/IRANSansFaNum-UltraLight.ttf\";\r\nimport IR_Light from \"../fonts/IRANSansFaNum-Light.ttf\";\r\nimport IR_Regular from \"../fonts/IRANSansFaNum-Regular.ttf\";\r\nimport IR_Medium from \"../fonts/IRANSansFaNum-Medium.ttf\";\r\nimport IR_Bold from \"../fonts/IRANSansFaNum-Bold.ttf\";\r\nimport IR_Black from \"../fonts/IRANSansFaNum-Black.ttf\";\r\n\r\n// مقدار این ثابت در زمان build توسط tsup با محتوای styles.css جایگزین می‌شود.\ndeclare const __RJD_BASE_CSS__: string;\nconst baseCss = __RJD_BASE_CSS__;\n\r\nconst fontsCss = `\r\n@font-face { font-family:\"IRANSansFaNum\"; src:url(\"${IR_UltraLight}\") format(\"truetype\"); font-weight:200; font-style:normal; font-display:swap; }\r\n@font-face { font-family:\"IRANSansFaNum\"; src:url(\"${IR_Light}\") format(\"truetype\"); font-weight:300; font-style:normal; font-display:swap; }\r\n@font-face { font-family:\"IRANSansFaNum\"; src:url(\"${IR_Regular}\") format(\"truetype\"); font-weight:400; font-style:normal; font-display:swap; }\r\n@font-face { font-family:\"IRANSansFaNum\"; src:url(\"${IR_Medium}\") format(\"truetype\"); font-weight:500; font-style:normal; font-display:swap; }\r\n@font-face { font-family:\"IRANSansFaNum\"; src:url(\"${IR_Bold}\") format(\"truetype\"); font-weight:700; font-style:normal; font-display:swap; }\r\n@font-face { font-family:\"IRANSansFaNum\"; src:url(\"${IR_Black}\") format(\"truetype\"); font-weight:900; font-style:normal; font-display:swap; }\r\n`;\r\n\r\nlet injected = false;\r\n\r\n/** یک‌بار CSS پایه + @font-face را در <head> تزریق می‌کند */\r\nexport function ensureStylesInjected(): void {\r\n if (injected || typeof document === \"undefined\") return;\r\n\r\n // اگر قبلاً تزریق شده بود (به‌هر دلیل) حذف و دوباره بسازیم تا تکراری نشود\r\n document\r\n .querySelectorAll('style[data-rjd=\"styles\"]')\r\n .forEach((n) => n.remove());\r\n\r\n const styleEl = document.createElement(\"style\");\r\n styleEl.setAttribute(\"data-rjd\", \"styles\");\r\n // حتماً CSS پایه را هم اضافه کن\r\n styleEl.textContent = `${fontsCss}\\n${baseCss}`;\r\n document.head.appendChild(styleEl);\r\n\r\n injected = true;\r\n}\r\n","import * as React from \"react\";\r\nimport {\r\n memo,\r\n useCallback,\r\n useEffect,\r\n useLayoutEffect,\r\n useMemo,\r\n useRef,\r\n useState,\r\n} from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport { ComboSelect, Option as CSOption } from \"./ComboSelect\";\r\nimport { CalendarGrid } from \"./CalendarGrid\";\r\nimport { formatCalendarDate } from \"../utils/format\";\r\nimport {\r\n CALENDAR_MONTHS,\r\n toCalendarObject,\r\n type CalendarSystem,\r\n type IslamicDateAdjustment,\r\n} from \"../utils/calendar\";\r\nimport \"../styles/styles.css\";\r\n\r\n/* ---------------- types ---------------- */\r\ntype AnchorRef =\r\n | React.RefObject<HTMLElement>\r\n | React.MutableRefObject<HTMLElement | null>;\r\n\r\nexport type JalaliDisabledDateRange = {\r\n /** First disabled day (inclusive). */\r\n from: Date;\r\n /** Last disabled day (inclusive). */\r\n to: Date;\r\n};\r\n\r\nexport type JalaliDatepickerProps = {\r\n open: boolean;\r\n anchorRef: AnchorRef;\r\n\r\n // controlled / uncontrolled\r\n value?: Date | null;\r\n defaultValue?: Date | null;\r\n onChange?: (d: Date | null) => void;\r\n\r\n // actions\r\n onConfirm: (d: Date | null) => void;\r\n onClose: () => void;\r\n\r\n // UI\r\n /** Optional per-instance label. Pass an empty string or null to hide it. */\r\n label?: React.ReactNode;\r\n locale?: \"fa\" | \"en\";\r\n /** Calendar system. Existing integrations default to Jalali. */\r\n calendar?: CalendarSystem;\r\n /**\r\n * Moves calculated Islamic dates by -2..+2 days to match a local or\r\n * officially announced lunar calendar. Only used with calendar=\"islamic\".\r\n */\r\n islamicDateAdjustment?: IslamicDateAdjustment;\r\n className?: string;\r\n style?: React.CSSProperties;\r\n /** محل اختیاری Portal؛ پیش‌فرض document.body است. */\r\n portalContainer?: HTMLElement | null;\r\n\r\n /**\r\n * نمایش دکمه‌های تأیید و انصراف.\r\n * false: انتخاب روز فوراً مقدار را ارسال می‌کند و تقویم بسته می‌شود.\r\n * true: مقدار فقط با تأیید ارسال می‌شود و انصراف state مقصد را تغییر نمی‌دهد.\r\n * @default false\r\n */\r\n showActionButtons?: boolean;\r\n\r\n /** Date ranges that cannot be selected. Both boundaries are included. */\r\n disabledDateRanges?: readonly JalaliDisabledDateRange[];\r\n\r\n // i18n\r\n labels?: {\r\n titleFrom?: string;\r\n titleTo?: string;\r\n confirm?: string;\r\n cancel?: string;\r\n chooseDate?: string;\r\n today?: string;\r\n };\r\n};\r\n\r\ntype Placement = \"bottom\" | \"top\" | \"left\" | \"right\" | \"fit\";\r\n\r\n/* ---------------- helpers ---------------- */\r\nfunction formatSelectedHeader(\r\n d: Date | null,\r\n calendar: CalendarSystem,\r\n locale: \"fa\" | \"en\",\r\n islamicDateAdjustment: IslamicDateAdjustment\r\n) {\r\n if (!d) return \"\";\r\n const full = formatCalendarDate(d, \"dddd DD MMMM YYYY\", {\r\n calendar,\r\n locale,\r\n islamicDateAdjustment,\r\n });\r\n const firstSpace = full.indexOf(\" \");\r\n const weekday = firstSpace >= 0 ? full.slice(0, firstSpace) : full;\r\n let datePart = firstSpace >= 0 ? full.slice(firstSpace + 1).replace(/\\s+\\d{4}$/, \"\") : \"\";\r\n const islamicInitials = [\"ح\", \"ن\", \"ث\", \"ر\", \"خ\", \"ج\", \"س\"] as const;\r\n const initial =\r\n calendar === \"islamic\" && locale === \"fa\"\r\n ? islamicInitials[d.getDay()]\r\n : weekday.trim().charAt(0);\r\n if (calendar === \"islamic\" && locale === \"fa\") {\r\n datePart = datePart.replace(/[0-9]/g, (digit) => \"٠١٢٣٤٥٦٧٨٩\"[Number(digit)]);\r\n }\r\n return `${initial}${locale === \"fa\" ? \"،\" : \",\"} ${datePart}`;\r\n}\r\n\r\nfunction isSameDay(a: Date | null, b: Date | null) {\r\n if (!a || !b) return false;\r\n return (\r\n a.getFullYear() === b.getFullYear() &&\r\n a.getMonth() === b.getMonth() &&\r\n a.getDate() === b.getDate()\r\n );\r\n}\r\n\r\n/* ---------------- component ---------------- */\r\nfunction JalaliDatepicker(props: JalaliDatepickerProps) {\r\n const {\r\n open,\r\n anchorRef,\r\n onConfirm,\r\n onClose,\r\n // controlled/uncontrolled\r\n value,\r\n defaultValue = null,\r\n onChange,\r\n // ui\r\n label,\r\n locale = \"fa\",\r\n calendar = \"jalali\",\r\n islamicDateAdjustment = 1,\r\n className,\r\n style,\r\n portalContainer,\r\n labels: L = {},\r\n showActionButtons = false,\r\n disabledDateRanges = [],\r\n } = props;\r\n\r\n // Gregorian calendars are intentionally English-only so their direction,\r\n // numerals and calendar vocabulary stay consistent in every host project.\r\n const effectiveLocale: \"fa\" | \"en\" =\r\n calendar === \"gregorian\" ? \"en\" : locale;\r\n const englishUi = effectiveLocale === \"en\";\r\n const arabicUi = calendar === \"islamic\" && effectiveLocale === \"fa\";\r\n\r\n const t = {\r\n titleFrom: L.titleFrom ?? (englishUi ? \"From date\" : arabicUi ? \"من تاريخ\" : \"از تاریخ\"),\r\n titleTo: L.titleTo ?? (englishUi ? \"To date\" : arabicUi ? \"إلى تاريخ\" : \"تا تاریخ\"),\r\n confirm: L.confirm ?? (englishUi ? \"Confirm\" : arabicUi ? \"تأكيد\" : \"تایید\"),\r\n cancel: L.cancel ?? (englishUi ? \"Cancel\" : arabicUi ? \"إلغاء\" : \"انصراف\"),\r\n chooseDate: L.chooseDate ?? (englishUi ? \"Choose date\" : arabicUi ? \"اختر التاريخ\" : \"انتخاب تاریخ\"),\r\n today: L.today ?? (englishUi ? \"Today\" : arabicUi ? \"اليوم\" : \"امروز\"),\r\n };\r\n const resolvedLabel =\r\n typeof label === \"string\" && label === \"از تاریخ\"\r\n ? t.titleFrom\r\n : typeof label === \"string\" && label === \"تا تاریخ\"\r\n ? t.titleTo\r\n : label;\r\n\r\n // مقدار «کامیت‌شده» (نمایش بیرونی) و درفت (نمایش داخل پاپ‌آپ)\r\n const [draft, setDraft] = useState<Date | null>(\r\n value ?? defaultValue ?? new Date()\r\n );\r\n\r\n // هر بار والد value را عوض کند، درفت را هم با آن همگام کنیم (چون آن مقدارِ کامیت‌شده است)\r\n useLayoutEffect(() => {\r\n if (value !== undefined) setDraft(value ?? null);\r\n }, [value]);\r\n\r\n // وقتی پاپ‌آپ باز می‌شود، مقدار کامیت‌شده فعلی را ذخیره کنیم تا بتوانیم روی Cancel/Close برگردانیم\r\n const committedOnOpenRef = useRef<Date | null>(null);\r\n const wasOpenRef = useRef(false);\r\n useLayoutEffect(() => {\r\n if (open && !wasOpenRef.current) {\r\n committedOnOpenRef.current = value ?? defaultValue ?? null;\r\n }\r\n wasOpenRef.current = open;\r\n }, [open, value, defaultValue]);\r\n\r\n // visible year/month (بر اساس value/defaultValue یا تاریخ جاری)\r\n const initDO = useMemo(\r\n () => toCalendarObject(\r\n value ?? defaultValue ?? new Date(),\r\n calendar,\r\n effectiveLocale,\r\n islamicDateAdjustment\r\n ),\r\n [value, defaultValue, calendar, effectiveLocale, islamicDateAdjustment]\r\n );\r\n const [viewYear, setViewYear] = useState<number>(initDO.year as number);\r\n const [viewMonth, setViewMonth] = useState<number>(initDO.month.number);\r\n\r\n const popRef = useRef<HTMLDivElement | null>(null);\r\n const bodyRef = useRef<HTMLDivElement | null>(null);\r\n\r\n const [portalEl, setPortalEl] = useState<HTMLElement | null>(null);\r\n const [pos, setPos] = useState<{ top: number; left: number } | null>(null);\r\n const [popupWidth, setPopupWidth] = useState<number | undefined>(undefined);\r\n\r\n // cache between opens\r\n const lastSizeRef = useRef<{ w: number; h: number }>({ w: 360, h: 440 });\r\n const lastPosRef = useRef<{ top: number; left: number } | null>(null);\r\n const placementRef = useRef<Placement | null>(null);\r\n\r\n // raf throttles\r\n const rafPos = useRef<number | null>(null);\r\n const rafInit1 = useRef<number | null>(null);\r\n const forceNextPositionRecalcRef = useRef(false);\r\n\r\n // fit-to-viewport\r\n const [fit, setFit] = useState<{ enabled: boolean; scale: number } | null>(\r\n null\r\n );\r\n\r\n const years = useMemo(() => {\r\n const current = toCalendarObject(new Date(), calendar, effectiveLocale, islamicDateAdjustment).year as number;\r\n const s = calendar === \"jalali\" ? 1350 : current - 100;\r\n const e = calendar === \"jalali\" ? 1450 : current + 100;\r\n return Array.from({ length: e - s + 1 }, (_, i) => s + i);\r\n }, [calendar, effectiveLocale, islamicDateAdjustment]);\r\n\r\n const monthOptions: CSOption[] = useMemo(\r\n () => CALENDAR_MONTHS[calendar][effectiveLocale].map((m, i) => ({\r\n id: i + 1,\r\n label: m,\r\n value: String(i + 1),\r\n })),\r\n [calendar, effectiveLocale]\r\n );\r\n const yearOptions: CSOption[] = useMemo(\r\n () => years.map((y) => ({\r\n id: y,\r\n label: arabicUi\r\n ? y.toLocaleString(\"ar-EG-u-nu-arab\", { useGrouping: false })\r\n : String(y),\r\n value: String(y),\r\n })),\r\n [years, arabicUi]\r\n );\r\n\r\n const draftMatchesView = useMemo(() => {\r\n if (!draft) return false;\r\n const draftDate = toCalendarObject(draft, calendar, effectiveLocale, islamicDateAdjustment);\r\n return draftDate.year === viewYear && draftDate.month.number === viewMonth;\r\n }, [draft, viewYear, viewMonth, calendar, effectiveLocale, islamicDateAdjustment]);\r\n\r\n const selectedLabel = useMemo(\r\n () => formatSelectedHeader(draft, calendar, effectiveLocale, islamicDateAdjustment),\r\n [draft, calendar, effectiveLocale, islamicDateAdjustment]\r\n );\r\n const today = useMemo(() => new Date(), [open]);\r\n const todayObject = useMemo(\r\n () => toCalendarObject(today, calendar, effectiveLocale, islamicDateAdjustment),\r\n [today, calendar, effectiveLocale, islamicDateAdjustment]\r\n );\r\n const showTodayShortcut =\r\n !isSameDay(draft, today) ||\r\n viewYear !== todayObject.year ||\r\n viewMonth !== todayObject.month.number;\r\n const normalizedDisabledRanges = useMemo(\r\n () =>\r\n disabledDateRanges.flatMap(({ from, to }) => {\r\n const fromTime = new Date(from).setHours(0, 0, 0, 0);\r\n const toTime = new Date(to).setHours(23, 59, 59, 999);\r\n if (!Number.isFinite(fromTime) || !Number.isFinite(toTime)) return [];\r\n return [\r\n {\r\n from: Math.min(fromTime, toTime),\r\n to: Math.max(fromTime, toTime),\r\n },\r\n ];\r\n }),\r\n [disabledDateRanges]\r\n );\r\n const isDateDisabled = useCallback(\r\n (date: Date | null) => {\r\n if (!date) return false;\r\n const time = new Date(date).setHours(12, 0, 0, 0);\r\n return normalizedDisabledRanges.some(\r\n (range) => time >= range.from && time <= range.to\r\n );\r\n },\r\n [normalizedDisabledRanges]\r\n );\r\n const selectDay = useCallback(\r\n (next: Date | null) => {\r\n if (isDateDisabled(next)) return;\r\n if (next) {\r\n const selectedDate = toCalendarObject(next, calendar, effectiveLocale, islamicDateAdjustment);\r\n setViewYear(selectedDate.year as number);\r\n setViewMonth(selectedDate.month.number);\r\n }\r\n setDraft(next);\r\n if (!showActionButtons) {\r\n onChange?.(next);\r\n onConfirm(next);\r\n committedOnOpenRef.current = next;\r\n onClose();\r\n }\r\n },\r\n [isDateDisabled, showActionButtons, onChange, onConfirm, onClose, calendar, effectiveLocale, islamicDateAdjustment]\r\n );\r\n\r\n /* portal host */\r\n useLayoutEffect(() => {\r\n if (!open) return;\r\n const host = portalContainer ?? document.body;\r\n setPortalEl(host);\r\n\r\n if (lastPosRef.current) setPos(lastPosRef.current);\r\n placementRef.current = null;\r\n setFit(null);\r\n }, [open, portalContainer]);\r\n\r\n /* Sync the initial open separately from later controlled value changes. */\r\n const openInitializedRef = useRef(false);\r\n const implicitSelectionRef = useRef<Date | null>(null);\r\n useLayoutEffect(() => {\r\n if (!open) {\r\n openInitializedRef.current = false;\r\n implicitSelectionRef.current = null;\r\n return;\r\n }\r\n\r\n const isInitialOpen = !openInitializedRef.current;\r\n openInitializedRef.current = true;\r\n if (!isInitialOpen && value === undefined) return;\r\n\r\n const useImplicitToday =\r\n isInitialOpen && value == null && defaultValue == null;\r\n const next = isInitialOpen\r\n ? value ?? defaultValue ?? new Date()\r\n : value ?? null;\r\n implicitSelectionRef.current = useImplicitToday ? next : null;\r\n setDraft(next);\r\n if (next || isInitialOpen) {\r\n const cur = toCalendarObject(next ?? new Date(), calendar, effectiveLocale, islamicDateAdjustment);\r\n setViewYear(cur.year as number);\r\n setViewMonth(cur.month.number);\r\n }\r\n }, [open, value, defaultValue, calendar, effectiveLocale, islamicDateAdjustment]);\r\n\r\n /* calc position + fit */\r\n const recalcPosition = useCallback(\r\n (forceRecomputePlacement: boolean = false) => {\r\n if (!open) return;\r\n const anchorEl = (anchorRef as any)?.current as HTMLElement | null;\r\n const popEl = popRef.current;\r\n const hostEl = portalEl;\r\n if (!anchorEl || !hostEl) return;\r\n\r\n const rootRem =\r\n Number.parseFloat(\r\n window.getComputedStyle(document.documentElement).fontSize\r\n ) || 16;\r\n const spacing = 0.75 * rootRem;\r\n const isBodyHost = hostEl === document.body;\r\n\r\n const aRect = anchorEl.getBoundingClientRect();\r\n\r\n const vv = (window as any).visualViewport as VisualViewport | undefined;\r\n const vw = (vv?.width ?? window.innerWidth) | 0;\r\n const vh = (vv?.height ?? window.innerHeight) | 0;\r\n const vOffLeft = (vv?.offsetLeft ?? 0) | 0;\r\n const vOffTop = (vv?.offsetTop ?? 0) | 0;\r\n\r\n // A responsive reflow can move the trigger completely outside the\r\n // viewport while the popup is open (especially when the page is already\r\n // scrolled). Keeping a scaled popup visible in that situation detaches it\r\n // from its trigger and makes it float over unrelated content. Match\r\n // common datepicker behavior and close until the trigger is visible and\r\n // the consumer opens it again.\r\n const anchorOutsideViewport =\r\n aRect.bottom <= vOffTop ||\r\n aRect.top >= vOffTop + vh ||\r\n aRect.right <= vOffLeft ||\r\n aRect.left >= vOffLeft + vw;\r\n if (isBodyHost && anchorOutsideViewport) {\r\n setPos(null);\r\n onClose();\r\n return;\r\n }\r\n\r\n let aLeft: number, aTop: number, aRight: number, aBottom: number;\r\n if (isBodyHost) {\r\n aLeft = Math.round(vOffLeft + aRect.left);\r\n aTop = Math.round(vOffTop + aRect.top);\r\n aRight = Math.round(vOffLeft + aRect.right);\r\n aBottom = Math.round(vOffTop + aRect.bottom);\r\n } else {\r\n const hostRect = hostEl.getBoundingClientRect();\r\n const hScrollL = (hostEl as HTMLElement).scrollLeft;\r\n const hScrollT = (hostEl as HTMLElement).scrollTop;\r\n aLeft = Math.round(aRect.left - hostRect.left + hScrollL);\r\n aTop = Math.round(aRect.top - hostRect.top + hScrollT);\r\n aRight = Math.round(aRect.right - hostRect.left + hScrollL);\r\n aBottom = Math.round(aRect.bottom - hostRect.top + hScrollT);\r\n }\r\n\r\n const hostW = isBodyHost ? vw : (hostEl as HTMLElement).clientWidth;\r\n const hostH = isBodyHost ? vh : (hostEl as HTMLElement).clientHeight;\r\n\r\n // Keep the calendar visually identical at every breakpoint. The Zaman\r\n // The grid is designed around 20rem, so wider anchors must not stretch only\r\n // the popup shell and create an extra empty strip on the left.\r\n const availableWidth = Math.max(0, hostW - 2 * spacing);\r\n const nextWidth = 20 * rootRem;\r\n setPopupWidth((current) =>\r\n current === nextWidth ? current : nextWidth\r\n );\r\n\r\n const rect = popEl?.getBoundingClientRect();\r\n const approxWidth =\r\n popEl?.offsetWidth && popEl.offsetWidth > 50\r\n ? popEl.offsetWidth\r\n : 20 * rootRem;\r\n const approxHeight =\r\n popEl?.offsetHeight && popEl.offsetHeight > 80\r\n ? popEl.offsetHeight\r\n : 27.5 * rootRem;\r\n\r\n // Sizing is a pure function of viewport WIDTH, never of the trigger's\r\n // position or popup content height. Every picker in the same viewport\r\n // therefore has exactly the same visual width, including instances with\r\n // different labels or with/without action buttons.\r\n const availableHeight = Math.max(0, hostH - 2 * spacing);\r\n const viewportScale = Math.max(\r\n 0.05,\r\n Math.min(1, availableWidth / approxWidth)\r\n );\r\n const visualWidth = approxWidth * viewportScale;\r\n const visualHeight = approxHeight * viewportScale;\r\n\r\n const anchorTopInHost = isBodyHost ? aTop - vOffTop : aTop;\r\n const anchorBottomInHost = isBodyHost ? aBottom - vOffTop : aBottom;\r\n const anchorLeftInHost = isBodyHost ? aLeft - vOffLeft : aLeft;\r\n const anchorRightInHost = isBodyHost ? aRight - vOffLeft : aRight;\r\n\r\n // Reserve one gap between anchor/popup and another gap at the viewport\r\n // edge. Previously the edge gap was not reserved, so resizing could put\r\n // the scaled popup exactly at (or beyond) the top/bottom edge.\r\n const spaceBottom = hostH - anchorBottomInHost - 2 * spacing;\r\n const spaceTop = anchorTopInHost - 2 * spacing;\r\n const spaceRight = hostW - anchorRightInHost - 2 * spacing;\r\n const spaceLeft = anchorLeftInHost - 2 * spacing;\r\n\r\n const canBottom = spaceBottom >= visualHeight;\r\n const canTop = spaceTop >= visualHeight;\r\n const canRight = spaceRight >= visualWidth;\r\n const canLeft = spaceLeft >= visualWidth;\r\n const heightFits = availableHeight >= visualHeight;\r\n\r\n if (\r\n forceRecomputePlacement ||\r\n !placementRef.current ||\r\n placementRef.current === \"fit\"\r\n ) {\r\n const candidates: Array<{\r\n dir: Placement;\r\n space: number;\r\n ok: boolean;\r\n }> = [\r\n { dir: \"bottom\", space: spaceBottom, ok: canBottom },\r\n { dir: \"top\", space: spaceTop, ok: canTop },\r\n { dir: \"right\", space: spaceRight, ok: canRight && heightFits },\r\n { dir: \"left\", space: spaceLeft, ok: canLeft && heightFits },\r\n ];\r\n const okOnes = candidates\r\n .filter((c) => c.ok)\r\n .sort((a, b) => b.space - a.space);\r\n placementRef.current = okOnes.length ? okOnes[0].dir : \"fit\";\r\n }\r\n\r\n const clamp = (v: number, min: number, max: number) =>\r\n Math.min(Math.max(v, min), max);\r\n const baseLeft = isBodyHost ? vOffLeft : 0;\r\n const baseTop = isBodyHost ? vOffTop : 0;\r\n const minVisualLeft = baseLeft + spacing;\r\n const maxVisualLeft = Math.max(\r\n minVisualLeft,\r\n baseLeft + hostW - spacing - visualWidth\r\n );\r\n const minTop = baseTop + spacing;\r\n const maxTop = Math.max(\r\n minTop,\r\n baseTop + hostH - spacing - visualHeight\r\n );\r\n // transform-origin is top center, so convert a desired visual left edge\r\n // back to the unscaled element's CSS `left` value.\r\n const layoutLeftForVisual = (visualLeft: number) =>\r\n visualLeft - (approxWidth - visualWidth) / 2;\r\n\r\n let left = aLeft;\r\n let top = aBottom + spacing;\r\n const fitState = {\r\n enabled: viewportScale < 0.9999,\r\n scale: viewportScale,\r\n };\r\n\r\n switch (placementRef.current) {\r\n case \"bottom\":\r\n left = layoutLeftForVisual(\r\n clamp(aLeft, minVisualLeft, maxVisualLeft)\r\n );\r\n top = clamp(aBottom + spacing, minTop, maxTop);\r\n break;\r\n case \"top\":\r\n left = layoutLeftForVisual(\r\n clamp(aLeft, minVisualLeft, maxVisualLeft)\r\n );\r\n top = clamp(aTop - spacing - visualHeight, minTop, maxTop);\r\n break;\r\n case \"right\":\r\n left = layoutLeftForVisual(\r\n clamp(aRight + spacing, minVisualLeft, maxVisualLeft)\r\n );\r\n top = clamp(aTop, minTop, maxTop);\r\n break;\r\n case \"left\":\r\n left = layoutLeftForVisual(\r\n clamp(\r\n aLeft - spacing - visualWidth,\r\n minVisualLeft,\r\n maxVisualLeft\r\n )\r\n );\r\n top = clamp(aTop, minTop, maxTop);\r\n break;\r\n case \"fit\":\r\n default: {\r\n // With a top-center transform origin, center the unscaled box; the\r\n // scaled visual box then remains centered in the viewport.\r\n left = Math.round(baseLeft + (hostW - approxWidth) / 2);\r\n const placeBelow = spaceBottom >= spaceTop;\r\n top = placeBelow\r\n ? Math.round(aBottom + spacing)\r\n : Math.round(aTop - spacing - visualHeight);\r\n // Reflow during a resize can move the anchor while the popup is\r\n // open. Clamp the final *visual* box after scaling, rather than the\r\n // unscaled element, so it always remains inside the viewport.\r\n const safeMinTop = baseTop + spacing;\r\n const safeMaxTop = Math.max(\r\n safeMinTop,\r\n baseTop + hostH - spacing - visualHeight\r\n );\r\n top = clamp(top, safeMinTop, safeMaxTop);\r\n break;\r\n }\r\n }\r\n\r\n const np = { top: Math.round(top), left: Math.round(left) };\r\n setPos((current) =>\r\n current?.top === np.top && current?.left === np.left ? current : np\r\n );\r\n lastPosRef.current = np;\r\n\r\n setFit((current) => {\r\n return current?.enabled === fitState.enabled &&\r\n current?.scale === fitState.scale\r\n ? current\r\n : fitState;\r\n });\r\n\r\n if (popEl && popEl.offsetHeight > 80 && popEl.offsetWidth > 50) {\r\n lastSizeRef.current = {\r\n w: Math.round(popEl.offsetWidth),\r\n h: Math.round(popEl.offsetHeight),\r\n };\r\n }\r\n },\r\n [open, anchorRef, portalEl, onClose]\r\n );\r\n\r\n /* Coalesce observer + viewport events without losing a forced placement\r\n recomputation. During a live resize, ResizeObserver can schedule first;\r\n the old implementation then discarded the window resize request and kept\r\n a stale scale/placement until another event happened. */\r\n const schedulePositionRecalc = useCallback(\r\n (forceRecomputePlacement: boolean) => {\r\n forceNextPositionRecalcRef.current =\r\n forceNextPositionRecalcRef.current || forceRecomputePlacement;\r\n if (rafPos.current != null) return;\r\n rafPos.current = requestAnimationFrame(() => {\r\n rafPos.current = null;\r\n const force = forceNextPositionRecalcRef.current;\r\n forceNextPositionRecalcRef.current = false;\r\n recalcPosition(force);\r\n });\r\n },\r\n [recalcPosition]\r\n );\r\n\r\n /* initial positioning */\r\n useLayoutEffect(() => {\r\n if (!open || !portalEl) return;\r\n recalcPosition(true);\r\n if (rafInit1.current) cancelAnimationFrame(rafInit1.current);\r\n rafInit1.current = requestAnimationFrame(() => recalcPosition(false));\r\n return () => {\r\n if (rafInit1.current) cancelAnimationFrame(rafInit1.current);\r\n };\r\n }, [open, portalEl, recalcPosition]);\r\n\r\n /* ResizeObserver */\r\n useLayoutEffect(() => {\r\n if (!open) return;\r\n const el = popRef.current;\r\n if (!el) return;\r\n const ro = new ResizeObserver(() => schedulePositionRecalc(false));\r\n ro.observe(el);\r\n return () => ro.disconnect();\r\n }, [open, schedulePositionRecalc]);\r\n\r\n /* global scroll/resize/orientation */\r\n useEffect(() => {\r\n if (!open) return;\r\n const schedule = () => schedulePositionRecalc(true);\r\n const onExternalScroll = (event: Event) => {\r\n const target = event.target;\r\n // Scrolling the month/year combobox is an internal interaction and must\r\n // not close the picker. Any page or ancestor-container scroll closes it,\r\n // preventing continuous scroll from repeatedly changing popup scale.\r\n if (target instanceof Node && popRef.current?.contains(target)) {\r\n schedulePositionRecalc(false);\r\n return;\r\n }\r\n onClose();\r\n };\r\n window.addEventListener(\"scroll\", onExternalScroll, true);\r\n window.addEventListener(\"resize\", schedule);\r\n window.addEventListener(\"orientationchange\", schedule);\r\n window.visualViewport?.addEventListener(\"resize\", schedule);\r\n window.visualViewport?.addEventListener(\"scroll\", onExternalScroll);\r\n return () => {\r\n window.removeEventListener(\"scroll\", onExternalScroll, true);\r\n window.removeEventListener(\"resize\", schedule);\r\n window.removeEventListener(\"orientationchange\", schedule);\r\n window.visualViewport?.removeEventListener(\"resize\", schedule);\r\n window.visualViewport?.removeEventListener(\"scroll\", onExternalScroll);\r\n if (rafPos.current) cancelAnimationFrame(rafPos.current);\r\n rafPos.current = null;\r\n forceNextPositionRecalcRef.current = false;\r\n };\r\n }, [open, schedulePositionRecalc, onClose]);\r\n\r\n /* outside close + ESC => مثل Cancel عمل کند */\r\n useEffect(() => {\r\n if (!open) return;\r\n const onDoc = (e: PointerEvent) => {\r\n const t = e.target as Node;\r\n const targetElement =\r\n t.nodeType === Node.ELEMENT_NODE\r\n ? (t as Element)\r\n : t.parentElement;\r\n // ComboSelect options may be repositioned outside the popup's painted\r\n // containment box. They are still internal calendar interactions.\r\n const insideCombo = e\r\n .composedPath()\r\n .some(\r\n (node) =>\r\n node instanceof Element &&\r\n (node.matches(\".rjd-combo-select\") ||\r\n node.matches(\".cs-trigger, .cs-panel, .cs-option\"))\r\n );\r\n if (insideCombo || targetElement?.closest(\".rjd-combo-select\")) return;\r\n const anchorEl = (anchorRef as any)?.current as HTMLElement | null;\r\n if (\r\n popRef.current &&\r\n !popRef.current.contains(t) &&\r\n anchorEl &&\r\n !anchorEl.contains(t)\r\n ) {\r\n // بازگشت درفت به مقدار کامیت‌شده\r\n setDraft(committedOnOpenRef.current ?? null);\r\n onClose();\r\n }\r\n };\r\n const onKey = (e: KeyboardEvent) => {\r\n if (e.key === \"Escape\") {\r\n setDraft(committedOnOpenRef.current ?? null);\r\n onClose();\r\n }\r\n };\r\n document.addEventListener(\"pointerdown\", onDoc, true);\r\n window.addEventListener(\"keydown\", onKey, true);\r\n return () => {\r\n document.removeEventListener(\"pointerdown\", onDoc, true);\r\n window.removeEventListener(\"keydown\", onKey, true);\r\n };\r\n }, [open, onClose, anchorRef]);\r\n\r\n if (!open || !portalEl) return null;\r\n const isBody = portalEl === document.body;\r\n\r\n return createPortal(\r\n <div\r\n ref={popRef}\r\n dir={effectiveLocale === \"fa\" ? \"rtl\" : \"ltr\"}\r\n lang={arabicUi ? \"ar\" : effectiveLocale === \"fa\" ? \"fa\" : \"en\"}\r\n data-locale={arabicUi ? \"ar\" : effectiveLocale}\r\n className={`rjd-root calendar-header zcal-custom${\r\n className ? ` ${className}` : \"\"\r\n }`}\r\n data-rjd-has-footer={showActionButtons ? \"true\" : \"false\"}\r\n data-rjd-empty-selection={!draftMatchesView ? \"true\" : undefined}\r\n data-rjd-calendar={calendar}\r\n style={{\r\n position: isBody ? \"fixed\" : \"absolute\",\r\n top: pos ? pos.top : -99999,\r\n left: pos ? pos.left : -99999,\r\n width: popupWidth,\r\n zIndex: isBody ? 100001 : 1000,\r\n transform: fit?.enabled ? `scale(${fit.scale})` : \"none\",\r\n transformOrigin: \"top center\",\r\n opacity: pos ? 1 : 0,\r\n pointerEvents: pos ? \"auto\" : \"none\",\r\n ...style,\r\n }}\r\n onMouseDown={(event) => event.stopPropagation()}\r\n onClick={(e) => e.stopPropagation()}\r\n >\r\n {/* Header */}\r\n <div className=\"header-main-div\">\r\n {resolvedLabel != null && resolvedLabel !== \"\" && (\r\n <div className=\"header-label\">\r\n {resolvedLabel}\r\n </div>\r\n )}\r\n <div className=\"selected-info-div\">\r\n <div className=\"selected-info-pill\">\r\n {selectedLabel || t.chooseDate}\r\n </div>\r\n {showTodayShortcut && (\r\n <button\r\n type=\"button\"\r\n className=\"today-btn\"\r\n disabled={isDateDisabled(today)}\r\n onClick={() => selectDay(new Date())}\r\n >\r\n {t.today}\r\n </button>\r\n )}\r\n </div>\r\n </div>\r\n\r\n {/* Month / Year */}\r\n <div className=\"header-select-div\">\r\n <ComboSelect\r\n options={monthOptions}\r\n dir={effectiveLocale === \"fa\" ? \"rtl\" : \"ltr\"}\r\n placeholderLabel={effectiveLocale === \"fa\" ? (arabicUi ? \"الشهر\" : \"ماه\") : \"Month\"}\r\n hasPlaceholder={false}\r\n selectedId={viewMonth}\r\n onChange={(e) => setViewMonth(Number(e.id))}\r\n placement=\"auto\"\r\n panelOffset={8}\r\n className=\"select-month\"\r\n />\r\n\r\n <ComboSelect\r\n options={yearOptions}\r\n dir=\"ltr\"\r\n placeholderLabel={effectiveLocale === \"fa\" ? (arabicUi ? \"السنة\" : \"سال\") : \"Year\"}\r\n hasPlaceholder={false}\r\n selectedId={viewYear}\r\n onChange={(e) => setViewYear(Number(e.id))}\r\n placement=\"auto\"\r\n panelOffset={8}\r\n className=\"select-year\"\r\n />\r\n </div>\r\n\r\n {/* Calendar */}\r\n <div className=\"zcal-body rjd-native-body\" ref={bodyRef}>\r\n <CalendarGrid\r\n calendar={calendar}\r\n locale={effectiveLocale}\r\n islamicDateAdjustment={islamicDateAdjustment}\r\n year={viewYear}\r\n month={viewMonth}\r\n selected={draftMatchesView ? draft : null}\r\n today={today}\r\n isDisabled={isDateDisabled}\r\n onSelect={selectDay}\r\n />\r\n </div>\r\n\r\n {/* Footer */}\r\n {showActionButtons && <div className=\"footer-div\">\r\n <button\r\n type=\"button\"\r\n className=\"footer-btn\"\r\n onClick={() => {\r\n // Confirm = انتشار مقدار درفت به بیرون\r\n const visuallyEmpty =\r\n popRef.current?.dataset.rjdEmptySelection === \"true\";\r\n const confirmed =\r\n draft ??\r\n (!visuallyEmpty ? implicitSelectionRef.current : null) ??\r\n implicitSelectionRef.current ??\r\n null;\r\n onConfirm(confirmed);\r\n onChange?.(confirmed);\r\n // مقدار کامیت‌شده جدید، همان draft است\r\n committedOnOpenRef.current = confirmed;\r\n // Let the consumer commit the confirmed value before its close\r\n // restoration logic runs (important after clearing an input).\r\n window.setTimeout(onClose, 0);\r\n }}\r\n >\r\n {t.confirm}\r\n </button>\r\n\r\n <button\r\n type=\"button\"\r\n className=\"footer-btn\"\r\n onClick={() => {\r\n // Cancel = برگرداندن درفت به مقدار کامیت‌شده و عدم انتشار\r\n setDraft(committedOnOpenRef.current ?? null);\r\n onClose();\r\n }}\r\n >\r\n {t.cancel}\r\n </button>\r\n </div>}\r\n </div>,\r\n portalEl\r\n );\r\n}\r\n\r\nexport default memo(JalaliDatepicker);\r\nexport { JalaliDatepicker };\r\n","import React from \"react\";\r\nimport \"../styles/styles.css\";\r\nimport { ArrowDownCombo, TickCircle } from \"./icons\";\r\n\r\n/* ---------- option ---------- */\r\nexport type Option = {\r\n id: string | number;\r\n label: React.ReactNode;\r\n value?: string;\r\n disabled?: boolean;\r\n};\r\n\r\n/* ---------- change payloads ---------- */\r\nexport type SingleChange = {\r\n id: string | number | null;\r\n value: string | null;\r\n label?: string | null;\r\n};\r\n\r\nexport type MultiChange = {\r\n ids: Array<string | number>;\r\n values: string[];\r\n labels: string[];\r\n};\r\n\r\n/* ---------- base props ---------- */\r\ntype BaseProps = {\r\n name?: string;\r\n options: ReadonlyArray<Option>;\r\n dir?: \"rtl\" | \"ltr\";\r\n disabled?: boolean;\r\n placeholderLabel?: string;\r\n hasPlaceholder?: boolean;\r\n showCheckIcon?: boolean;\r\n colorVar?: string;\r\n required?: boolean;\r\n containerStyle?: React.CSSProperties;\r\n className?: string;\r\n listClassName?: string;\r\n style?: React.CSSProperties;\r\n placement?: \"down\" | \"up\" | \"auto\";\r\n panelOffset?: number; // فاصله پنل از تریگر\r\n};\r\n\r\n/* ---------- variants ---------- */\r\ntype SingleProps = {\r\n multi?: false;\r\n defaultSelectedId?: string | number | null;\r\n selectedId?: string | number | null;\r\n onChange?: (sel: SingleChange) => void;\r\n};\r\n\r\ntype MultiProps = {\r\n multi: true;\r\n defaultSelectedIds?: Array<string | number> | null;\r\n selectedIds?: Array<string | number> | null;\r\n onChange?: (sel: MultiChange) => void;\r\n};\r\n\r\nexport type ComboSelectProps = BaseProps & (SingleProps | MultiProps);\r\n\r\n/* ---------- helpers ---------- */\r\nconst norm = (v: string | number) => String(v);\r\nfunction areOptionsEqual(a: ReadonlyArray<Option>, b: ReadonlyArray<Option>) {\r\n if (a === b) return true;\r\n if (a.length !== b.length) return false;\r\n for (let i = 0; i < a.length; i++) {\r\n const x = a[i],\r\n y = b[i];\r\n if (\r\n x.id !== y.id ||\r\n x.label !== y.label ||\r\n x.value !== y.value ||\r\n x.disabled !== y.disabled\r\n ) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nconst useResolvedColor = (colorVar?: string) =>\r\n React.useMemo<string | undefined>(\r\n () =>\r\n colorVar\r\n ? colorVar.startsWith(\"--\")\r\n ? `var(${colorVar})`\r\n : colorVar\r\n : undefined,\r\n [colorVar]\r\n );\r\n\r\n/* ====================================================== */\r\nfunction ComboSelectImpl(props: ComboSelectProps) {\r\n const {\r\n name,\r\n options,\r\n dir = \"rtl\",\r\n disabled = false,\r\n placeholderLabel = \"انتخاب کنید\",\r\n hasPlaceholder = true,\r\n showCheckIcon = false,\r\n colorVar,\r\n required = false,\r\n containerStyle,\r\n className,\r\n listClassName,\r\n style,\r\n placement = \"down\",\r\n panelOffset = 8,\r\n } = props;\r\n\r\n const resolvedColor = useResolvedColor(colorVar);\r\n const isMulti = props.multi === true;\r\n\r\n // initial states\r\n const computeInitialSingle = React.useCallback(() => {\r\n if (isMulti) return \"\";\r\n const { selectedId, defaultSelectedId } = props as SingleProps;\r\n const controlled = selectedId !== undefined;\r\n if (controlled) return selectedId == null ? \"\" : norm(selectedId!);\r\n if (defaultSelectedId != null) {\r\n const idStr = norm(defaultSelectedId);\r\n if (options.some((o) => norm(o.id) === idStr)) return idStr;\r\n }\r\n return hasPlaceholder ? \"\" : options[0] ? norm(options[0].id) : \"\";\r\n }, [isMulti, props, options, hasPlaceholder]);\r\n\r\n const computeInitialMulti = React.useCallback((): string[] => {\r\n if (!isMulti) return [];\r\n const { selectedIds, defaultSelectedIds } = props as MultiProps;\r\n const toIds = (arr?: Array<string | number> | null) =>\r\n (arr ?? []).map(norm);\r\n const controlled = selectedIds !== undefined;\r\n if (controlled) return toIds(selectedIds!);\r\n if (defaultSelectedIds != null)\r\n return toIds(defaultSelectedIds).filter((id) =>\r\n options.some((o) => norm(o.id) === id)\r\n );\r\n return [];\r\n }, [isMulti, props, options]);\r\n\r\n const [selectedId, setSelectedId] =\r\n React.useState<string>(computeInitialSingle);\r\n const [selectedIds, setSelectedIds] =\r\n React.useState<string[]>(computeInitialMulti);\r\n\r\n // sync controlled\r\n React.useEffect(() => {\r\n if (isMulti) return;\r\n const { selectedId } = props as SingleProps;\r\n if (selectedId !== undefined)\r\n setSelectedId(selectedId == null ? \"\" : norm(selectedId));\r\n }, [isMulti, props]);\r\n\r\n React.useEffect(() => {\r\n if (!isMulti) return;\r\n const { selectedIds } = props as MultiProps;\r\n if (selectedIds !== undefined)\r\n setSelectedIds((selectedIds ?? []).map(norm));\r\n }, [isMulti, props]);\r\n\r\n // panel\r\n const [open, setOpen] = React.useState(false);\r\n const [highlight, setHighlight] = React.useState<number>(-1);\r\n const [panelDir, setPanelDir] = React.useState<\"down\" | \"up\">(\r\n placement === \"up\" ? \"up\" : \"down\"\r\n );\r\n const [touched, setTouched] = React.useState(false);\r\n\r\n const rootRef = React.useRef<HTMLDivElement | null>(null);\r\n const panelRef = React.useRef<HTMLDivElement | null>(null); // NEW: ظرف لیست برای اسکرول\r\n\r\n const selectedOpt = React.useMemo(\r\n () =>\r\n !isMulti ? options.find((o) => norm(o.id) === selectedId) ?? null : null,\r\n [isMulti, options, selectedId]\r\n );\r\n\r\n const toggleOpen = React.useCallback(() => {\r\n if (!disabled) setOpen((o) => !o);\r\n }, [disabled]);\r\n const close = React.useCallback(() => setOpen(false), []);\r\n const openList = React.useCallback(\r\n () => !disabled && setOpen(true),\r\n [disabled]\r\n );\r\n\r\n // Close on every pointer interaction outside this combobox. Pointer events\n // cover mouse, touch and pen, and capture mode makes this reliable even when\n // a host component stops propagation during its own click handling.\n React.useEffect(() => {\n if (!open) return;\n const onPointerDown = (event: PointerEvent) => {\n const root = rootRef.current;\n const target = event.target;\n if (!root || !(target instanceof Node)) return;\n\n const interactionIsInside =\n root.contains(target) || event.composedPath().includes(root);\n if (!interactionIsInside) close();\n };\n document.addEventListener(\"pointerdown\", onPointerDown, true);\n return () =>\n document.removeEventListener(\"pointerdown\", onPointerDown, true);\n }, [open, close]);\n\r\n // placement auto\r\n React.useEffect(() => {\r\n if (!open) return;\r\n if (placement === \"down\" || placement === \"up\") {\r\n setPanelDir(placement);\r\n return;\r\n }\r\n const decide = () => {\r\n const el = rootRef.current;\r\n if (!el) return setPanelDir(\"down\");\r\n const rect = el.getBoundingClientRect();\r\n const viewportH =\r\n window.innerHeight || document.documentElement.clientHeight;\r\n const spaceAbove = rect.top;\r\n const spaceBelow = viewportH - rect.bottom;\r\n const estimated = Math.min(options.length, 8) * 40 + 16 + panelOffset;\r\n if (spaceBelow < estimated && spaceAbove > spaceBelow) setPanelDir(\"up\");\r\n else setPanelDir(\"down\");\r\n };\r\n decide();\r\n const onResize = () => decide();\r\n const onScroll = () => decide();\r\n window.addEventListener(\"resize\", onResize, { passive: true });\r\n window.addEventListener(\"scroll\", onScroll, { passive: true });\r\n return () => {\r\n window.removeEventListener(\"resize\", onResize);\r\n window.removeEventListener(\"scroll\", onScroll);\r\n };\r\n }, [open, placement, options.length, panelOffset]);\r\n\r\n const isRTL = dir === \"rtl\";\r\n const isEmptySingle = hasPlaceholder && selectedId === \"\";\r\n const isEmptyMulti = hasPlaceholder && selectedIds.length === 0;\r\n const showInvalid = !!(\r\n required &&\r\n (isMulti ? isEmptyMulti : isEmptySingle) &&\r\n touched\r\n );\r\n\r\n // texts\r\n const multiSelectedLabels = React.useMemo(() => {\r\n if (!isMulti) return [];\r\n const map = new Map(options.map((o) => [norm(o.id), o]));\r\n return selectedIds.map((id) => {\r\n const o = map.get(id);\r\n const raw = o?.label;\r\n return typeof raw === \"string\" ? raw : raw ? String(raw) : id;\r\n });\r\n }, [isMulti, selectedIds, options]);\r\n\r\n const triggerText: React.ReactNode = React.useMemo(() => {\r\n if (!isMulti)\r\n return selectedOpt\r\n ? selectedOpt.label\r\n : hasPlaceholder\r\n ? placeholderLabel\r\n : \"\";\r\n if (!multiSelectedLabels.length)\r\n return hasPlaceholder ? placeholderLabel : \"\";\r\n if (multiSelectedLabels.length <= 2) return multiSelectedLabels.join(\"، \");\r\n return `${multiSelectedLabels.slice(0, 2).join(\"، \")} …`;\r\n }, [\r\n isMulti,\r\n selectedOpt,\r\n hasPlaceholder,\r\n placeholderLabel,\r\n multiSelectedLabels,\r\n ]);\r\n\r\n // form hidden input\r\n const hiddenInputRef = React.useRef<HTMLInputElement | null>(null);\r\n const formValue = React.useMemo(() => {\r\n if (!name) return \"\";\r\n if (!isMulti) {\r\n if (selectedId === \"\") return \"\";\r\n const v =\r\n selectedOpt?.value ??\r\n (typeof selectedOpt?.label === \"string\"\r\n ? selectedOpt.label\r\n : String(selectedOpt?.id));\r\n return v ?? \"\";\r\n }\r\n if (selectedIds.length === 0) return \"\";\r\n const map = new Map(options.map((o) => [norm(o.id), o]));\r\n const vals = selectedIds.map((id) => {\r\n const o = map.get(id);\r\n if (!o) return id;\r\n return o.value ?? (typeof o.label === \"string\" ? o.label : String(o.id));\r\n });\r\n return vals.join(\",\");\r\n }, [name, isMulti, selectedId, selectedOpt, selectedIds, options]);\r\n\r\n const onHiddenInvalid = React.useCallback(\r\n (e: React.FormEvent<HTMLInputElement>) => {\r\n e.preventDefault();\r\n setTouched(true);\r\n },\r\n []\r\n );\r\n const onTriggerBlur = React.useCallback(() => {\r\n setTimeout(() => {\r\n if (required) {\r\n const val = hiddenInputRef.current?.value ?? \"\";\r\n if (hasPlaceholder && val === \"\") setTouched(true);\r\n }\r\n }, 0);\r\n }, [required, hasPlaceholder]);\r\n\r\n // emitters\r\n const emitSingle = React.useCallback(\r\n (o: Option | null) => {\r\n if (isMulti) return;\r\n (props as SingleProps).onChange?.({\r\n id: o?.id ?? null,\r\n value: o\r\n ? o.value ?? (typeof o.label === \"string\" ? o.label : null)\r\n : null,\r\n label: o && typeof o.label === \"string\" ? o.label : null,\r\n });\r\n },\r\n [isMulti, props]\r\n );\r\n\r\n const emitMulti = React.useCallback(\r\n (ids: string[]) => {\r\n if (!isMulti) return;\r\n const map = new Map(options.map((o) => [norm(o.id), o]));\r\n const labels: string[] = [];\r\n const values: string[] = [];\r\n ids.forEach((id) => {\r\n const o = map.get(id);\r\n const labelStr =\r\n typeof o?.label === \"string\" ? o!.label : o ? String(o.id) : id;\r\n const valStr =\r\n o?.value ??\r\n (typeof o?.label === \"string\" ? o!.label : String(o?.id ?? id));\r\n labels.push(labelStr);\r\n values.push(valStr);\r\n });\r\n (props as MultiProps).onChange?.({\r\n ids: ids.map((x) => x),\r\n labels,\r\n values,\r\n });\r\n },\r\n [isMulti, options, props]\r\n );\r\n\r\n const onSelectSingle = React.useCallback(\r\n (o: Option) => {\r\n if (isMulti || o.disabled) return;\r\n setSelectedId(norm(o.id));\r\n emitSingle(o);\r\n close();\r\n },\r\n [isMulti, emitSingle, close]\r\n );\r\n\r\n const onToggleMulti = React.useCallback(\r\n (o: Option) => {\r\n if (!isMulti || o.disabled) return;\r\n setSelectedIds((prev) => {\r\n const idStr = norm(o.id);\r\n const exists = prev.includes(idStr);\r\n const next = exists\r\n ? prev.filter((x) => x !== idStr)\r\n : [...prev, idStr];\r\n emitMulti(next);\r\n return next;\r\n });\r\n },\r\n [isMulti, emitMulti]\r\n );\r\n\r\n const onKeyDown = React.useCallback(\r\n (e: React.KeyboardEvent<HTMLButtonElement>) => {\r\n if (disabled) return;\r\n const count = options.length;\r\n if (e.key === \"ArrowDown\") {\r\n e.preventDefault();\r\n openList();\r\n setHighlight((h) => (h + 1) % Math.max(1, count));\r\n } else if (e.key === \"ArrowUp\") {\r\n e.preventDefault();\r\n openList();\r\n setHighlight((h) => (h <= 0 ? count - 1 : h - 1));\r\n } else if (e.key === \"Enter\" || e.key === \" \") {\r\n e.preventDefault();\r\n if (\r\n open &&\r\n highlight >= 0 &&\r\n options[highlight] &&\r\n !options[highlight].disabled\r\n ) {\r\n isMulti\r\n ? onToggleMulti(options[highlight])\r\n : onSelectSingle(options[highlight]);\r\n } else {\r\n openList();\r\n }\r\n if (!isMulti) close();\r\n } else if (e.key === \"Escape\") {\r\n close();\r\n }\r\n },\r\n [\r\n disabled,\r\n options,\r\n highlight,\r\n open,\r\n openList,\r\n close,\r\n isMulti,\r\n onToggleMulti,\r\n onSelectSingle,\r\n ]\r\n );\r\n\r\n /* --------- NEW: اسکرول خودکار به گزینهٔ انتخاب‌شده پس از بازشدن --------- */\r\n React.useEffect(() => {\r\n if (!open) return;\r\n\r\n // انتخاب ایندکس هدف برای هایلایت/اسکرول\r\n const targetIndex = (() => {\r\n if (!options.length) return -1;\r\n if (!isMulti) {\r\n if (selectedId === \"\") return -1;\r\n return options.findIndex((o) => norm(o.id) === selectedId);\r\n }\r\n if (selectedIds.length === 0) return -1;\r\n const first = selectedIds[0];\r\n return options.findIndex((o) => norm(o.id) === first);\r\n })();\r\n\r\n // هایلایت اولیه\r\n if (targetIndex >= 0) setHighlight(targetIndex);\r\n\r\n // پس از رندر، اسکرول پنل به آیتم منتخب\r\n const raf = requestAnimationFrame(() => {\r\n const panel = panelRef.current;\r\n if (!panel) return;\r\n\r\n // اگر DOM آیتم منتخب را پیدا کنیم، به مرکز پنل اسکرول می‌کنیم\r\n const selectedEl =\r\n panel.querySelector<HTMLElement>('[aria-selected=\"true\"]') ??\r\n (targetIndex >= 0\r\n ? (panel.querySelector(\r\n `[data-cs-index=\"${targetIndex}\"]`\r\n ) as HTMLElement | null)\r\n : null);\r\n\r\n if (selectedEl) {\r\n // روش مطمئن: محاسبه دستی برای قرارگیری وسط\r\n const elTop = selectedEl.offsetTop;\r\n const elH = selectedEl.offsetHeight;\r\n const desiredTop = elTop - panel.clientHeight / 2 + elH / 2;\r\n panel.scrollTop = Math.max(0, desiredTop);\r\n // یا می‌توانستیم از scrollIntoView استفاده کنیم:\r\n // selectedEl.scrollIntoView({ block: \"center\" });\r\n }\r\n });\r\n\r\n return () => cancelAnimationFrame(raf);\r\n }, [open, isMulti, selectedId, selectedIds, options]);\r\n\r\n return (\r\n <div\r\n ref={rootRef}\r\n className={`rjd-combo-select cs-wrapper ${className ?? \"\"}`}\n dir={dir}\r\n style={containerStyle}\r\n >\r\n {name && (\r\n <input\r\n ref={hiddenInputRef}\r\n tabIndex={-1}\r\n name={name}\r\n value={formValue}\r\n readOnly\r\n required={required}\r\n aria-hidden=\"true\"\r\n onInvalid={onHiddenInvalid}\r\n style={{\r\n position: \"absolute\",\r\n opacity: 0,\r\n width: 0,\r\n height: 0,\r\n pointerEvents: \"none\",\r\n }}\r\n />\r\n )}\r\n\r\n <button\r\n type=\"button\"\r\n className={`cs-trigger${showInvalid ? \" cs-trigger--invalid\" : \"\"}`}\r\n onClick={toggleOpen}\r\n onKeyDown={onKeyDown}\r\n onBlur={onTriggerBlur}\r\n aria-haspopup=\"listbox\"\r\n aria-expanded={open}\r\n aria-required={required || undefined}\r\n aria-invalid={showInvalid || undefined}\r\n disabled={disabled}\r\n style={{\r\n ...style,\r\n ...(resolvedColor ? { color: resolvedColor } : null),\r\n }}\r\n >\r\n <span className=\"cs-trigger-text\">{triggerText}</span>\r\n <span className=\"cs-arrow\" aria-hidden>\r\n <ArrowDownCombo />\r\n </span>\r\n </button>\r\n\r\n <div\r\n ref={panelRef}\r\n className={[\r\n \"cs-panel\",\r\n open ? \"\" : \"cs-hidden\",\r\n panelDir === \"up\" ? \"cs-panel--up\" : \"cs-panel--down\",\r\n listClassName ?? \"\",\r\n ].join(\" \")}\r\n role=\"listbox\"\r\n style={{\r\n marginTop: panelDir === \"down\" ? panelOffset : 0,\r\n marginBottom: panelDir === \"up\" ? panelOffset : 0,\r\n ...(resolvedColor ? { color: resolvedColor } : null),\r\n }}\r\n >\r\n {options.map((o, idx) => {\r\n const idStr = norm(o.id);\r\n const selected = isMulti\r\n ? selectedIds.includes(idStr)\r\n : idStr === selectedId;\r\n const toggle = isMulti\r\n ? () => onToggleMulti(o)\r\n : () => onSelectSingle(o);\r\n\r\n return (\r\n <div\r\n key={o.id}\r\n data-cs-index={idx} // کمک برای fallback اسکرول\r\n role=\"option\"\r\n aria-selected={selected}\r\n aria-disabled={o.disabled ? \"true\" : undefined}\r\n className={`cs-option${selected ? \" cs-option--selected\" : \"\"}`}\r\n onMouseEnter={() => setHighlight(idx)}\r\n onMouseLeave={() => setHighlight(-1)}\r\n onClick={toggle}\r\n >\r\n {isMulti && (\r\n <label\r\n className=\"cs-checkbox\"\r\n onClick={(e) => e.stopPropagation()}\r\n >\r\n <input\r\n type=\"checkbox\"\r\n checked={selected}\r\n onChange={() => onToggleMulti(o)}\r\n disabled={o.disabled}\r\n />\r\n <span className=\"cs-checkbox-box\" aria-hidden />\r\n </label>\r\n )}\r\n\r\n {showCheckIcon && (\r\n <span\r\n className=\"cs-check\"\r\n aria-hidden\r\n style={{\r\n visibility: selected ? \"visible\" : \"hidden\",\r\n order: isRTL ? 2 : 0,\r\n }}\r\n >\r\n <TickCircle />\r\n </span>\r\n )}\r\n\r\n <span style={{ flex: 1, textAlign: isRTL ? \"right\" : \"left\" }}>\r\n {o.label}\r\n </span>\r\n </div>\r\n );\r\n })}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nconst ComboSelect = React.memo(ComboSelectImpl, (prev, next) => {\r\n if (prev.name !== next.name) return false;\r\n if (prev.multi !== next.multi) return false;\r\n\r\n if (!prev.multi && !next.multi) {\r\n if (prev.defaultSelectedId !== next.defaultSelectedId) return false;\r\n if (prev.selectedId !== next.selectedId) return false;\r\n }\r\n\r\n if (prev.multi && next.multi) {\r\n const a = prev.selectedIds ?? null,\r\n b = next.selectedIds ?? null;\r\n if ((a === null) !== (b === null)) return false;\r\n if (a && b) {\r\n if (a.length !== b.length) return false;\r\n for (let i = 0; i < a.length; i++) if (a[i] !== b[i]) return false;\r\n }\r\n const da = prev.defaultSelectedIds ?? null,\r\n db = next.defaultSelectedIds ?? null;\r\n if ((da === null) !== (db === null)) return false;\r\n if (da && db) {\r\n if (da.length !== db.length) return false;\r\n for (let i = 0; i < da.length; i++) if (da[i] !== db[i]) return false;\r\n }\r\n }\r\n\r\n if (prev.dir !== next.dir) return false;\r\n if (prev.disabled !== next.disabled) return false;\r\n if (prev.placeholderLabel !== next.placeholderLabel) return false;\r\n if (prev.hasPlaceholder !== next.hasPlaceholder) return false;\r\n if (prev.showCheckIcon !== next.showCheckIcon) return false;\r\n if (prev.colorVar !== next.colorVar) return false;\r\n if (prev.required !== next.required) return false;\r\n if (prev.className !== next.className) return false;\r\n if (prev.listClassName !== next.listClassName) return false;\r\n if (prev.style !== next.style) return false;\r\n if (prev.containerStyle !== next.containerStyle) return false;\r\n if (prev.onChange !== next.onChange) return false;\r\n if (prev.placement !== next.placement) return false;\r\n if (prev.panelOffset !== next.panelOffset) return false;\r\n\r\n return areOptionsEqual(prev.options, next.options);\r\n});\r\n\r\nexport default ComboSelect;\r\nexport { ComboSelect };\r\n","import * as React from \"react\";\r\n\r\nexport const ArrowDownCombo: React.FC<React.SVGProps<SVGSVGElement>> = (p) => (\r\n <svg\r\n viewBox=\"0 0 24 24\"\r\n width=\"16\"\r\n height=\"16\"\r\n aria-hidden\r\n focusable=\"false\"\r\n {...p}\r\n >\r\n <polyline\r\n points=\"6 9 12 15 18 9\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"2\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n </svg>\r\n);\r\n\r\nexport const TickCircle: React.FC<React.SVGProps<SVGSVGElement>> = (p) => (\r\n <svg\r\n viewBox=\"0 0 24 24\"\r\n width=\"16\"\r\n height=\"16\"\r\n aria-hidden\r\n focusable=\"false\"\r\n {...p}\r\n >\r\n <circle\r\n cx=\"12\"\r\n cy=\"12\"\r\n r=\"10\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"2\"\r\n />\r\n <polyline\r\n points=\"8 12 11 15 16 9\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"2\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n </svg>\r\n);\r\n","import * as React from \"react\";\r\nimport { useMemo } from \"react\";\r\nimport {\r\n WEEKDAYS,\r\n ISLAMIC_WEEKDAYS_AR,\r\n addLocalDays,\r\n fromCalendarParts,\r\n toCalendarObject,\r\n type CalendarLocale,\r\n type CalendarSystem,\r\n type IslamicDateAdjustment,\r\n} from \"../utils/calendar\";\r\n\r\ntype CalendarGridProps = {\r\n calendar: CalendarSystem;\r\n locale: CalendarLocale;\r\n islamicDateAdjustment: IslamicDateAdjustment;\r\n year: number;\r\n month: number;\r\n selected: Date | null;\r\n today: Date;\r\n isDisabled: (date: Date | null) => boolean;\r\n onSelect: (date: Date) => void;\r\n};\r\n\r\nconst sameLocalDay = (a: Date | null, b: Date | null) =>\r\n !!a && !!b &&\r\n a.getFullYear() === b.getFullYear() &&\r\n a.getMonth() === b.getMonth() &&\r\n a.getDate() === b.getDate();\r\n\r\nconst digits = (value: number, calendar: CalendarSystem, locale: CalendarLocale) =>\r\n calendar === \"islamic\" && locale === \"fa\"\r\n ? value.toLocaleString(\"ar-EG-u-nu-arab\", { useGrouping: false })\r\n : locale === \"fa\"\r\n ? value.toLocaleString(\"fa-IR\", { useGrouping: false })\r\n : String(value);\r\n\r\nexport function CalendarGrid({\r\n calendar,\r\n locale,\r\n islamicDateAdjustment,\r\n year,\r\n month,\r\n selected,\r\n today,\r\n isDisabled,\r\n onSelect,\r\n}: CalendarGridProps) {\r\n const cells = useMemo(() => {\r\n const first = fromCalendarParts(\r\n year,\r\n month,\r\n 1,\r\n calendar,\r\n locale,\r\n islamicDateAdjustment\r\n );\r\n if (!first) return [];\r\n const saturdayBasedOffset = (first.getDay() + 1) % 7;\r\n const gridStart = addLocalDays(first, -saturdayBasedOffset);\r\n return Array.from({ length: 42 }, (_, index) => {\r\n const date = addLocalDays(gridStart, index);\r\n const object = toCalendarObject(date, calendar, locale, islamicDateAdjustment);\r\n return {\r\n date,\r\n day: object.day,\r\n currentMonth: object.year === year && object.month.number === month,\r\n };\r\n });\r\n }, [calendar, locale, islamicDateAdjustment, year, month]);\r\n\r\n return (\r\n <div className=\"rjd-calendar-grid\" role=\"grid\" aria-label=\"calendar\">\r\n <div className=\"rjd-weekdays\" role=\"row\">\r\n {(calendar === \"islamic\" && locale === \"fa\"\r\n ? ISLAMIC_WEEKDAYS_AR\r\n : WEEKDAYS[locale]\r\n ).map((weekday) => (\r\n <span key={weekday} role=\"columnheader\">{weekday}</span>\r\n ))}\r\n </div>\r\n <div className=\"rjd-days\" role=\"rowgroup\">\r\n {cells.map(({ date, day, currentMonth }) => {\r\n const disabled = isDisabled(date);\r\n const selectedDay = sameLocalDay(date, selected);\r\n return (\r\n <button\r\n key={`${date.getFullYear()}-${date.getMonth()}-${date.getDate()}`}\r\n type=\"button\"\r\n className=\"rjd-day\"\r\n role=\"gridcell\"\r\n aria-selected={selectedDay}\r\n aria-disabled={disabled}\r\n data-outside-month={!currentMonth || undefined}\r\n data-today={sameLocalDay(date, today) || undefined}\r\n data-rjd-disabled={disabled || undefined}\r\n disabled={disabled}\r\n tabIndex={selectedDay ? 0 : -1}\r\n onClick={() => onSelect(date)}\r\n onKeyDown={(event) => {\r\n const delta =\r\n event.key === \"ArrowRight\" ? (locale === \"fa\" ? -1 : 1) :\r\n event.key === \"ArrowLeft\" ? (locale === \"fa\" ? 1 : -1) :\r\n event.key === \"ArrowDown\" ? 7 :\r\n event.key === \"ArrowUp\" ? -7 : 0;\r\n if (!delta) return;\r\n event.preventDefault();\r\n const target = event.currentTarget.parentElement?.querySelectorAll<HTMLButtonElement>(\".rjd-day\");\r\n const index = target ? Array.from(target).indexOf(event.currentTarget) : -1;\r\n target?.[index + delta]?.focus();\r\n }}\r\n >\r\n {digits(day, calendar, locale)}\r\n </button>\r\n );\r\n })}\r\n </div>\r\n </div>\r\n );\r\n}\r\n","function t(e){return t=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},t(e)}function e(t){return function(t){if(Array.isArray(t))return c(t)}(t)||n(t)||h(t)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function n(t){if(\"undefined\"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t[\"@@iterator\"])return Array.from(t)}function r(t,e){var n=\"undefined\"!=typeof Symbol&&t[Symbol.iterator]||t[\"@@iterator\"];if(!n){if(Array.isArray(t)||(n=h(t))||e&&t&&\"number\"==typeof t.length){n&&(t=n);var r=0,i=function(){};return{s:i,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var a,s=!0,u=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){u=!0,a=t},f:function(){try{s||null==n.return||n.return()}finally{if(u)throw a}}}}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function a(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?i(Object(n),!0).forEach((function(e){s(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function s(t,e,n){return(e=y(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function u(t,e){return l(t)||function(t,e){var n=null==t?null:\"undefined\"!=typeof Symbol&&t[Symbol.iterator]||t[\"@@iterator\"];if(null!=n){var r,i,a,s,u=[],o=!0,h=!1;try{if(a=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;o=!1}else for(;!(o=(r=a.call(n)).done)&&(u.push(r.value),u.length!==e);o=!0);}catch(t){h=!0,i=t}finally{try{if(!o&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(h)throw i}}return u}}(t,e)||h(t,e)||o()}function o(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}function h(t,e){if(t){if(\"string\"==typeof t)return c(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return\"Object\"===n&&t.constructor&&(n=t.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(t):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(t,e):void 0}}function c(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function l(t){if(Array.isArray(t))return t}function f(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,y(r.key),r)}}function y(e){var n=function(e,n){if(\"object\"!==t(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,n||\"default\");if(\"object\"!==t(i))return i;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===n?String:Number)(e)}(e,\"string\");return\"symbol\"===t(n)?n:String(n)}function d(t,e,n){!function(t,e){if(e.has(t))throw new TypeError(\"Cannot initialize the same private elements twice on an object\")}(t,e),e.set(t,n)}function m(t,e){return function(t,e){if(e.get)return e.get.call(t);return e.value}(t,g(t,e,\"get\"))}function v(t,e,n){return function(t,e,n){if(e.set)e.set.call(t,n);else{if(!e.writable)throw new TypeError(\"attempted to set read only private field\");e.value=n}}(t,g(t,e,\"set\"),n),n}function g(t,e,n){if(!e.has(t))throw new TypeError(\"attempted to \"+n+\" private field on non-instance\");return e.get(t)}function p(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,\"default\")?t.default:t}function k(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,\"default\")?t.default:t}var b={name:\"gregorian_en\",months:[[\"January\",\"Jan\"],[\"February\",\"Feb\"],[\"March\",\"Mar\"],[\"April\",\"Apr\"],[\"May\",\"May\"],[\"June\",\"Jun\"],[\"July\",\"Jul\"],[\"August\",\"Aug\"],[\"September\",\"Sep\"],[\"October\",\"Oct\"],[\"November\",\"Nov\"],[\"December\",\"Dec\"]],weekDays:[[\"Saturday\",\"Sat\"],[\"Sunday\",\"Sun\"],[\"Monday\",\"Mon\"],[\"Tuesday\",\"Tue\"],[\"Wednesday\",\"Wed\"],[\"Thursday\",\"Thu\"],[\"Friday\",\"Fri\"]],digits:[\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\"],meridiems:[[\"AM\",\"am\"],[\"PM\",\"pm\"]]},w={name:\"gregorian\",startYear:1,yearLength:365,epoch:1721424,century:20,weekStartDayIndex:1,getMonthLengths:function(t){return[31,t?29:28,31,30,31,30,31,31,30,31,30,31]},isLeap:function(t){return t%4==0&&t%100!=0||t%400==0},getLeaps:function(t){if(0!==t){for(var e=t>0?1:-1,n=[];t>0?e<=t:t<=e;)this.isLeap(e)&&n.push(e),t>0?e++:e--;return n}},getDayOfYear:function(t){for(var e=t.year,n=t.month,r=t.day,i=this.getMonthLengths(this.isLeap(e)),a=0;a<n.index;a++)r+=i[a];return r},getAllDays:function(t){var e=t.year;return this.yearLength*(e-1)+this.leapsLength(e)+this.getDayOfYear(t)},leapsLength:function(t){return((t-1)/4|0)+(-(t-1)/100|0)+((t-1)/400|0)},guessYear:function(t,e){return~~(t/365.24)+(e>0?1:-1)}};function D(t){return t&&t.constructor===Object}function M(t){if(!isNaN(t))return parseInt(t)}function O(t){return Array.isArray(t)}function S(t,e,n){return void 0===t||t<e||t>n}var Y=new WeakMap,L=new WeakMap,W=new WeakMap,j=new WeakMap,x=new WeakMap,N=new WeakMap,A=new WeakMap,I=new WeakMap,P=new WeakMap,T=new WeakMap,F=new WeakMap,E=new WeakMap,H=new WeakMap,V=new WeakMap,J=new WeakMap,_=new WeakMap,C=new WeakMap,U=new WeakMap,R=new WeakMap,z=function(){function i(t){var e=this;!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,i),d(this,Y,{writable:!0,value:void 0}),d(this,L,{writable:!0,value:void 0}),d(this,W,{writable:!0,value:void 0}),d(this,j,{writable:!0,value:void 0}),d(this,x,{writable:!0,value:void 0}),d(this,N,{writable:!0,value:void 0}),d(this,A,{writable:!0,value:void 0}),d(this,I,{writable:!0,value:void 0}),d(this,P,{writable:!0,value:b}),d(this,T,{writable:!0,value:w}),d(this,F,{writable:!0,value:!1}),d(this,E,{writable:!0,value:{}}),d(this,H,{writable:!0,value:/^\\d{4}-\\d\\d-\\d\\dT\\d\\d:\\d\\d:\\d\\d\\.\\d\\d\\dZ$/}),d(this,V,{writable:!0,value:[]}),d(this,J,{writable:!0,value:!0}),d(this,_,{writable:!0,value:function(t,n){switch(t){case\"YYYY\":return[\"year\",n];case\"YY\":return[\"year\",\"\".concat(m(e,T).century).concat(n)];case\"MMMM\":case\"MMM\":return[\"month\",e.months.findIndex((function(t){var e=t.name,r=t.shortName;return new RegExp(n,\"i\").test(e+r)}))+1];case\"MM\":case\"M\":return[\"month\",n];case\"DD\":case\"D\":return[\"day\",n];case\"HH\":case\"H\":return[\"hour\",n];case\"hh\":case\"h\":var r=M(n);return[\"hour\",r>12?r-12:r];case\"mm\":case\"m\":return[\"minute\",n];case\"ss\":case\"s\":return[\"second\",n];case\"SSS\":case\"SS\":case\"S\":return[\"millisecond\",n];default:return[]}}}),d(this,C,{writable:!0,value:function(){return 0===m(e,Y)&&0!==m(e,T).startYear}}),d(this,U,{writable:!0,value:function(){if(m(e,J)&&e.isValid){var t=Math.floor,n=function(e,n){return[(a=e,(a<0?-1:1)*Math.abs(t(e/n))),(r=e,i=n,(r<0&&-0!==t(r%i)?i:0)+t(e%n))];var r,i,a},r=function(){if(m(e,L)<0||m(e,L)>11){var t=m(e,L)<0?-1:1,r=u(n(m(e,L),12),2),i=r[0],a=r[1];v(e,Y,m(e,Y)+i),v(e,L,a),m(e,C).call(e)&&v(e,Y,t)}};for(v(e,J,!1),[[\"millisecond\",\"second\",1e3],[\"second\",\"minute\",60],[\"minute\",\"hour\",60],[\"hour\",\"day\",24]].forEach((function(t){var r=u(t,3),i=r[0],a=r[1],s=r[2];if(function(t,e){return t>=e||t<0}(e[i],s)){var o=u(n(e[i],s),2),h=o[0],c=o[1];e[a]+=h,e[i]=c}})),v(e,J,!0),r();m(e,W)<-m(e,T).yearLength||m(e,W)>m(e,T).yearLength;){if(m(e,L)>0){for(var i=m(e,T).getMonthLengths(e.isLeap),a=0;a<m(e,L);a++)v(e,W,m(e,W)+i[a]);v(e,L,0)}var s=e.isLeap?e.calendar.yearLength+1:e.calendar.yearLength;v(e,W,m(e,W)+s*(m(e,W)<0?1:-1)),v(e,Y,m(e,Y)+(m(e,W)<0?-1:1))}for(;;){var o;for(r();m(e,W)<1;)v(e,L,m(e,L)-1),r(),v(e,W,e.month.length+m(e,W));if(m(e,W)<=e.month.length||isNaN(m(e,W)))break;v(e,W,m(e,W)-e.month.length),v(e,L,(o=m(e,L),o++,o))}m(e,j)||v(e,j,0),m(e,x)||v(e,x,0),m(e,N)||v(e,N,0),m(e,A)||v(e,A,0)}}}),d(this,R,{writable:!0,value:function(){return(m(e,E).weekDays||m(e,P).weekDays).map((function(t,n){var r=u(t,2),i=r[0],a=r[1],s=n-e.weekStartDayIndex;return s<0&&(s+=7),{name:i,shortName:a,index:s,number:s+1,toString:function(){return this.number.toString()},valueOf:function(){return this.number}}}))}});var n=D(t)?a({},t):t,r=!0;if(n&&\"boolean\"!=typeof n||(n={date:new Date}),D(n)||(n={date:n}),0!==Object.keys(n).length){for(var s in D(n.calendar)&&v(this,T,n.calendar),D(n.locale)&&v(this,P,n.locale),isNaN(n.year)&&isNaN(n.month)&&isNaN(n.day)&&!n.date&&(n.date=new Date),n.date&&(\"string\"==typeof n.date&&n.format&&v(this,I,n.format),this.setDate(n.date),n.calendar&&this.convert(n.calendar),r=!1),delete n.calendar,delete n.locale,delete n.date,n)this.set(s,n[s]);m(this,C).call(this)&&v(this,Y,-1),r&&m(this,U).call(this)}}var s,c,y;return s=i,c=[{key:\"parse\",value:function(t){if(!t)return this;var i,a,s=m(this,I),c=m(this,P).digits,f=r(c);try{for(f.s();!(i=f.n()).done;){var y=i.value;t=t.replace(new RegExp(y,\"g\"),c.indexOf(y))}}catch(t){f.e(t)}finally{f.f()}if(s)for(var d=s.split(/[^\\w\\u0600-\\u06FF]/),g=t.split(/[^\\w\\u0600-\\u06FF]/),p=0;p<d.length;p++)this.set.apply(this,e(m(this,_).call(this,d[p],g[p])));else{var k=t.match(/(-?\\d{2,4})?\\W?([A-z]{3,9}|\\d{1,2})?\\W?(\\d{1,2})?\\W?(\\d{1,2})?\\W?(\\d{1,2})?\\W?(\\d{1,2})?\\W?(\\d{1,3})?\\W?(am|pm)?/),b=(l(a=k)||n(a)||h(a)||o()).slice(1),w=b[1];w&&(w=/\\d+/.test(w)?M(w)-1:this.months.findIndex((function(t){return new RegExp(w,\"i\").test(t.name)}))),b[1]=w;var D=u(b.map(M),7),O=D[0],S=D[1],T=D[2],F=D[3],E=D[4],H=D[5],V=D[6];v(this,Y,O),v(this,L,S),v(this,W,T),v(this,j,F),v(this,x,E),v(this,N,H),v(this,A,V)}var J=u(m(this,P).meridiems[1],2),C=J[0],R=J[1];return m(this,j)<12&&(t.includes(C)||t.includes(R))&&v(this,j,m(this,j)+12),m(this,U).call(this),this}},{key:\"convert\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:w,e=arguments.length>1?arguments[1]:void 0;if(D(e)&&v(this,P,e),!D(t)||t.name===m(this,T).name)return this;var n=this.toJulianDay()-t.epoch,r=new i({calendar:t,year:t.guessYear(n,m(this,Y)),month:1,day:1});return r.day+=n-r.toDays(),v(this,Y,r.year),v(this,L,r.month.index),v(this,W,r.day),v(this,T,t),this}},{key:\"format\",value:function(e,n){if(!this.isValid||e&&\"string\"!=typeof e)return\"\";e||(e=m(this,I)||\"YYYY/MM/DD\"),O(n)||(n=[]),n=(n=n.concat(m(this,V))).filter((function(e){return\"string\"==typeof e||(console.warn(\"type of all items in the ignore list must be string, found\",t(e)),!1)})).map((function(t){return t.replace(/[*/+\\-()[\\]{}\\s$^]/g,(function(t){return\"\\\\\"+t}))}));var i,a=new RegExp(\"\".concat(n.join(\"|\")).concat(n.length>0?\"|\":\"\",\"YYYY|YY|MMMM|MMM|MM|M|WW|W|DDDD|DDD|DD|D|dddd|ddd|dd|d|HH|H|hh|h|mm|m|ss|s|SSS|SS|S|A|a|.\"),\"g\"),s=\"\",u=r(e.match(a)||[]);try{for(u.s();!(i=u.n()).done;){var o=i.value,h=this.getValue(o);s+=n.includes(o)?o:0===h?h:h||o}}catch(t){u.e(t)}finally{u.f()}var c=this.digits;return s.replace(/[0-9]/g,(function(t){return c[t]}))}},{key:\"getProperty\",value:function(t){return this.getValue(t)}},{key:\"getValue\",value:function(t){var e=function(t){return t<10?\"0\"+t:t};switch(t){case\"YYYY\":return this.year;case\"YY\":return this.year.toString().substring(2,4);case\"MMMM\":return this.month.name;case\"MMM\":return this.month.shortName;case\"MM\":return e(this.month.number);case\"M\":return this.month.number;case\"WW\":return e(this.weekOfYear);case\"W\":return this.weekOfYear;case\"DDDD\":case\"DDD\":return this.dayOfYear;case\"DD\":return e(this.day);case\"D\":return this.day;case\"HH\":return e(this.hour);case\"H\":return this.hour;case\"dddd\":return this.weekDay.name;case\"ddd\":return this.weekDay.shortName;case\"dd\":return e(this.weekDay.number);case\"d\":return this.weekDay.number;case\"hh\":return e(this.hour>12?this.hour-12:this.hour||12);case\"h\":return this.hour>12?this.hour-12:this.hour||12;case\"mm\":return e(this.minute);case\"m\":return this.minute;case\"ss\":return e(this.second);case\"s\":return this.second;case\"SSS\":return m(this,A)<10?\"00\".concat(m(this,A)):m(this,A)<100?\"0\".concat(m(this,A)):m(this,A);case\"SS\":return m(this,A)<10?\"00\":m(this,A)<100?(\"0\"+m(this,A)).substring(2,0):m(this,A).toString().substring(0,2);case\"S\":return m(this,A)<10||m(this,A)<100?\"0\":m(this,A).toString().substring(0,1);case\"a\":return this.hour>=12?m(this,P).meridiems[1][1]:m(this,P).meridiems[0][1];case\"A\":return this.hour>=12?m(this,P).meridiems[1][0]:m(this,P).meridiems[0][0];default:return\"\"}}},{key:\"setYear\",value:function(t){return this.year=t,this}},{key:\"setMonths\",value:function(t){return this.months=t,this}},{key:\"setMonth\",value:function(t){return this.month=t,this}},{key:\"setWeekDays\",value:function(t){return this.weekDays=t,this}},{key:\"setDigits\",value:function(t){return this.digits=t,this}},{key:\"setDay\",value:function(t){return this.day=t,this}},{key:\"setHour\",value:function(t){return this.hour=t,this}},{key:\"setMinute\",value:function(t){return this.minute=t,this}},{key:\"setSecond\",value:function(t){return this.second=t,this}},{key:\"setMillisecond\",value:function(t){return this.millisecond=t,this}},{key:\"setFormat\",value:function(t){return v(this,I,t),this}},{key:\"setLocale\",value:function(t){return this.locale=t,this}},{key:\"setCalendar\",value:function(t){return this.calendar=t,this}},{key:\"setDate\",value:function(t){if(\"string\"==typeof t){if(!m(this,H).test(t))return this.parse(t);t=new Date(t)}return\"number\"==typeof t&&(t=new Date(t)),t instanceof Date&&(v(this,T,w),v(this,Y,t.getFullYear()),v(this,L,t.getMonth()),v(this,W,t.getDate()),v(this,j,t.getHours()),v(this,x,t.getMinutes()),v(this,N,t.getSeconds()),v(this,A,t.getMilliseconds()),v(this,F,!1)),t instanceof i&&(v(this,Y,t.year),v(this,L,t.month.index),v(this,W,t.day),v(this,j,t.hour),v(this,x,t.minute),v(this,N,t.second),v(this,A,t.millisecond),v(this,P,t.locale),v(this,I,t._format),v(this,T,t.calendar),v(this,F,t.isUTC),v(this,V,t.ignoreList),v(this,E,t.custom)),this}},{key:\"setIgnoreList\",value:function(t){return this.ignoreList=t,this}},{key:\"set\",value:function(t,e){if(null==t)return this;if(D(t)){var n=a({},t);for(var r in n.date&&(this.setDate(n.date),delete n.date),n.calendar&&(this.convert(n.calendar),delete n.calendar),n.locale&&(this.setLocale(n.locale),delete n.locale),v(this,J,!1),n)this.set(r,n[r]);return v(this,J,!0),m(this,U).call(this),this}\"format\"===t&&(t=\"_format\");try{this[t]=e}catch(t){}return this}},{key:\"add\",value:function(t,e){if(!(t=M(t))||!e)return this;switch(e){case\"years\":case\"y\":e=\"year\";break;case\"months\":case\"M\":e=\"month\";break;case\"days\":case\"d\":e=\"day\";break;case\"hours\":case\"h\":e=\"hour\";break;case\"minutes\":case\"m\":e=\"minute\";break;case\"seconds\":case\"s\":e=\"second\";break;case\"milliseconds\":case\"ms\":e=\"millisecond\"}return this[e]+=t,this}},{key:\"subtract\",value:function(t,e){return this.add(-t,e)}},{key:\"toFirstOfYear\",value:function(){return this.month=1,this.day=1,this}},{key:\"toLastOfYear\",value:function(){return this.day>=29&&(this.day=29),this.month=12,this.toLastOfMonth(),this}},{key:\"toFirstOfMonth\",value:function(){return v(this,W,1),this}},{key:\"toLastOfMonth\",value:function(){return v(this,W,0),v(this,L,m(this,L)+1),m(this,U).call(this),this}},{key:\"toFirstOfWeek\",value:function(){return this.day-=this.weekDay.index,this}},{key:\"toLastOfWeek\",value:function(){return this.day+=6-this.weekDay.index,this}},{key:\"toFirstWeekOfYear\",value:function(){return this.toFirstOfYear(),0===this.weekDay.index?this:this.toLastOfWeek().setDay(this.day+1)}},{key:\"toLastWeekOfYear\",value:function(){return this.toLastOfYear().toFirstOfWeek()}},{key:\"toString\",value:function(){return this.format()}},{key:\"toDate\",value:function(){var t=new i(this);return\"gregorian\"!==m(this,T).name&&t.convert(w),new Date(t.year,t.month.index,t.day,t.hour,t.minute,t.second,t.millisecond)}},{key:\"toUTC\",value:function(){return m(this,F)||(this.minute+=this.toDate().getTimezoneOffset(),v(this,F,!0)),this}},{key:\"toUnix\",value:function(){return this.unix}},{key:\"toJulianDay\",value:function(){return this.toDays()+m(this,T).epoch}},{key:\"toObject\",value:function(){return{year:m(this,Y),month:this.month,day:m(this,W),weekDay:this.weekDay,hour:m(this,j),minute:m(this,x),second:m(this,N),millisecond:m(this,A),weekOfYear:this.weekOfYear,dayOfYear:this.dayOfYear,daysLeft:this.daysLeft,calendar:m(this,T),locale:m(this,P),format:m(this,I)||\"YYYY/MM/DD\",ignoreList:m(this,V)}}},{key:\"toJSON\",value:function(){return this.valueOf()}},{key:\"valueOf\",value:function(){return this.toDate().valueOf()}},{key:\"toDays\",value:function(){if(this.isValid)return m(this,T).getAllDays(this)}},{key:\"dayOfBeginning\",get:function(){return this.toDays()}},{key:\"dayOfYear\",get:function(){if(this.isValid)return m(this,T).getDayOfYear(this)}},{key:\"weekOfYear\",get:function(){if(this.isValid)return 1+~~(this.dayOfYear/7)}},{key:\"daysLeft\",get:function(){if(this.isValid){var t=m(this,T).yearLength;return(this.isLeap?t+1:t)-this.dayOfYear}}},{key:\"year\",get:function(){return m(this,Y)},set:function(t){v(this,Y,M(t)),m(this,U).call(this)}},{key:\"month\",get:function(){return this.months[m(this,L)]||{}},set:function(t){var e;t=null!==(e=M(t.valueOf())-1)&&void 0!==e?e:void 0,v(this,L,t),S(t,0,11)&&m(this,U).call(this)}},{key:\"monthIndex\",get:function(){return m(this,L)}},{key:\"day\",get:function(){return m(this,W)},set:function(t){t=M(t),v(this,W,t),S(t,1,28)&&m(this,U).call(this)}},{key:\"weekDay\",get:function(){if(!this.isValid)return{};var t=(this.toJulianDay()+3)%7;return m(this,R).call(this)[t]}},{key:\"hour\",get:function(){return m(this,j)},set:function(t){t=M(t),v(this,j,t),S(t,0,23)&&m(this,U).call(this)}},{key:\"minute\",get:function(){return m(this,x)},set:function(t){t=M(t),v(this,x,t),S(t,0,59)&&m(this,U).call(this)}},{key:\"second\",get:function(){return m(this,N)},set:function(t){t=M(t),v(this,N,t),S(t,0,59)&&m(this,U).call(this)}},{key:\"millisecond\",get:function(){return m(this,A)},set:function(t){t=M(t),v(this,A,t),S(t,0,999)&&m(this,U).call(this)}},{key:\"months\",get:function(){var t=m(this,T).getMonthLengths(this.isLeap),e=(m(this,E).months||m(this,P).months).map((function(e,n){var r=u(e,2);return{name:r[0],shortName:r[1],length:t[n],index:n,number:n+1,toString:function(){return this.number.toString()},valueOf:function(){return this.number}}}));return e},set:function(t){if(!t)return delete m(this,E).months;O(t)&&12===t.length&&t.every((function(t){return O(t)&&2===t.length&&t.every((function(t){return\"string\"==typeof t}))}))&&(m(this,E).months=t)}},{key:\"weekDays\",get:function(){return m(this,R).call(this).sort((function(t,e){return t.index-e.index}))},set:function(t){if(!t)return delete m(this,E).weekDays;O(t)&&7===t.length&&t.every((function(t){return O(t)&&2===t.length&&t.every((function(t){return\"string\"==typeof t}))}))&&(m(this,E).weekDays=t)}},{key:\"leaps\",get:function(){return m(this,T).getLeaps(m(this,Y))}},{key:\"calendar\",get:function(){return m(this,T)},set:function(t){this.convert(t)}},{key:\"locale\",get:function(){return m(this,P)},set:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:b;D(t)&&v(this,P,t)}},{key:\"custom\",get:function(){return m(this,E)}},{key:\"meridiems\",get:function(){return m(this,P).meridiems}},{key:\"digits\",get:function(){return m(this,E).digits||m(this,P).digits},set:function(t){if(!t)return delete m(this,E).digits;O(t)&&10===t.length&&(m(this,E).digits=t)}},{key:\"_format\",get:function(){return m(this,I)},set:function(t){\"string\"==typeof t&&v(this,I,t)}},{key:\"isLeap\",get:function(){return m(this,T).isLeap(m(this,Y))}},{key:\"isValid\",get:function(){return!isNaN(m(this,Y))&&!isNaN(m(this,L))&&!isNaN(m(this,W))}},{key:\"isUTC\",get:function(){return m(this,F)}},{key:\"unix\",get:function(){return(this.valueOf()-this.millisecond)/1e3}},{key:\"ignoreList\",get:function(){return m(this,V)},set:function(t){O(t)&&v(this,V,t)}},{key:\"weekStartDayIndex\",get:function(){return m(this,T).weekStartDayIndex},set:function(t){void 0!==(t=M(t))&&(m(this,T).weekStartDayIndex=Math.abs(t)%7)}},{key:\"date\",set:function(t){this.setDate(t)}}],c&&f(s.prototype,c),y&&f(s,y),Object.defineProperty(s,\"prototype\",{writable:!1}),i}(),$=p(k(z));export{$ as default};\n","import DateObject from \"react-date-object\";\r\nimport arabic from \"react-date-object/calendars/arabic.js\";\r\nimport gregorian from \"react-date-object/calendars/gregorian.js\";\r\nimport persian from \"react-date-object/calendars/persian.js\";\r\nimport arabic_en from \"react-date-object/locales/arabic_en.js\";\r\nimport arabic_fa from \"react-date-object/locales/arabic_fa.js\";\r\nimport gregorian_en from \"react-date-object/locales/gregorian_en.js\";\r\nimport gregorian_fa from \"react-date-object/locales/gregorian_fa.js\";\r\nimport persian_en from \"react-date-object/locales/persian_en.js\";\r\nimport persian_fa from \"react-date-object/locales/persian_fa.js\";\r\n\r\nexport type CalendarSystem = \"jalali\" | \"islamic\" | \"gregorian\";\r\nexport type CalendarLocale = \"fa\" | \"en\";\r\nexport type IslamicDateAdjustment = -2 | -1 | 0 | 1 | 2;\r\n\r\nconst DAY_MS = 86_400_000;\r\n\r\nexport const CALENDAR_MONTHS: Record<\r\n CalendarSystem,\r\n Record<CalendarLocale, readonly string[]>\r\n> = {\r\n jalali: {\r\n fa: [\r\n \"فروردین\", \"اردیبهشت\", \"خرداد\", \"تیر\", \"مرداد\", \"شهریور\",\r\n \"مهر\", \"آبان\", \"آذر\", \"دی\", \"بهمن\", \"اسفند\",\r\n ],\r\n en: [\r\n \"Farvardin\", \"Ordibehesht\", \"Khordad\", \"Tir\", \"Mordad\", \"Shahrivar\",\r\n \"Mehr\", \"Aban\", \"Azar\", \"Dey\", \"Bahman\", \"Esfand\",\r\n ],\r\n },\r\n islamic: {\r\n fa: [\r\n \"محرم\", \"صفر\", \"ربيع الأول\", \"ربيع الآخر\", \"جمادى الأولى\", \"جمادى الآخرة\",\r\n \"رجب\", \"شعبان\", \"رمضان\", \"شوال\", \"ذو القعدة\", \"ذو الحجة\",\r\n ],\r\n en: [\r\n \"Muharram\", \"Safar\", \"Rabi al-Awwal\", \"Rabi al-Thani\", \"Jumada al-Awwal\",\r\n \"Jumada al-Thani\", \"Rajab\", \"Shaban\", \"Ramadan\", \"Shawwal\",\r\n \"Dhu al-Qadah\", \"Dhu al-Hijjah\",\r\n ],\r\n },\r\n gregorian: {\r\n fa: [\r\n \"ژانویه\", \"فوریه\", \"مارس\", \"آوریل\", \"مه\", \"ژوئن\",\r\n \"ژوئیه\", \"اوت\", \"سپتامبر\", \"اکتبر\", \"نوامبر\", \"دسامبر\",\r\n ],\r\n en: [\r\n \"January\", \"February\", \"March\", \"April\", \"May\", \"June\",\r\n \"July\", \"August\", \"September\", \"October\", \"November\", \"December\",\r\n ],\r\n },\r\n};\r\n\r\nexport const WEEKDAYS: Record<CalendarLocale, readonly string[]> = {\r\n fa: [\"ش\", \"ی\", \"د\", \"س\", \"چ\", \"پ\", \"ج\"],\r\n en: [\"Sa\", \"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\"],\r\n};\r\n\r\n/** Meaningful Arabic weekday initials in Saturday-first calendar order. */\r\nexport const ISLAMIC_WEEKDAYS_AR = [\"س\", \"ح\", \"ن\", \"ث\", \"ر\", \"خ\", \"ج\"] as const;\r\n\r\nexport function addLocalDays(date: Date, days: number): Date {\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate() + days, 12);\r\n}\r\n\r\nexport function normalizeDate(date: Date): Date {\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 12);\r\n}\r\n\r\nexport function getCalendarEngine(system: CalendarSystem) {\r\n if (system === \"islamic\") return arabic;\r\n if (system === \"gregorian\") return gregorian;\r\n return persian;\r\n}\r\n\r\nexport function getCalendarLocale(system: CalendarSystem, locale: CalendarLocale) {\r\n if (system === \"islamic\") return locale === \"fa\" ? arabic_fa : arabic_en;\r\n if (system === \"gregorian\") return locale === \"fa\" ? gregorian_fa : gregorian_en;\r\n return locale === \"fa\" ? persian_fa : persian_en;\r\n}\r\n\r\nexport function toCalendarObject(\r\n date: Date,\r\n system: CalendarSystem,\r\n locale: CalendarLocale = \"fa\",\r\n islamicDateAdjustment: IslamicDateAdjustment = 0\r\n) {\r\n const adjusted = system === \"islamic\"\r\n ? addLocalDays(date, islamicDateAdjustment)\r\n : normalizeDate(date);\r\n return new DateObject({\r\n date: adjusted,\r\n calendar: getCalendarEngine(system),\r\n locale: getCalendarLocale(system, locale),\r\n });\r\n}\r\n\r\nexport function fromCalendarParts(\r\n year: number,\r\n month: number,\r\n day: number,\r\n system: CalendarSystem,\r\n locale: CalendarLocale = \"fa\",\r\n islamicDateAdjustment: IslamicDateAdjustment = 0\r\n): Date | null {\r\n if (year < 1 || month < 1 || month > 12 || day < 1 || day > 31) return null;\r\n const object = new DateObject({\r\n calendar: getCalendarEngine(system),\r\n locale: getCalendarLocale(system, locale),\r\n year,\r\n month,\r\n day,\r\n });\r\n if (object.year !== year || object.month.number !== month || object.day !== day) return null;\r\n const date = normalizeDate(object.toDate());\r\n return system === \"islamic\"\r\n ? addLocalDays(date, -islamicDateAdjustment)\r\n : date;\r\n}\r\n\r\nexport function calendarMonthLength(\r\n year: number,\r\n month: number,\r\n system: CalendarSystem,\r\n locale: CalendarLocale = \"fa\"\r\n): number {\r\n const object = new DateObject({\r\n calendar: getCalendarEngine(system),\r\n locale: getCalendarLocale(system, locale),\r\n year,\r\n month,\r\n day: 1,\r\n });\r\n return object.month.length;\r\n}\r\n\r\nexport function localDayKey(date: Date): number {\r\n return Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()) / DAY_MS;\r\n}\r\n","import {\r\n CALENDAR_MONTHS,\r\n fromCalendarParts,\r\n toCalendarObject,\r\n type CalendarLocale,\r\n type CalendarSystem,\r\n type IslamicDateAdjustment,\r\n} from \"./calendar\";\r\n\r\nexport type CalendarDisplayFormat =\r\n | \"YYYY-MM-DD\"\r\n | \"YYYY/MM/DD\"\r\n | \"DD/MM/YYYY\"\r\n | \"DD MMM YYYY\"\r\n | \"MMMM DD, YYYY\"\r\n | \"dddd, DD MMMM YYYY\"\r\n | \"dddd DD MMMM YYYY\";\r\n\r\nexport type JalaliDisplayFormat = CalendarDisplayFormat;\r\nexport type JalaliFormatLocale = CalendarLocale;\r\n\r\nexport type CalendarFormatOptions = {\r\n calendar?: CalendarSystem;\r\n locale?: CalendarLocale;\r\n islamicDateAdjustment?: IslamicDateAdjustment;\r\n};\r\n\r\nconst pad2 = (value: number) => String(value).padStart(2, \"0\");\r\nconst normalizeDigits = (value: string) =>\r\n value\r\n .replace(/[۰-۹]/g, (digit) => String(\"۰۱۲۳۴۵۶۷۸۹\".indexOf(digit)))\r\n .replace(/[٠-٩]/g, (digit) => String(\"٠١٢٣٤٥٦٧٨٩\".indexOf(digit)));\r\n\r\nconst WEEKDAY_NAMES: Record<CalendarLocale, readonly string[]> = {\r\n fa: [\"یکشنبه\", \"دوشنبه\", \"سه‌شنبه\", \"چهارشنبه\", \"پنجشنبه\", \"جمعه\", \"شنبه\"],\r\n en: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\r\n};\r\n\r\nconst ISLAMIC_WEEKDAY_NAMES_AR = [\r\n \"الأحد\", \"الإثنين\", \"الثلاثاء\", \"الأربعاء\", \"الخميس\", \"الجمعة\", \"السبت\",\r\n] as const;\r\n\r\nexport function formatCalendarDate(\r\n date: Date | null | undefined,\r\n format: CalendarDisplayFormat = \"YYYY-MM-DD\",\r\n options: CalendarFormatOptions = {}\r\n): string {\r\n if (!date || Number.isNaN(date.getTime())) return \"\";\r\n const calendar = options.calendar ?? \"jalali\";\r\n const locale = calendar === \"gregorian\" ? \"en\" : (options.locale ?? \"fa\");\r\n const adjustment = options.islamicDateAdjustment ?? (calendar === \"islamic\" ? 1 : 0);\r\n const object = toCalendarObject(date, calendar, locale, adjustment);\r\n const monthName = CALENDAR_MONTHS[calendar][locale][object.month.number - 1];\r\n const tokens: Record<string, string> = {\r\n YYYY: String(object.year),\r\n MMMM: monthName,\r\n MMM: monthName,\r\n MM: pad2(object.month.number),\r\n DD: pad2(object.day),\r\n dddd:\r\n calendar === \"islamic\" && locale === \"fa\"\r\n ? ISLAMIC_WEEKDAY_NAMES_AR[date.getDay()]\r\n : WEEKDAY_NAMES[locale][date.getDay()],\r\n };\r\n const output = format.replace(/dddd|MMMM|YYYY|MMM|MM|DD/g, (token) => tokens[token]);\r\n return locale === \"fa\" ? output.replace(/,/g, \"،\") : output;\r\n}\r\n\r\nexport function parseCalendarDate(\r\n input: string,\r\n format: CalendarDisplayFormat,\r\n options: CalendarFormatOptions = {}\r\n): Date | null {\r\n const value = normalizeDigits(input).trim();\r\n if (!value) return null;\r\n const calendar = options.calendar ?? \"jalali\";\r\n const locale = calendar === \"gregorian\" ? \"en\" : (options.locale ?? \"fa\");\r\n const adjustment = options.islamicDateAdjustment ?? (calendar === \"islamic\" ? 1 : 0);\r\n let year = 0;\r\n let month = 0;\r\n let day = 0;\r\n let match: RegExpMatchArray | null = null;\r\n\r\n if (format === \"YYYY-MM-DD\") {\r\n match = value.match(/^(\\d{4})-(\\d{1,2})-(\\d{1,2})$/);\r\n if (match) [, year, month, day] = match.map(Number);\r\n } else if (format === \"YYYY/MM/DD\") {\r\n match = value.match(/^(\\d{4})\\/(\\d{1,2})\\/(\\d{1,2})$/);\r\n if (match) [, year, month, day] = match.map(Number);\r\n } else if (format === \"DD/MM/YYYY\") {\r\n match = value.match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/);\r\n if (match) [, day, month, year] = match.map(Number);\r\n } else {\r\n let text = value.replace(/،/g, \",\");\r\n if (format.startsWith(\"dddd\")) text = text.replace(/^\\S+[,]?\\s+/, \"\");\r\n const monthFirst = format === \"MMMM DD, YYYY\";\r\n match = monthFirst\r\n ? text.match(/^(.*?)\\s+(\\d{1,2})[,]?\\s+(\\d{4})$/)\r\n : text.match(/^(\\d{1,2})\\s+(.*?)\\s+(\\d{4})$/);\r\n if (match) {\r\n const monthLabel = (monthFirst ? match[1] : match[2]).trim().toLowerCase();\r\n day = Number(monthFirst ? match[2] : match[1]);\r\n year = Number(match[3]);\r\n month = CALENDAR_MONTHS[calendar][locale].findIndex(\r\n (name) => name.toLowerCase() === monthLabel\r\n ) + 1;\r\n }\r\n }\r\n\r\n return match\r\n ? fromCalendarParts(year, month, day, calendar, locale, adjustment)\r\n : null;\r\n}\r\n\r\nexport function formatJalaliDate(\r\n date: Date | null | undefined,\r\n format: JalaliDisplayFormat = \"YYYY-MM-DD\",\r\n locale: JalaliFormatLocale = \"fa\"\r\n): string {\r\n return formatCalendarDate(date, format, { calendar: \"jalali\", locale });\r\n}\r\n\r\nexport function parseJalaliDate(\r\n input: string,\r\n format: JalaliDisplayFormat,\r\n locale: JalaliFormatLocale = \"fa\"\r\n): Date | null {\r\n return parseCalendarDate(input, format, { calendar: \"jalali\", locale });\r\n}\r\n"],"mappings":"0oBAAA,IAAAA,GAAAC,GAAA,CAAAC,GAAAC,KAAA,cAAa,SAASC,GAAEA,EAAE,CAAC,OAAOA,GAAGA,EAAE,YAAY,OAAO,UAAU,eAAe,KAAKA,EAAE,SAAS,EAAEA,EAAE,QAAQA,CAAC,CAAC,IAAIC,GAAED,GAAE,CAAC,KAAK,SAAS,UAAU,EAAE,WAAW,IAAI,MAAM,QAAQ,QAAQ,GAAG,kBAAkB,EAAE,gBAAgBA,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAGA,EAAE,GAAG,EAAE,EAAE,OAAOA,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,SAASA,EAAE,EAAE,EAAE,SAASA,EAAE,CAAC,GAAOA,IAAJ,EAAM,OAAO,IAAIC,EAAED,EAAE,EAAE,EAAE,GAAGE,EAAE,CAAC,EAAE,KAAKF,EAAE,EAAEC,GAAGD,EAAEA,GAAGC,GAAG,KAAK,OAAOA,CAAC,GAAGC,EAAE,KAAKD,CAAC,EAAED,EAAE,EAAEC,IAAIA,IAAI,OAAOC,CAAC,EAAE,aAAa,CAAC,KAAKF,EAAE,MAAMC,EAAE,IAAIC,CAAC,EAAE,CAAC,IAAIC,EAAE,KAAK,gBAAgB,KAAK,OAAOH,CAAC,CAAC,EAAE,QAAQA,EAAE,EAAEA,EAAEC,EAAE,MAAMD,IAAIE,GAAGC,EAAEH,CAAC,EAAE,OAAOE,CAAC,EAAE,WAAWF,EAAE,CAAC,GAAK,CAAC,KAAKC,CAAC,EAAED,EAAE,OAAO,KAAK,YAAYC,EAAE,GAAG,KAAK,YAAYA,CAAC,EAAE,KAAK,aAAaD,CAAC,CAAC,EAAE,YAAYA,GAAG,GAAG,IAAIA,EAAE,GAAG,GAAG,EAAE,UAAU,CAACA,EAAEC,IAAI,CAAC,GAAGD,EAAE,IAAI,UAAUC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAEF,GAAO,QAAQE,KCA5vB,IAAAG,GAAAC,GAAA,CAAAC,GAAAC,KAAA,cAAa,SAASC,GAAEA,EAAE,CAAC,OAAOA,GAAGA,EAAE,YAAY,OAAO,UAAU,eAAe,KAAKA,EAAE,SAAS,EAAEA,EAAE,QAAQA,CAAC,CAAC,IAAIC,GAAED,GAAE,CAAC,KAAK,YAAY,UAAU,EAAE,WAAW,IAAI,MAAM,QAAQ,QAAQ,GAAG,kBAAkB,EAAE,gBAAgBA,GAAG,CAAC,GAAGA,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,OAAOA,GAAGA,EAAE,GAAG,GAAGA,EAAE,KAAK,GAAGA,EAAE,KAAK,EAAE,SAASA,EAAE,CAAC,GAAOA,IAAJ,EAAM,OAAO,IAAIC,EAAED,EAAE,EAAE,EAAE,GAAGE,EAAE,CAAC,EAAE,KAAKF,EAAE,EAAEC,GAAGD,EAAEA,GAAGC,GAAG,KAAK,OAAOA,CAAC,GAAGC,EAAE,KAAKD,CAAC,EAAED,EAAE,EAAEC,IAAIA,IAAI,OAAOC,CAAC,EAAE,aAAa,CAAC,KAAKF,EAAE,MAAMC,EAAE,IAAIC,CAAC,EAAE,CAAC,IAAIC,EAAE,KAAK,gBAAgB,KAAK,OAAOH,CAAC,CAAC,EAAE,QAAQA,EAAE,EAAEA,EAAEC,EAAE,MAAMD,IAAIE,GAAGC,EAAEH,CAAC,EAAE,OAAOE,CAAC,EAAE,WAAWF,EAAE,CAAC,GAAK,CAAC,KAAKC,CAAC,EAAED,EAAE,OAAO,KAAK,YAAYC,EAAE,GAAG,KAAK,YAAYA,CAAC,EAAE,KAAK,aAAaD,CAAC,CAAC,EAAE,YAAYA,KAAKA,EAAE,GAAG,EAAE,IAAI,EAAEA,EAAE,GAAG,IAAI,KAAKA,EAAE,GAAG,IAAI,GAAG,UAAU,CAACA,EAAEC,IAAI,CAAC,EAAED,EAAE,SAASC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAEF,GAAO,QAAQE,KCA7vB,IAAAG,GAAAC,GAAA,CAAAC,GAAAC,KAAA,cAAa,SAASC,GAAEA,EAAE,CAAC,OAAOA,GAAGA,EAAE,YAAY,OAAO,UAAU,eAAe,KAAKA,EAAE,SAAS,EAAEA,EAAE,QAAQA,CAAC,CAAC,IAAIC,GAAED,GAAE,CAAC,KAAK,UAAU,UAAU,EAAE,WAAW,IAAI,MAAM,QAAQ,QAAQ,GAAG,kBAAkB,EAAE,gBAAgBA,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAGA,EAAE,GAAG,EAAE,EAAE,OAAOA,EAAE,CAAC,OAAO,KAAK,SAASA,CAAC,EAAE,SAASA,CAAC,CAAC,EAAE,SAASA,EAAE,CAAC,GAAOA,IAAJ,EAAM,OAAO,IAAIC,EAAED,EAAE,EAAE,EAAE,GAAGE,EAAE,CAAC,EAAEC,EAAE,QAAQC,EAAEJ,EAAE,EAAE,MAAM,MAAMK,EAAE,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,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AA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAEVC,G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","names":["require_arabic","__commonJSMin","exports","module","e","t","r","a","require_gregorian","__commonJSMin","exports","module","e","t","r","a","require_persian","__commonJSMin","exports","module","e","t","r","a","s","n","require_arabic_en","__commonJSMin","exports","module","a","h","require_arabic_fa","__commonJSMin","exports","module","e","t","require_gregorian_en","__commonJSMin","exports","module","e","a","require_gregorian_fa","__commonJSMin","exports","module","e","t","require_persian_en","__commonJSMin","exports","module","a","e","require_persian_fa","__commonJSMin","exports","module","e","t","index_exports","__export","ArrowDownCombo","ComboSelect_default","JalaliDatepicker_default","TickCircle","formatCalendarDate","formatJalaliDate","parseCalendarDate","parseJalaliDate","__toCommonJS","baseCss","fontsCss","IRANSansFaNum_UltraLight_default","IRANSansFaNum_Light_default","IRANSansFaNum_Regular_default","IRANSansFaNum_Medium_default","IRANSansFaNum_Bold_default","IRANSansFaNum_Black_default","injected","ensureStylesInjected","n","styleEl","import_react","import_react_dom","import_react","import_jsx_runtime","ArrowDownCombo","p","TickCircle","import_jsx_runtime","norm","v","areOptionsEqual","a","b","i","x","y","useResolvedColor","colorVar","React","ComboSelectImpl","props","name","options","dir","disabled","placeholderLabel","hasPlaceholder","showCheckIcon","required","containerStyle","className","listClassName","style","placement","panelOffset","resolvedColor","isMulti","computeInitialSingle","selectedId","defaultSelectedId","idStr","o","computeInitialMulti","selectedIds","defaultSelectedIds","toIds","arr","id","setSelectedId","setSelectedIds","open","setOpen","highlight","setHighlight","panelDir","setPanelDir","touched","setTouched","rootRef","panelRef","selectedOpt","toggleOpen","close","openList","onPointerDown","event","root","target","decide","el","rect","viewportH","spaceAbove","spaceBelow","estimated","onResize","onScroll","isRTL","isEmptySingle","isEmptyMulti","showInvalid","multiSelectedLabels","map","raw","triggerText","hiddenInputRef","formValue","onHiddenInvalid","e","onTriggerBlur","val","emitSingle","emitMulti","ids","labels","values","labelStr","valStr","onSelectSingle","onToggleMulti","prev","next","onKeyDown","count","h","targetIndex","first","raf","panel","selectedEl","elTop","elH","desiredTop","ArrowDownCombo","idx","selected","toggle","TickCircle","ComboSelect","da","db","ComboSelect_default","import_react","t","e","c","n","h","r","i","a","s","u","y","l","o","f","d","m","g","v","p","k","b","w","D","M","O","S","Y","L","W","j","x","N","A","I","P","T","F","E","H","V","J","_","C","U","R","z","$","import_arabic","import_gregorian","import_persian","import_arabic_en","import_arabic_fa","import_gregorian_en","import_gregorian_fa","import_persian_en","import_persian_fa","CALENDAR_MONTHS","WEEKDAYS","ISLAMIC_WEEKDAYS_AR","addLocalDays","date","days","normalizeDate","getCalendarEngine","system","arabic","gregorian","persian","getCalendarLocale","locale","arabic_fa","arabic_en","gregorian_fa","gregorian_en","persian_fa","persian_en","toCalendarObject","islamicDateAdjustment","adjusted","$","fromCalendarParts","year","month","day","object","import_jsx_runtime","sameLocalDay","a","b","digits","value","calendar","locale","CalendarGrid","islamicDateAdjustment","year","month","selected","today","isDisabled","onSelect","cells","first","fromCalendarParts","saturdayBasedOffset","gridStart","addLocalDays","_","index","date","object","toCalendarObject","ISLAMIC_WEEKDAYS_AR","WEEKDAYS","weekday","day","currentMonth","disabled","selectedDay","event","delta","target","pad2","value","normalizeDigits","digit","WEEKDAY_NAMES","ISLAMIC_WEEKDAY_NAMES_AR","formatCalendarDate","date","format","options","calendar","locale","adjustment","object","toCalendarObject","monthName","CALENDAR_MONTHS","tokens","output","token","parseCalendarDate","input","year","month","day","match","text","monthFirst","monthLabel","name","fromCalendarParts","formatJalaliDate","parseJalaliDate","import_jsx_runtime","formatSelectedHeader","d","calendar","locale","islamicDateAdjustment","full","formatCalendarDate","firstSpace","weekday","datePart","initial","digit","isSameDay","a","b","JalaliDatepicker","props","open","anchorRef","onConfirm","onClose","value","defaultValue","onChange","label","className","style","portalContainer","showActionButtons","disabledDateRanges","effectiveLocale","englishUi","arabicUi","t","resolvedLabel","draft","setDraft","committedOnOpenRef","wasOpenRef","initDO","toCalendarObject","viewYear","setViewYear","viewMonth","setViewMonth","popRef","bodyRef","portalEl","setPortalEl","pos","setPos","popupWidth","setPopupWidth","lastSizeRef","lastPosRef","placementRef","rafPos","rafInit1","forceNextPositionRecalcRef","fit","setFit","years","current","s","e","_","i","monthOptions","CALENDAR_MONTHS","m","yearOptions","y","draftMatchesView","draftDate","selectedLabel","today","todayObject","showTodayShortcut","normalizedDisabledRanges","from","to","fromTime","toTime","isDateDisabled","date","time","range","selectDay","next","selectedDate","host","openInitializedRef","implicitSelectionRef","isInitialOpen","useImplicitToday","cur","recalcPosition","forceRecomputePlacement","anchorEl","popEl","hostEl","rootRem","spacing","isBodyHost","aRect","vv","vw","vh","vOffLeft","vOffTop","anchorOutsideViewport","aLeft","aTop","aRight","aBottom","hostRect","hScrollL","hScrollT","hostW","hostH","availableWidth","nextWidth","rect","approxWidth","approxHeight","availableHeight","viewportScale","visualWidth","visualHeight","anchorTopInHost","anchorBottomInHost","anchorLeftInHost","anchorRightInHost","spaceBottom","spaceTop","spaceRight","spaceLeft","canBottom","canTop","canRight","canLeft","heightFits","okOnes","c","clamp","v","min","max","baseLeft","baseTop","minVisualLeft","maxVisualLeft","minTop","maxTop","layoutLeftForVisual","visualLeft","left","top","fitState","placeBelow","safeMinTop","safeMaxTop","np","schedulePositionRecalc","force","el","ro","schedule","onExternalScroll","event","target","onDoc","targetElement","node","onKey","isBody","ComboSelect","CalendarGrid","visuallyEmpty","confirmed","JalaliDatepicker_default","ensureStylesInjected"]}
package/dist/index.css ADDED
@@ -0,0 +1,2 @@
1
+ .zcal-custom{font-family:var( --rjd-font-family, "IRANSansFaNum", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif );color:#0f172a;line-height:1.5;text-align:initial;font-synthesis:none}.zcal-custom *{box-sizing:border-box;font-family:inherit}.zcal-custom button{appearance:none;margin:0;font:inherit;letter-spacing:normal;text-transform:none}[data-locale=fa],[data-locale=ar]{direction:rtl}[data-locale=en]{direction:ltr}.rjd-root[data-rjd-calendar=gregorian]{font-family:var( --rjd-gregorian-font-family, Arial, "Helvetica Neue", "Liberation Sans", sans-serif )!important;font-variant-numeric:lining-nums tabular-nums;font-feature-settings:"locl" 0,"lnum" 1,"tnum" 1}.rjd-root[data-rjd-calendar=gregorian] *{font-family:inherit!important;font-feature-settings:inherit!important}.rjd-root.calendar-header{box-sizing:border-box;width:20rem;min-width:20rem;max-width:20rem;background:#fff;border:.0625rem solid #e5e7eb;border-radius:1.25rem;box-shadow:0 .25rem .25rem #0000004d,0 .5rem .75rem .375rem #00000026;overflow:visible;will-change:transform,top,left;contain:layout}.rjd-root .header-main-div{padding:0 .625rem}.rjd-root .header-label{padding:.5rem .75rem 0;color:#334155;font-size:1rem;line-height:1.5625rem;font-weight:500;text-align:justify}.rjd-root .selected-info-div{padding:.75rem .75rem .625rem;border-bottom:.0625rem solid #eef2f7;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.rjd-root .selected-info-pill{font-size:1.5rem;font-weight:500;line-height:2.5rem;color:#0f172a}.rjd-root .today-btn{flex:0 0 auto;padding:.125rem;border:0;background:transparent;color:#2563eb;font-size:1rem;line-height:1.5625rem;cursor:pointer}.rjd-root .today-btn:disabled{color:#94a3b8;cursor:not-allowed}.rjd-root .header-select-div{display:flex;gap:1.25rem;padding:0 .75rem .125rem;justify-content:space-between;align-items:center}.rjd-root .header-select-div .cs-wrapper{flex:1 1 0;min-width:0}.rjd-root .header-select-div .cs-trigger{height:2.375rem;padding:0 .25rem;border:0;border-radius:0;background:transparent;box-shadow:none;color:#0f172a;font-size:.8125rem;font-weight:400}.rjd-root .header-select-div .cs-trigger:hover,.rjd-root .header-select-div .cs-trigger:focus{border:0;background:transparent;box-shadow:none}.rjd-root .select-year .cs-trigger-text{width:100%;direction:ltr;text-align:left}.rjd-root .select-year .cs-option{direction:ltr;justify-content:flex-start;text-align:left}.rjd-root .select-year .cs-panel{direction:ltr}.rjd-root .select-year .cs-option>span:last-child{direction:ltr;text-align:left!important;unicode-bidi:isolate}.rjd-root .header-select-div .cs-arrow svg{width:.9375rem;height:.9375rem;stroke-width:2.5}.rjd-root .select-elm{appearance:none;-webkit-appearance:none;-moz-appearance:none;height:2.625rem;background-repeat:no-repeat;background-size:1rem 1rem;background-position:left .75rem center;padding:.5rem .75rem .5rem 2.25rem;font-size:.875rem;line-height:1.25rem;color:#111827;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.rjd-root .select-elm option{font-size:.75rem;font-weight:500;line-height:1.125rem;color:#0f172a}.rjd-root .select-elm.select-month{background-position:left .75rem center;padding:.625rem .5rem .625rem 1rem;text-align:right}.rjd-root .select-elm.select-year{background-position:left .75rem center;text-align:center}.zcal-custom{--zday-hover-bg: #f1f5f9;--zcal-hover-fill: #f1f5f9}.zcal-custom .zcal-body [role=gridcell] button{line-height:1!important}.zcal-custom .zcal-body [role=gridcell] button,.zcal-custom .zcal-body button[aria-label*=day],.zcal-custom .zcal-body .day,.zcal-custom .zm-DaysButton{width:2.25rem;height:2.25rem;border-radius:624.9375rem!important;display:inline-flex;align-items:center;justify-content:center;line-height:1;overflow:hidden;transition:background .15s ease,box-shadow .15s ease,color .15s ease;outline:none;margin:0;padding:0;border:.0625rem solid transparent;background:transparent;color:#0f172a;cursor:pointer}.zcal-custom .zcal-body [role=gridcell] button>*,.zcal-custom .zm-DaysButton>*{border-radius:624.9375rem!important;background:transparent!important}.zcal-custom .zcal-body [role=gridcell] button:not([aria-selected=true]):not(:disabled):hover,.zcal-custom .zm-DaysButton:not([aria-selected=true]):not(:disabled):hover{background:var(--zday-hover-bg)!important;border-radius:624.9375rem!important;box-shadow:none!important}.zcal-custom .zcal-body [role=gridcell] button:not([aria-selected=true]):not(:disabled):hover>*,.zcal-custom .zm-DaysButton:not([aria-selected=true]):not(:disabled):hover>*{background:transparent!important;border-radius:624.9375rem!important}.zcal-custom .zcal-body button[aria-selected=true],.zcal-custom .zcal-body button[aria-pressed=true],.zcal-custom .zcal-body [data-selected=true],.zcal-custom .zcal-body .is-selected,.zcal-custom .zcal-body .selected{background:transparent!important;color:#2563eb!important;border-radius:3.125rem!important;border:.0625rem solid #2563eb!important;box-shadow:none!important}.rjd-root[data-rjd-empty-selection=true] .zcal-body .zm-DaysButton[aria-selected=true]{color:#0f172a!important;background:transparent!important;border-color:transparent!important;box-shadow:none!important}.zcal-custom .zcal-body [data-today=true] button:not([aria-selected=true]){border-radius:3.125rem;box-shadow:inset 0 0 0 .0625rem #0000001a}.zcal-custom .zcal-body .zm-DaysButton[data-rjd-disabled=true],.zcal-custom .zcal-body .zm-DaysButton[data-rjd-disabled=true]:hover{color:#a78bfa!important;background:#f7f5f9!important;border-color:transparent!important;box-shadow:none!important;cursor:not-allowed!important;opacity:1!important}.zcal-custom .zcal-body .zm-DaysButton[data-rjd-disabled=true]>*{color:inherit!important;background:transparent!important}.zcal-custom .css-137m4ck{height:20.3125rem!important;border:0!important;width:100%!important}.rjd-native-body{height:20.3125rem;padding:.375rem .75rem .75rem}.rjd-calendar-grid{width:100%;height:100%;display:flex;flex-direction:column}.rjd-weekdays,.rjd-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));column-gap:.25rem;width:100%}.rjd-weekdays{height:2.25rem;align-items:center;font-size:.875rem;font-weight:500}.rjd-weekdays>span{text-align:center}.rjd-days{flex:1;grid-template-rows:repeat(6,minmax(0,1fr));row-gap:.125rem;align-items:center}.rjd-day{justify-self:center;width:2.25rem;height:2.25rem;display:inline-flex;align-items:center;justify-content:center;border:.0625rem solid transparent;border-radius:50%;background:transparent;color:#0f172a;font-size:.75rem;font-weight:500;line-height:1;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.rjd-day[data-outside-month=true]{color:#9ca3af}.rjd-day:not(:disabled):not([aria-selected=true]):hover,.rjd-day:not(:disabled):focus-visible{background:#f1f5f9;outline:none}.rjd-day[aria-selected=true]{color:#2563eb;border-color:#2563eb}.rjd-day[data-today=true]:not([aria-selected=true]){box-shadow:inset 0 0 0 .0625rem #0000001a}.rjd-day[data-rjd-disabled=true]{color:#a78bfa;background:#f7f5f9;border-color:transparent;cursor:not-allowed;opacity:1}.rjd-root[data-rjd-has-footer=false] .zcal-body{border-bottom-right-radius:1.25rem;border-bottom-left-radius:1.25rem;overflow:clip}.zcal-custom .zm-DaysButton{font-size:.75rem!important;font-weight:500!important;line-height:1.125rem!important;color:#0f172a!important}.zcal-custom .css-qmbtae{font-size:.875rem!important;font-weight:500!important;line-height:1.375rem!important;color:#0f172a!important}.rjd-root .footer-div{display:flex;gap:1.875rem;padding:0 .5rem 1rem 1.25rem;justify-content:end}.rjd-root .footer-btn{font-size:1rem;line-height:1.5625rem;padding:.125rem;color:#2563eb;background-color:transparent;border:0;border-radius:0;cursor:pointer}.rjd-root,.rjd-combo-select{--select-arrow-color: currentColor}.rjd-combo-select.cs-wrapper{position:relative;display:inline-block;width:100%}.rjd-combo-select .cs-trigger{width:100%;display:inline-flex;align-items:center;justify-content:space-between;gap:.5rem;background:#fff;border:.0625rem solid #a7b6d7;border-radius:.5rem;padding:.5rem .75rem;font-size:.875rem;line-height:1.375rem;color:#0f172a;cursor:pointer;transition:box-shadow .12s ease,border-color .12s ease,background-color .12s ease}.rjd-combo-select .cs-trigger:hover{background:#fff;border-color:#94a3b8}.rjd-combo-select .cs-trigger:focus{outline:none;border-color:#1d4ed8;box-shadow:0 0 0 .1875rem #1e3a8a26}.rjd-combo-select .cs-trigger:disabled{opacity:.6;cursor:not-allowed}.rjd-combo-select .cs-trigger[aria-invalid=true],.rjd-combo-select .cs-trigger.cs-trigger--invalid{border-color:#ef4444;box-shadow:0 0 0 .1875rem #ef44441f}.rjd-combo-select .cs-trigger[aria-invalid=true]:hover,.rjd-combo-select .cs-trigger.cs-trigger--invalid:hover{border-color:#ef4444;background:#fff}.rjd-combo-select .cs-trigger[aria-invalid=true]:focus,.rjd-combo-select .cs-trigger.cs-trigger--invalid:focus{border-color:#ef4444;box-shadow:0 0 0 .1875rem #ef444426}.rjd-combo-select .cs-trigger-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rjd-combo-select .cs-arrow{display:inline-flex;align-items:center;justify-content:center}.rjd-combo-select .cs-panel{position:absolute;min-width:100%;z-index:60;background:#fff;border:.0625rem solid #e5e7eb;border-radius:.5rem;box-shadow:0 .5rem 1.25rem #02061714;max-height:15rem;overflow:auto;padding:.375rem;box-sizing:border-box}.rjd-combo-select .cs-panel--down{top:calc(100% + .5rem)}.rjd-combo-select .cs-panel--up{bottom:calc(100% + .5rem)}.rjd-combo-select .cs-hidden{display:none}.rjd-combo-select .cs-option{display:flex;align-items:center;gap:.625rem;font-size:.875rem;line-height:1.375rem;color:#0f172a;padding:.5rem .625rem;background:#fff;cursor:pointer;border-radius:.375rem;transition:background-color .12s ease,color .12s ease}.rjd-combo-select .cs-option+.cs-option{border-top:.0625rem solid #e5e7eb;border-top-left-radius:0;border-top-right-radius:0}.rjd-combo-select .cs-option:hover{background:#f8fafc}.rjd-combo-select .cs-option[aria-selected=true],.rjd-combo-select .cs-option.cs-option--selected{background:#bfdbfe;color:#0f1c3f;border-radius:.375rem}.rjd-combo-select .cs-option[aria-disabled=true]{opacity:.6;pointer-events:none}.rjd-combo-select .cs-check{display:inline-flex;align-items:center;justify-content:center}.rjd-combo-select .cs-checkbox{display:inline-flex;align-items:center;justify-content:center;position:relative;width:1.125rem;height:1.125rem}.rjd-combo-select .cs-checkbox input{position:absolute;opacity:0;width:1.125rem;height:1.125rem;margin:0}.rjd-combo-select .cs-checkbox-box{width:1.125rem;height:1.125rem;border:.0938rem solid #94a3b8;border-radius:.25rem;background:#fff;transition:background-color .12s ease,border-color .12s ease,box-shadow .12s ease;box-sizing:border-box;display:inline-block}.rjd-combo-select .cs-checkbox input:checked+.cs-checkbox-box{background:#181d27;border-color:#0f172a;box-shadow:inset 0 0 0 .1875rem #fff}.rjd-combo-select .cs-checkbox input:focus-visible+.cs-checkbox-box{outline:.125rem solid #1d4ed8;outline-offset:.125rem}.rjd-combo-select .cs-panel::-webkit-scrollbar{width:.5rem}.rjd-combo-select .cs-panel::-webkit-scrollbar-track{background:transparent}.rjd-combo-select .cs-panel::-webkit-scrollbar-thumb{background:#e5e7eb;border-radius:624.9375rem}.rjd-combo-select .cs-panel:hover::-webkit-scrollbar-thumb{background:#cbd5e1}.rjd-root .select-elm{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border:.0625rem solid #d1d5db;border-radius:.5rem;height:2.25rem;line-height:2.25rem;padding:0 2.5rem 0 .75rem;font:inherit;color:inherit;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-size:1rem 1rem;background-position:right .75rem center}.rjd-root .select-elm:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 .1875rem #3b82f626}.rjd-root .select-elm:hover{border-color:#b4bccc}.rjd-root .select-elm:disabled{opacity:.6;cursor:not-allowed}.zcal-custom[dir=rtl] .select-elm{padding:0 .75rem 0 2.5rem;background-position:left .75rem center;border:0;color:#000}.zcal-custom .css-sp254y,.zcal-custom [role=rowgroup]>[role=row]{display:grid!important;grid-template-columns:repeat(7,1fr)!important;column-gap:.25rem!important;width:100%!important}.zcal-custom .css-sp254y>*,.zcal-custom [role=columnheader],.zcal-custom [role=gridcell]{justify-self:center!important;text-align:center!important}.zcal-custom[dir=rtl] [role=rowgroup]>[role=row]:first-child{direction:rtl!important}.zcal-custom .css-7qlbje,.zcal-custom .css-pw7rye{width:100%!important}.zcal-custom .css-7qlbje{left:0!important;right:0!important}
2
+ /*# sourceMappingURL=index.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/styles/styles.css"],"sourcesContent":["/* فقط داخل پاپ‌آپ تقویم فونت را اعمال کن (فونت‌ها در auto-css.ts @font-face می‌شوند) */\r\n.zcal-custom {\r\n font-family: var(\r\n --rjd-font-family,\r\n \"IRANSansFaNum\", system-ui, -apple-system, \"Segoe UI\", Roboto,\r\n \"Helvetica Neue\", Arial, \"Noto Sans\", \"Liberation Sans\", sans-serif\r\n );\r\n color: #0f172a;\r\n line-height: 1.5;\r\n text-align: initial;\r\n font-synthesis: none;\r\n}\r\n.zcal-custom * {\r\n box-sizing: border-box;\r\n font-family: inherit;\r\n}\r\n.zcal-custom button {\r\n appearance: none;\r\n margin: 0;\r\n font: inherit;\r\n letter-spacing: normal;\r\n text-transform: none;\r\n}\r\n\r\n/* جهت‌دهی محلی */\r\n[data-locale=\"fa\"] {\r\n direction: rtl;\r\n}\r\n[data-locale=\"ar\"] {\r\n direction: rtl;\r\n}\r\n[data-locale=\"en\"] {\r\n direction: ltr;\r\n}\r\n\r\n/*\r\n * IRANSansFaNum intentionally substitutes Persian digit glyphs. Gregorian\r\n * mode therefore uses an isolated Latin stack, independent of both the\r\n * bundled Persian font and the host application's typography.\r\n */\r\n.rjd-root[data-rjd-calendar=\"gregorian\"] {\r\n font-family: var(\r\n --rjd-gregorian-font-family,\r\n Arial, \"Helvetica Neue\", \"Liberation Sans\", sans-serif\r\n ) !important;\r\n font-variant-numeric: lining-nums tabular-nums;\r\n font-feature-settings: \"locl\" 0, \"lnum\" 1, \"tnum\" 1;\r\n}\r\n.rjd-root[data-rjd-calendar=\"gregorian\"] * {\r\n font-family: inherit !important;\r\n font-feature-settings: inherit !important;\r\n}\r\n\r\n/* ظرف پاپ‌آپ */\r\n.rjd-root.calendar-header {\r\n box-sizing: border-box;\r\n width: 20rem;\r\n min-width: 20rem;\r\n max-width: 20rem;\r\n background: #fff;\r\n border: 0.0625rem solid #e5e7eb;\r\n border-radius: 1.25rem;\r\n box-shadow: 0 0.25rem 0.25rem rgba(0, 0, 0, 0.3), 0 0.5rem 0.75rem 0.375rem rgba(0, 0, 0, 0.15);\r\n overflow: visible;\r\n will-change: transform, top, left;\r\n contain: layout;\r\n}\r\n\r\n/* هدر پاپ‌آپ */\r\n.rjd-root .header-main-div {\r\n padding: 0 0.625rem;\r\n}\r\n.rjd-root .header-label {\r\n padding: 0.5rem 0.75rem 0;\r\n color: #334155;\r\n font-size: 1rem;\r\n line-height: 1.5625rem;\r\n font-weight: 500;\r\n text-align: justify;\r\n}\r\n.rjd-root .selected-info-div {\r\n padding: 0.75rem 0.75rem 0.625rem;\r\n border-bottom: 0.0625rem solid #eef2f7;\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n gap: 0.5rem;\r\n}\r\n.rjd-root .selected-info-pill {\r\n font-size: 1.5rem;\r\n font-weight: 500;\r\n line-height: 2.5rem;\r\n color: #0f172a;\r\n}\r\n.rjd-root .today-btn {\r\n flex: 0 0 auto;\r\n padding: 0.125rem;\r\n border: 0;\r\n background: transparent;\r\n color: #2563eb;\r\n font-size: 1rem;\r\n line-height: 1.5625rem;\r\n cursor: pointer;\r\n}\r\n.rjd-root .today-btn:disabled {\r\n color: #94a3b8;\r\n cursor: not-allowed;\r\n}\r\n/* انتخاب ماه/سال */\r\n.rjd-root .header-select-div {\r\n display: flex;\r\n gap: 1.25rem;\r\n padding: 0 0.75rem 0.125rem;\r\n justify-content: space-between;\r\n align-items: center;\r\n}\r\n\r\n.rjd-root .header-select-div .cs-wrapper {\r\n flex: 1 1 0;\r\n min-width: 0;\r\n}\r\n.rjd-root .header-select-div .cs-trigger {\r\n height: 2.375rem;\r\n padding: 0 0.25rem;\r\n border: 0;\r\n border-radius: 0;\r\n background: transparent;\r\n box-shadow: none;\r\n color: #0f172a;\r\n font-size: 0.8125rem;\r\n font-weight: 400;\r\n}\r\n.rjd-root .header-select-div .cs-trigger:hover,\r\n.rjd-root .header-select-div .cs-trigger:focus {\r\n border: 0;\r\n background: transparent;\r\n box-shadow: none;\r\n}\r\n.rjd-root .select-year .cs-trigger-text {\r\n width: 100%;\r\n direction: ltr;\r\n text-align: left;\r\n}\r\n.rjd-root .select-year .cs-option {\r\n direction: ltr;\r\n justify-content: flex-start;\r\n text-align: left;\r\n}\r\n.rjd-root .select-year .cs-panel {\r\n direction: ltr;\r\n}\r\n.rjd-root .select-year .cs-option > span:last-child {\r\n direction: ltr;\r\n text-align: left !important;\r\n unicode-bidi: isolate;\r\n}\r\n.rjd-root .header-select-div .cs-arrow svg {\r\n width: 0.9375rem;\r\n height: 0.9375rem;\r\n stroke-width: 2.5;\r\n}\r\n.rjd-root .select-elm {\r\n appearance: none;\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n height: 2.625rem;\r\n background-repeat: no-repeat;\r\n background-size: 1rem 1rem;\r\n background-position: left 0.75rem center;\r\n padding: 0.5rem 0.75rem 0.5rem 2.25rem;\r\n font-size: 0.875rem;\r\n line-height: 1.25rem;\r\n color: #111827;\r\n outline: none;\r\n transition: border-color 0.15s ease, box-shadow 0.15s ease;\r\n}\r\n.rjd-root .select-elm option {\r\n font-size: 0.75rem;\r\n font-weight: 500;\r\n line-height: 1.125rem;\r\n color: #0f172a;\r\n}\r\n.rjd-root .select-elm.select-month {\r\n background-position: left 0.75rem center;\r\n padding: 0.625rem 0.5rem 0.625rem 1rem;\r\n text-align: right;\r\n}\r\n.rjd-root .select-elm.select-year {\r\n background-position: left 0.75rem center;\r\n text-align: center;\r\n}\r\n\r\n/* ====== بدنه‌ی تقویم (Zaman) ====== */\r\n.zcal-custom {\r\n --zday-hover-bg: #f1f5f9; /* Hover روزها */\r\n --zcal-hover-fill: #f1f5f9;\r\n}\r\n\r\n/* برای برخی تمپلیت‌ها که line-height زیاد دارند */\r\n.zcal-custom .zcal-body [role=\"gridcell\"] button {\r\n line-height: 1 !important;\r\n}\r\n\r\n/* دکمه روز: ابعاد و گردی کامل */\r\n.zcal-custom .zcal-body [role=\"gridcell\"] button,\r\n.zcal-custom .zcal-body button[aria-label*=\"day\"],\r\n.zcal-custom .zcal-body .day,\r\n.zcal-custom .zm-DaysButton {\r\n width: 2.25rem;\r\n height: 2.25rem;\r\n border-radius: 624.9375rem !important;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n line-height: 1;\r\n overflow: hidden;\r\n transition: background 0.15s ease, box-shadow 0.15s ease, color 0.15s ease;\r\n outline: none;\r\n margin: 0;\r\n padding: 0;\r\n border: 0.0625rem solid transparent;\r\n background: transparent;\r\n color: #0f172a;\r\n cursor: pointer;\r\n}\r\n\r\n/* جلوگیری از پس‌زمینه مربعی فرزند */\r\n.zcal-custom .zcal-body [role=\"gridcell\"] button > *,\r\n.zcal-custom .zm-DaysButton > * {\r\n border-radius: 624.9375rem !important;\r\n background: transparent !important;\r\n}\r\n\r\n/* Hover دایره‌ای */\r\n.zcal-custom\r\n .zcal-body\r\n [role=\"gridcell\"]\r\n button:not([aria-selected=\"true\"]):not(:disabled):hover,\r\n.zcal-custom .zm-DaysButton:not([aria-selected=\"true\"]):not(:disabled):hover {\r\n background: var(--zday-hover-bg) !important;\r\n border-radius: 624.9375rem !important;\r\n box-shadow: none !important;\r\n}\r\n.zcal-custom\r\n .zcal-body\r\n [role=\"gridcell\"]\r\n button:not([aria-selected=\"true\"]):not(:disabled):hover\r\n > *,\r\n.zcal-custom\r\n .zm-DaysButton:not([aria-selected=\"true\"]):not(:disabled):hover\r\n > * {\r\n background: transparent !important;\r\n border-radius: 624.9375rem !important;\r\n}\r\n\r\n/* انتخاب‌شده (رینگ آبی) */\r\n.zcal-custom .zcal-body button[aria-selected=\"true\"],\r\n.zcal-custom .zcal-body button[aria-pressed=\"true\"],\r\n.zcal-custom .zcal-body [data-selected=\"true\"],\r\n.zcal-custom .zcal-body .is-selected,\r\n.zcal-custom .zcal-body .selected {\r\n background: transparent !important;\r\n color: #2563eb !important;\r\n border-radius: 3.125rem !important;\r\n border: 0.0625rem solid #2563eb !important;\r\n box-shadow: none !important;\r\n}\r\n\r\n/* A controlled null value means no day is visually selected. Zaman still\r\n receives an anchor date so the current month can remain visible. */\r\n.rjd-root[data-rjd-empty-selection=\"true\"]\r\n .zcal-body\r\n .zm-DaysButton[aria-selected=\"true\"] {\r\n color: #0f172a !important;\r\n background: transparent !important;\r\n border-color: transparent !important;\r\n box-shadow: none !important;\r\n}\r\n\r\n/* امروز (انتخاب‌نشده) */\r\n.zcal-custom .zcal-body [data-today=\"true\"] button:not([aria-selected=\"true\"]) {\r\n border-radius: 3.125rem;\r\n box-shadow: inset 0 0 0 0.0625rem rgba(0, 0, 0, 0.1);\r\n}\r\n\r\n/* Consumer-defined disabled date ranges. */\r\n.zcal-custom .zcal-body .zm-DaysButton[data-rjd-disabled=\"true\"],\r\n.zcal-custom .zcal-body .zm-DaysButton[data-rjd-disabled=\"true\"]:hover {\r\n color: #a78bfa !important;\r\n background: #f7f5f9 !important;\r\n border-color: transparent !important;\r\n box-shadow: none !important;\r\n cursor: not-allowed !important;\r\n opacity: 1 !important;\r\n}\r\n.zcal-custom .zcal-body .zm-DaysButton[data-rjd-disabled=\"true\"] > * {\r\n color: inherit !important;\r\n background: transparent !important;\r\n}\r\n\r\n/* ارتفاع/عرض امن */\r\n.zcal-custom .css-137m4ck {\r\n height: 20.3125rem !important;\r\n border: 0 !important;\r\n width: 100% !important;\r\n}\r\n\r\n/* Internal calendar grid used by Islamic and Gregorian modes. */\r\n.rjd-native-body {\r\n height: 20.3125rem;\r\n padding: 0.375rem 0.75rem 0.75rem;\r\n}\r\n.rjd-calendar-grid {\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n}\r\n.rjd-weekdays,\r\n.rjd-days {\r\n display: grid;\r\n grid-template-columns: repeat(7, minmax(0, 1fr));\r\n column-gap: 0.25rem;\r\n width: 100%;\r\n}\r\n.rjd-weekdays {\r\n height: 2.25rem;\r\n align-items: center;\r\n font-size: 0.875rem;\r\n font-weight: 500;\r\n}\r\n.rjd-weekdays > span {\r\n text-align: center;\r\n}\r\n.rjd-days {\r\n flex: 1;\r\n grid-template-rows: repeat(6, minmax(0, 1fr));\r\n row-gap: 0.125rem;\r\n align-items: center;\r\n}\r\n.rjd-day {\r\n justify-self: center;\r\n width: 2.25rem;\r\n height: 2.25rem;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n border: 0.0625rem solid transparent;\r\n border-radius: 50%;\r\n background: transparent;\r\n color: #0f172a;\r\n font-size: 0.75rem;\r\n font-weight: 500;\r\n line-height: 1;\r\n cursor: pointer;\r\n transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;\r\n}\r\n.rjd-day[data-outside-month=\"true\"] {\r\n color: #9ca3af;\r\n}\r\n.rjd-day:not(:disabled):not([aria-selected=\"true\"]):hover,\r\n.rjd-day:not(:disabled):focus-visible {\r\n background: #f1f5f9;\r\n outline: none;\r\n}\r\n.rjd-day[aria-selected=\"true\"] {\r\n color: #2563eb;\r\n border-color: #2563eb;\r\n}\r\n.rjd-day[data-today=\"true\"]:not([aria-selected=\"true\"]) {\r\n box-shadow: inset 0 0 0 0.0625rem rgba(0, 0, 0, 0.1);\r\n}\r\n.rjd-day[data-rjd-disabled=\"true\"] {\r\n color: #a78bfa;\r\n background: #f7f5f9;\r\n border-color: transparent;\r\n cursor: not-allowed;\r\n opacity: 1;\r\n}\r\n\r\n/* When the optional footer is absent, the calendar body becomes the final\r\n visible section and must follow the popup's bottom corners. Keeping this\r\n clipping local to the body preserves the overflow needed by comboboxes. */\r\n.rjd-root[data-rjd-has-footer=\"false\"] .zcal-body {\r\n border-bottom-right-radius: 1.25rem;\r\n border-bottom-left-radius: 1.25rem;\r\n /* `clip` keeps the rounded crop without creating the formatting context\r\n that `hidden` created and that could compress Zaman's seven-column grid. */\r\n overflow: clip;\r\n}\r\n\r\n/* تایپوگرافی */\r\n.zcal-custom .zm-DaysButton {\r\n font-size: 0.75rem !important;\r\n font-weight: 500 !important;\r\n line-height: 1.125rem !important;\r\n color: #0f172a !important;\r\n}\r\n.zcal-custom .css-qmbtae {\r\n font-size: 0.875rem !important;\r\n font-weight: 500 !important;\r\n line-height: 1.375rem !important;\r\n color: #0f172a !important;\r\n}\r\n\r\n/* فوتر */\r\n.rjd-root .footer-div {\r\n display: flex;\r\n gap: 1.875rem;\r\n padding: 0 0.5rem 1rem 1.25rem;\r\n justify-content: end;\r\n}\r\n.rjd-root .footer-btn {\r\n font-size: 1rem;\r\n line-height: 1.5625rem;\r\n padding: 0.125rem;\r\n color: #2563eb;\r\n background-color: transparent;\r\n border: 0;\r\n border-radius: 0;\r\n cursor: pointer;\r\n}\r\n\r\n/* ===== ComboSelect ===== */\r\n.rjd-root,\r\n.rjd-combo-select {\r\n --select-arrow-color: currentColor;\r\n}\r\n\r\n.rjd-combo-select.cs-wrapper {\r\n position: relative;\r\n display: inline-block;\r\n width: 100%;\r\n}\r\n.rjd-combo-select .cs-trigger {\r\n width: 100%;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n gap: 0.5rem;\r\n background: #fff;\r\n border: 0.0625rem solid #a7b6d7;\r\n border-radius: 0.5rem;\r\n padding: 0.5rem 0.75rem;\r\n font-size: 0.875rem;\r\n line-height: 1.375rem;\r\n color: #0f172a;\r\n cursor: pointer;\r\n transition: box-shadow 0.12s ease, border-color 0.12s ease,\r\n background-color 0.12s ease;\r\n}\r\n.rjd-combo-select .cs-trigger:hover {\r\n background: #fff;\r\n border-color: #94a3b8;\r\n}\r\n.rjd-combo-select .cs-trigger:focus {\r\n outline: none;\r\n border-color: #1d4ed8;\r\n box-shadow: 0 0 0 0.1875rem rgba(30, 58, 138, 0.15);\r\n}\r\n.rjd-combo-select .cs-trigger:disabled {\r\n opacity: 0.6;\r\n cursor: not-allowed;\r\n}\r\n.rjd-combo-select .cs-trigger[aria-invalid=\"true\"],\r\n.rjd-combo-select .cs-trigger.cs-trigger--invalid {\r\n border-color: #ef4444;\r\n box-shadow: 0 0 0 0.1875rem rgba(239, 68, 68, 0.12);\r\n}\r\n.rjd-combo-select .cs-trigger[aria-invalid=\"true\"]:hover,\r\n.rjd-combo-select .cs-trigger.cs-trigger--invalid:hover {\r\n border-color: #ef4444;\r\n background: #fff;\r\n}\r\n.rjd-combo-select .cs-trigger[aria-invalid=\"true\"]:focus,\r\n.rjd-combo-select .cs-trigger.cs-trigger--invalid:focus {\r\n border-color: #ef4444;\r\n box-shadow: 0 0 0 0.1875rem rgba(239, 68, 68, 0.15);\r\n}\r\n.rjd-combo-select .cs-trigger-text {\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n}\r\n.rjd-combo-select .cs-arrow {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.rjd-combo-select .cs-panel {\r\n position: absolute;\r\n min-width: 100%;\r\n z-index: 60;\r\n background: #fff;\r\n border: 0.0625rem solid #e5e7eb;\r\n border-radius: 0.5rem;\r\n box-shadow: 0 0.5rem 1.25rem rgba(2, 6, 23, 0.08);\r\n max-height: 15rem;\r\n overflow: auto;\r\n padding: 0.375rem;\r\n box-sizing: border-box;\r\n}\r\n.rjd-combo-select .cs-panel--down {\r\n top: calc(100% + 0.5rem);\r\n}\r\n.rjd-combo-select .cs-panel--up {\r\n bottom: calc(100% + 0.5rem);\r\n}\r\n.rjd-combo-select .cs-hidden {\r\n display: none;\r\n}\r\n\r\n.rjd-combo-select .cs-option {\r\n display: flex;\r\n align-items: center;\r\n gap: 0.625rem;\r\n font-size: 0.875rem;\r\n line-height: 1.375rem;\r\n color: #0f172a;\r\n padding: 0.5rem 0.625rem;\r\n background: #fff;\r\n cursor: pointer;\r\n border-radius: 0.375rem;\r\n transition: background-color 0.12s ease, color 0.12s ease;\r\n}\r\n.rjd-combo-select .cs-option + .cs-option {\r\n border-top: 0.0625rem solid #e5e7eb;\r\n border-top-left-radius: 0;\r\n border-top-right-radius: 0;\r\n}\r\n.rjd-combo-select .cs-option:hover {\r\n background: #f8fafc;\r\n}\r\n.rjd-combo-select .cs-option[aria-selected=\"true\"],\r\n.rjd-combo-select .cs-option.cs-option--selected {\r\n background: #bfdbfe;\r\n color: #0f1c3f;\r\n border-radius: 0.375rem;\r\n}\r\n.rjd-combo-select .cs-option[aria-disabled=\"true\"] {\r\n opacity: 0.6;\r\n pointer-events: none;\r\n}\r\n.rjd-combo-select .cs-check {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.rjd-combo-select .cs-checkbox {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n position: relative;\r\n width: 1.125rem;\r\n height: 1.125rem;\r\n}\r\n.rjd-combo-select .cs-checkbox input {\r\n position: absolute;\r\n opacity: 0;\r\n width: 1.125rem;\r\n height: 1.125rem;\r\n margin: 0;\r\n}\r\n.rjd-combo-select .cs-checkbox-box {\r\n width: 1.125rem;\r\n height: 1.125rem;\r\n border: 0.0938rem solid #94a3b8;\r\n border-radius: 0.25rem;\r\n background: #fff;\r\n transition: background-color 0.12s ease, border-color 0.12s ease,\r\n box-shadow 0.12s ease;\r\n box-sizing: border-box;\r\n display: inline-block;\r\n}\r\n.rjd-combo-select .cs-checkbox input:checked + .cs-checkbox-box {\r\n background: #181d27;\r\n border-color: #0f172a;\r\n box-shadow: inset 0 0 0 0.1875rem #fff;\r\n}\r\n.rjd-combo-select .cs-checkbox input:focus-visible + .cs-checkbox-box {\r\n outline: 0.125rem solid #1d4ed8;\r\n outline-offset: 0.125rem;\r\n}\r\n\r\n/* اسکرول‌بار پنل */\r\n.rjd-combo-select .cs-panel::-webkit-scrollbar {\r\n width: 0.5rem;\r\n}\r\n.rjd-combo-select .cs-panel::-webkit-scrollbar-track {\r\n background: transparent;\r\n}\r\n.rjd-combo-select .cs-panel::-webkit-scrollbar-thumb {\r\n background: #e5e7eb;\r\n border-radius: 624.9375rem;\r\n}\r\n.rjd-combo-select .cs-panel:hover::-webkit-scrollbar-thumb {\r\n background: #cbd5e1;\r\n}\r\n\r\n/* فلش select سفارشی */\r\n.rjd-root .select-elm {\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n appearance: none;\r\n background-color: #fff;\r\n border: 0.0625rem solid #d1d5db;\r\n border-radius: 0.5rem;\r\n height: 2.25rem;\r\n line-height: 2.25rem;\r\n padding: 0 2.5rem 0 0.75rem;\r\n font: inherit;\r\n color: inherit;\r\n background-image: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>\");\r\n background-repeat: no-repeat;\r\n background-size: 1rem 1rem;\r\n background-position: right 0.75rem center;\r\n}\r\n.rjd-root .select-elm:focus {\r\n outline: none;\r\n border-color: #3b82f6;\r\n box-shadow: 0 0 0 0.1875rem rgba(59, 130, 246, 0.15);\r\n}\r\n.rjd-root .select-elm:hover {\r\n border-color: #b4bccc;\r\n}\r\n.rjd-root .select-elm:disabled {\r\n opacity: 0.6;\r\n cursor: not-allowed;\r\n}\r\n.zcal-custom[dir=\"rtl\"] .select-elm {\r\n padding: 0 0.75rem 0 2.5rem;\r\n background-position: left 0.75rem center;\r\n border: 0;\r\n color: #000;\r\n}\r\n\r\n/* ——— هم‌تراز کردن «حروف روزهای هفته» با ستون‌های روزها ——— */\r\n\r\n/* Weekday headings and day rows must use the same full-width seven-column\r\n grid. Zaman's inner day wrapper is narrower by default, which progressively\r\n shifts the day centers away from their weekday headings. */\r\n.zcal-custom .css-sp254y,\r\n.zcal-custom [role=\"rowgroup\"] > [role=\"row\"] {\r\n display: grid !important;\r\n grid-template-columns: repeat(7, 1fr) !important;\r\n column-gap: 0.25rem !important;\r\n width: 100% !important;\r\n}\r\n\r\n/* محتوا در هر سلول مرکزچین شود */\r\n.zcal-custom .css-sp254y > *,\r\n.zcal-custom [role=\"columnheader\"],\r\n.zcal-custom [role=\"gridcell\"] {\r\n justify-self: center !important;\r\n text-align: center !important;\r\n}\r\n\r\n/* در RTL ترتیب هدر هم راست‌به‌چپ باشد */\r\n.zcal-custom[dir=\"rtl\"] [role=\"rowgroup\"] > [role=\"row\"]:first-child {\r\n direction: rtl !important;\r\n}\r\n\r\n/* All Zaman grid wrappers share the same width as the weekday header. */\r\n.zcal-custom .css-7qlbje,\r\n.zcal-custom .css-pw7rye {\r\n width: 100% !important;\r\n}\r\n.zcal-custom .css-7qlbje {\r\n left: 0 !important;\r\n right: 0 !important;\r\n}\r\n"],"mappings":"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","names":[]}