@itzsa/nepali-datepicker 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +108 -0
- package/dist/index.d.mts +328 -0
- package/dist/index.d.ts +328 -0
- package/dist/index.js +2217 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +2145 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +67 -0
- package/src/styles.css +619 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/calendar-data.ts","../src/convert.ts","../src/datetime.ts","../src/locale.ts","../src/format.ts","../src/validate.ts","../src/lib/utils.ts","../src/popover-utils.tsx","../src/calendar-panel.tsx","../src/styling.ts","../src/nepali-datepicker.tsx","../src/editable-nepali-datepicker.tsx","../src/nepali-date-range-picker.tsx","../src/nepali-date-time-picker.tsx"],"names":["pad2","twMerge","clsx","jsxs","jsx","React","React2","Fragment","React3","NepaliDatePicker","createPortal","parseBound","React4","EditableNepaliDatePicker","React5","React6","NepaliDateTimePicker"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * BS month lengths (Baisakh\to Chaitra), years 2000–2100.\n * Community-verified Nepal Panchanga tables (same range used by common BS libraries).\n */\nexport const BS_MONTH_DAYS: Record<number, readonly number[]> = {\n 2000: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2001: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2002: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2003: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2004: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2005: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2006: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2007: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2008: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31],\n 2009: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2010: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2011: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2012: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2013: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2014: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2015: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2016: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2017: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2018: [31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2019: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2020: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2021: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2022: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2023: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2024: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2025: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2026: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2027: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2028: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2029: [31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30],\n 2030: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2031: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2032: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2033: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2034: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2035: [30, 32, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31],\n 2036: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2037: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2038: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2039: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2040: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2041: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2042: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2043: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2044: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2045: [31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2046: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2047: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2048: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2049: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2050: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2051: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2052: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2053: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2054: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2055: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2056: [31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30],\n 2057: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2058: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2059: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2060: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2061: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2062: [30, 32, 31, 32, 31, 31, 29, 30, 29, 30, 29, 31],\n 2063: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2064: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2065: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2066: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31],\n 2067: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2068: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2069: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2070: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2071: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2072: [31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2073: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2074: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2075: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2076: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2077: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2078: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2079: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2080: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2081: [31, 31, 32, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2082: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2083: [31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30],\n 2084: [31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30],\n 2085: [31, 32, 31, 32, 30, 31, 30, 30, 29, 30, 30, 30],\n 2086: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2087: [31, 31, 32, 31, 31, 31, 30, 30, 29, 30, 30, 30],\n 2088: [30, 31, 32, 32, 30, 31, 30, 30, 29, 30, 30, 30],\n 2089: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2090: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2091: [31, 31, 32, 31, 31, 31, 30, 30, 29, 30, 30, 30],\n 2092: [30, 31, 32, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2093: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2094: [31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30],\n 2095: [31, 31, 32, 31, 31, 31, 30, 29, 30, 30, 30, 30],\n 2096: [30, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2097: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2098: [31, 31, 32, 31, 31, 31, 29, 30, 29, 30, 30, 31],\n 2099: [31, 31, 32, 31, 31, 31, 30, 29, 29, 30, 30, 30],\n 2100: [31, 32, 31, 32, 30, 31, 30, 29, 30, 29, 30, 30],\n} as const;\n\nexport const BS_MIN_YEAR = 2000;\nexport const BS_MAX_YEAR = 2100;\n\n/** BS 2000-01-01 corresponds to AD 1943-04-14 (civil date). */\nexport const BS_EPOCH_AD = { year: 1943, month: 4, day: 14 } as const;\n","import {\n BS_EPOCH_AD,\n BS_MAX_YEAR,\n BS_MIN_YEAR,\n BS_MONTH_DAYS,\n} from \"./calendar-data\";\nimport type { DateParts, DateTimeParts } from \"./types\";\n\nconst MS_PER_DAY = 86_400_000;\n\nfunction assertYear(year: number): void {\n if (!Number.isInteger(year) || year < BS_MIN_YEAR || year > BS_MAX_YEAR) {\n throw new RangeError(\n `BS year must be an integer between ${BS_MIN_YEAR} and ${BS_MAX_YEAR} (got ${year})`,\n );\n }\n}\n\nfunction assertMonth(month: number): void {\n if (!Number.isInteger(month) || month < 1 || month > 12) {\n throw new RangeError(`Month must be an integer 1–12 (got ${month})`);\n }\n}\n\n/** Days in a BS month (1–12). */\nexport function getDaysInBsMonth(year: number, month: number): number {\n assertYear(year);\n assertMonth(month);\n return BS_MONTH_DAYS[year]![month - 1]!;\n}\n\n/** Total days in a BS year. */\nexport function getDaysInBsYear(year: number): number {\n assertYear(year);\n return BS_MONTH_DAYS[year]!.reduce((sum, d) => sum + d, 0);\n}\n\nexport function isValidBsDate(year: number, month: number, day: number): boolean {\n if (\n !Number.isInteger(year) ||\n !Number.isInteger(month) ||\n !Number.isInteger(day)\n ) {\n return false;\n }\n if (year < BS_MIN_YEAR || year > BS_MAX_YEAR) return false;\n if (month < 1 || month > 12) return false;\n if (day < 1) return false;\n const max = BS_MONTH_DAYS[year]?.[month - 1];\n if (max == null) return false;\n return day <= max;\n}\n\nfunction assertBsDate(year: number, month: number, day: number): void {\n if (!isValidBsDate(year, month, day)) {\n throw new RangeError(`Invalid BS date ${year}-${month}-${day}`);\n }\n}\n\n/** Days from BS 2000-01-01 to the given BS date (0-based). */\nfunction daysFromBsEpoch(year: number, month: number, day: number): number {\n assertBsDate(year, month, day);\n let days = 0;\n for (let y = BS_MIN_YEAR; y < year; y++) {\n days += getDaysInBsYear(y);\n }\n for (let m = 1; m < month; m++) {\n days += getDaysInBsMonth(year, m);\n }\n return days + (day - 1);\n}\n\nfunction utcCivilParts(ms: number): DateParts {\n const d = new Date(ms);\n return {\n year: d.getUTCFullYear(),\n month: d.getUTCMonth() + 1,\n day: d.getUTCDate(),\n };\n}\n\nfunction utcMsFromParts(parts: DateParts): number {\n return Date.UTC(parts.year, parts.month - 1, parts.day);\n}\n\n/**\n * Convert Bikram Sambat → Anno Domini (civil calendar).\n * Month is 1–12 (Baisakh = 1).\n */\nexport function bsToAd(year: number, month: number, day: number): DateParts {\n const offset = daysFromBsEpoch(year, month, day);\n const epochMs = utcMsFromParts(BS_EPOCH_AD);\n return utcCivilParts(epochMs + offset * MS_PER_DAY);\n}\n\n/**\n * Convert Anno Domini → Bikram Sambat.\n * Month is 1–12.\n */\nexport function adToBs(year: number, month: number, day: number): DateParts {\n if (\n !Number.isInteger(year) ||\n !Number.isInteger(month) ||\n !Number.isInteger(day)\n ) {\n throw new RangeError(\"AD year/month/day must be integers\");\n }\n if (month < 1 || month > 12 || day < 1 || day > 31) {\n throw new RangeError(`Invalid AD date ${year}-${month}-${day}`);\n }\n\n const epochMs = utcMsFromParts(BS_EPOCH_AD);\n const targetMs = Date.UTC(year, month - 1, day);\n let remaining = Math.round((targetMs - epochMs) / MS_PER_DAY);\n\n if (remaining < 0) {\n throw new RangeError(\n `AD date ${year}-${month}-${day} is before supported BS range`,\n );\n }\n\n let bsYear = BS_MIN_YEAR;\n while (bsYear <= BS_MAX_YEAR) {\n const yearDays = getDaysInBsYear(bsYear);\n if (remaining < yearDays) break;\n remaining -= yearDays;\n bsYear += 1;\n }\n\n if (bsYear > BS_MAX_YEAR) {\n throw new RangeError(\n `AD date ${year}-${month}-${day} is after supported BS range`,\n );\n }\n\n let bsMonth = 1;\n while (bsMonth <= 12) {\n const monthDays = getDaysInBsMonth(bsYear, bsMonth);\n if (remaining < monthDays) break;\n remaining -= monthDays;\n bsMonth += 1;\n }\n\n return { year: bsYear, month: bsMonth, day: remaining + 1 };\n}\n\n/** Today's date in BS (local timezone civil date → BS). */\nexport function todayBs(): DateParts {\n const now = new Date();\n return adToBs(now.getFullYear(), now.getMonth() + 1, now.getDate());\n}\n\n/** Today + current local clock as BS datetime. */\nexport function todayBsDateTime(): DateTimeParts {\n const now = new Date();\n const date = adToBs(now.getFullYear(), now.getMonth() + 1, now.getDate());\n return {\n ...date,\n hour: now.getHours(),\n minute: now.getMinutes(),\n second: now.getSeconds(),\n };\n}\n\n/** Weekday for a BS date: 0 = Sunday … 6 = Saturday (UTC civil). */\nexport function getBsWeekday(year: number, month: number, day: number): number {\n const ad = bsToAd(year, month, day);\n return new Date(Date.UTC(ad.year, ad.month - 1, ad.day)).getUTCDay();\n}\n\n/** Compare two date parts: -1 / 0 / 1. */\nexport function compareDateParts(a: DateParts, b: DateParts): number {\n if (a.year !== b.year) return a.year < b.year ? -1 : 1;\n if (a.month !== b.month) return a.month < b.month ? -1 : 1;\n if (a.day !== b.day) return a.day < b.day ? -1 : 1;\n return 0;\n}\n\nexport function clampBsDate(\n parts: DateParts,\n min?: DateParts | null,\n max?: DateParts | null,\n): DateParts {\n let next = parts;\n if (min && compareDateParts(next, min) < 0) next = min;\n if (max && compareDateParts(next, max) > 0) next = max;\n return next;\n}\n\nexport function addBsMonths(\n year: number,\n month: number,\n delta: number,\n): { year: number; month: number } {\n const idx = year * 12 + (month - 1) + delta;\n const y = Math.floor(idx / 12);\n const m = (idx % 12) + 1;\n if (y < BS_MIN_YEAR || y > BS_MAX_YEAR) {\n throw new RangeError(\"Month navigation out of supported BS range\");\n }\n return { year: y, month: m };\n}\n\n/** Signed day difference: `b − a` (same calendar day → 0). */\nexport function diffBsDays(a: DateParts, b: DateParts): number {\n const adA = bsToAd(a.year, a.month, a.day);\n const adB = bsToAd(b.year, b.month, b.day);\n return Math.round(\n (utcMsFromParts(adB) - utcMsFromParts(adA)) / MS_PER_DAY,\n );\n}\n\n/** Add (or subtract) days on the BS calendar via AD civil arithmetic. */\nexport function addBsDays(parts: DateParts, delta: number): DateParts {\n const ad = bsToAd(parts.year, parts.month, parts.day);\n const next = utcCivilParts(utcMsFromParts(ad) + delta * MS_PER_DAY);\n return adToBs(next.year, next.month, next.day);\n}\n\nexport { BS_MAX_YEAR, BS_MIN_YEAR, BS_MONTH_DAYS, BS_EPOCH_AD };\n","import { isValidBsDate } from \"./convert\";\nimport type { DateParts, DateTimeParts } from \"./types\";\n\nfunction pad2(n: number): string {\n return n < 10 ? `0${n}` : String(n);\n}\n\nfunction isValidTime(hour: number, minute: number, second = 0): boolean {\n return (\n Number.isInteger(hour) &&\n Number.isInteger(minute) &&\n Number.isInteger(second) &&\n hour >= 0 &&\n hour <= 23 &&\n minute >= 0 &&\n minute <= 59 &&\n second >= 0 &&\n second <= 59\n );\n}\n\n/**\n * Parse `YYYY-MM-DD HH:mm`, `YYYY-MM-DDTHH:mm`, or with `:ss`.\n * Date-only strings get `00:00:00`.\n */\nexport function parseDateTimeString(value: string): DateTimeParts | null {\n const trimmed = value.trim().replace(/\\//g, \"-\");\n const m =\n /^(\\d{4})-(\\d{1,2})-(\\d{1,2})(?:[ T](\\d{1,2}):(\\d{1,2})(?::(\\d{1,2}))?)?$/.exec(\n trimmed,\n );\n if (!m) return null;\n const year = Number(m[1]);\n const month = Number(m[2]);\n const day = Number(m[3]);\n const hour = m[4] != null ? Number(m[4]) : 0;\n const minute = m[5] != null ? Number(m[5]) : 0;\n const second = m[6] != null ? Number(m[6]) : 0;\n if (!isValidBsDate(year, month, day)) return null;\n if (!isValidTime(hour, minute, second)) return null;\n return { year, month, day, hour, minute, second };\n}\n\nexport function toDateTimeString(\n parts: DateTimeParts,\n opts?: { withSeconds?: boolean },\n): string {\n const base = `${parts.year}-${pad2(parts.month)}-${pad2(parts.day)} ${pad2(parts.hour)}:${pad2(parts.minute)}`;\n if (opts?.withSeconds) {\n return `${base}:${pad2(parts.second ?? 0)}`;\n }\n return base;\n}\n\nexport function dateTimeToDateParts(dt: DateTimeParts): DateParts {\n return { year: dt.year, month: dt.month, day: dt.day };\n}\n\nexport function compareDateTimeParts(a: DateTimeParts, b: DateTimeParts): number {\n if (a.year !== b.year) return a.year < b.year ? -1 : 1;\n if (a.month !== b.month) return a.month < b.month ? -1 : 1;\n if (a.day !== b.day) return a.day < b.day ? -1 : 1;\n if (a.hour !== b.hour) return a.hour < b.hour ? -1 : 1;\n if (a.minute !== b.minute) return a.minute < b.minute ? -1 : 1;\n const as = a.second ?? 0;\n const bs = b.second ?? 0;\n if (as !== bs) return as < bs ? -1 : 1;\n return 0;\n}\n\nexport function clampDateTime(\n parts: DateTimeParts,\n min?: DateTimeParts | null,\n max?: DateTimeParts | null,\n): DateTimeParts {\n let next = parts;\n if (min && compareDateTimeParts(next, min) < 0) next = { ...min };\n if (max && compareDateTimeParts(next, max) > 0) next = { ...max };\n return next;\n}\n\n/** Bound string may be date-only (`YYYY-MM-DD`) or full datetime. */\nexport function parseDateTimeBound(\n value: string | undefined,\n edge: \"min\" | \"max\",\n): DateTimeParts | null {\n if (!value) return null;\n const full = parseDateTimeString(value);\n if (full) {\n // Date-only input → start or end of that day\n const hasTime = /[T ]\\d/.test(value.trim());\n if (!hasTime) {\n return edge === \"min\"\n ? { ...full, hour: 0, minute: 0, second: 0 }\n : { ...full, hour: 23, minute: 59, second: 59 };\n }\n return full;\n }\n return null;\n}\n\nexport function isCompleteBsDateTime(\n value: string,\n opts?: { requireSeconds?: boolean },\n): boolean {\n const dt = parseDateTimeString(value);\n if (!dt) return false;\n const hasTime = /[T ]\\d{1,2}:\\d{1,2}/.test(value.trim());\n if (!hasTime) return false;\n if (opts?.requireSeconds) {\n return /:\\d{1,2}:\\d{1,2}/.test(value.trim());\n }\n return true;\n}\n\n/** Round minute down to step (e.g. 15 → 0,15,30,45). */\nexport function snapMinute(minute: number, step: number): number {\n const s = Math.max(1, Math.min(30, Math.floor(step)));\n return Math.floor(minute / s) * s;\n}\n","import type { Locale } from \"./types\";\n\nexport const NEPALI_MONTH_NAMES_EN = [\n \"Baisakh\",\n \"Jestha\",\n \"Ashar\",\n \"Shrawan\",\n \"Bhadra\",\n \"Ashwin\",\n \"Kartik\",\n \"Mangsir\",\n \"Poush\",\n \"Magh\",\n \"Falgun\",\n \"Chaitra\",\n] as const;\n\nexport const NEPALI_MONTH_NAMES_NE = [\n \"बैशाख\",\n \"जेठ\",\n \"असार\",\n \"साउन\",\n \"भदौ\",\n \"असोज\",\n \"कार्तिक\",\n \"मंसिर\",\n \"पुष\",\n \"माघ\",\n \"फाल्गुन\",\n \"चैत\",\n] as const;\n\nexport const WEEKDAY_NAMES_EN = [\n \"Sun\",\n \"Mon\",\n \"Tue\",\n \"Wed\",\n \"Thu\",\n \"Fri\",\n \"Sat\",\n] as const;\n\nexport const WEEKDAY_NAMES_NE = [\n \"आइत\",\n \"सोम\",\n \"मंगल\",\n \"बुध\",\n \"बिही\",\n \"शुक्र\",\n \"शनि\",\n] as const;\n\nconst DIGITS_NE = [\"०\", \"१\", \"२\", \"३\", \"४\", \"५\", \"६\", \"७\", \"८\", \"९\"] as const;\n\nexport function getMonthName(month: number, locale: Locale = \"en\"): string {\n const idx = month - 1;\n if (idx < 0 || idx > 11) return String(month);\n return locale === \"ne\"\n ? NEPALI_MONTH_NAMES_NE[idx]!\n : NEPALI_MONTH_NAMES_EN[idx]!;\n}\n\nexport function getWeekdayNames(locale: Locale = \"en\"): readonly string[] {\n return locale === \"ne\" ? WEEKDAY_NAMES_NE : WEEKDAY_NAMES_EN;\n}\n\n/** Map ASCII digits to Devanagari when locale is `ne`. */\nexport function localizeDigits(value: string | number, locale: Locale): string {\n const s = String(value);\n if (locale !== \"ne\") return s;\n return s.replace(/\\d/g, (d) => DIGITS_NE[Number(d)]!);\n}\n","import { isValidBsDate } from \"./convert\";\nimport { getMonthName, localizeDigits } from \"./locale\";\nimport type { DateParts, DatePattern, DateTimeParts, Locale } from \"./types\";\n\nfunction pad2(n: number): string {\n return n < 10 ? `0${n}` : String(n);\n}\n\nconst BS_DATE_COMPLETE = /^\\d{4}[-/]\\d{2}[-/]\\d{2}$/;\n\n/** Parse `YYYY-MM-DD` or `YYYY/MM/DD` (ASCII) into parts. Returns null if invalid. */\nexport function parseDateString(value: string): DateParts | null {\n const trimmed = value.trim().replace(/\\//g, \"-\");\n const m = /^(\\d{4})-(\\d{1,2})-(\\d{1,2})$/.exec(trimmed);\n if (!m) return null;\n const year = Number(m[1]);\n const month = Number(m[2]);\n const day = Number(m[3]);\n if (!isValidBsDate(year, month, day)) return null;\n return { year, month, day };\n}\n\n/**\n * Mask typed digits into `YYYY-MM-DD` as the user types (max 8 digits).\n * Does not validate calendar correctness — only formatting.\n */\nexport function formatTypedBsDate(raw: string): string {\n const digits = raw.replace(/\\D/g, \"\").slice(0, 8);\n if (digits.length <= 4) return digits;\n if (digits.length <= 6) return `${digits.slice(0, 4)}-${digits.slice(4)}`;\n return `${digits.slice(0, 4)}-${digits.slice(4, 6)}-${digits.slice(6)}`;\n}\n\n/** True when the string is a complete, calendar-valid BS date. */\nexport function isCompleteBsDate(value: string): boolean {\n const normalized = value.trim().replace(/\\//g, \"-\");\n if (!BS_DATE_COMPLETE.test(normalized)) return false;\n return parseDateString(normalized) != null;\n}\n\n/** Format parts as ASCII `YYYY-MM-DD` (canonical value format). */\nexport function toDateString(parts: DateParts): string {\n return `${parts.year}-${pad2(parts.month)}-${pad2(parts.day)}`;\n}\n\nexport function formatDateParts(\n parts: DateParts,\n pattern: DatePattern = \"YYYY-MM-DD\",\n locale: Locale = \"en\",\n): string {\n const y = String(parts.year);\n const m = pad2(parts.month);\n const d = pad2(parts.day);\n let out: string;\n switch (pattern) {\n case \"YYYY/MM/DD\":\n out = `${y}/${m}/${d}`;\n break;\n case \"DD-MM-YYYY\":\n out = `${d}-${m}-${y}`;\n break;\n case \"DD/MM/YYYY\":\n out = `${d}/${m}/${y}`;\n break;\n default:\n out = `${y}-${m}-${d}`;\n }\n return localizeDigits(out, locale);\n}\n\n/** Human-readable label, e.g. `15 Magh 2082` / `१५ माघ २०८२`. */\nexport function formatBsLabel(parts: DateParts, locale: Locale = \"en\"): string {\n const day = localizeDigits(parts.day, locale);\n const month = getMonthName(parts.month, locale);\n const year = localizeDigits(parts.year, locale);\n return `${day} ${month} ${year}`;\n}\n\n/** e.g. `15 Magh 2082, 14:30` */\nexport function formatBsDateTimeLabel(\n parts: DateTimeParts,\n locale: Locale = \"en\",\n opts?: { withSeconds?: boolean },\n): string {\n const date = formatBsLabel(parts, locale);\n const h = localizeDigits(pad2(parts.hour), locale);\n const m = localizeDigits(pad2(parts.minute), locale);\n if (opts?.withSeconds) {\n const s = localizeDigits(pad2(parts.second ?? 0), locale);\n return `${date}, ${h}:${m}:${s}`;\n }\n return `${date}, ${h}:${m}`;\n}\n","import {\n BS_MAX_YEAR,\n BS_MIN_YEAR,\n isValidBsDate,\n} from \"./convert\";\nimport type { DateParts } from \"./types\";\n\nexport type ValidationResult =\n | { ok: true }\n | { ok: false; code: ValidationCode; message: string };\n\nexport type ValidationCode =\n | \"required\"\n | \"type\"\n | \"year_range\"\n | \"month_range\"\n | \"day_range\"\n | \"invalid_date\";\n\n/** Assert BS year is an integer in the supported table range. */\nexport function assertBsYear(year: number): void {\n if (typeof year !== \"number\" || !Number.isInteger(year)) {\n throw new TypeError(\"bsYear must be an integer\");\n }\n if (year < BS_MIN_YEAR || year > BS_MAX_YEAR) {\n throw new RangeError(\n `bsYear must be between ${BS_MIN_YEAR} and ${BS_MAX_YEAR} (got ${year})`,\n );\n }\n}\n\nexport function assertBsMonth(month: number): void {\n if (typeof month !== \"number\" || !Number.isInteger(month)) {\n throw new TypeError(\"bsMonth must be an integer\");\n }\n if (month < 1 || month > 12) {\n throw new RangeError(`bsMonth must be 1–12 (got ${month})`);\n }\n}\n\nexport function assertBsDay(day: number): void {\n if (typeof day !== \"number\" || !Number.isInteger(day)) {\n throw new TypeError(\"bsDay must be an integer\");\n }\n if (day < 1 || day > 32) {\n throw new RangeError(`bsDay must be 1–32 (got ${day})`);\n }\n}\n\n/**\n * Soft validation (no throw). Use in forms before submit.\n * Equivalent purpose to the jQuery plugin checks — without its compressed calendar codec.\n */\nexport function validateBsDate(\n year: number,\n month: number,\n day: number,\n): ValidationResult {\n if (year == null || month == null || day == null) {\n return {\n ok: false,\n code: \"required\",\n message: \"year, month, and day are required\",\n };\n }\n if (\n typeof year !== \"number\" ||\n typeof month !== \"number\" ||\n typeof day !== \"number\" ||\n !Number.isInteger(year) ||\n !Number.isInteger(month) ||\n !Number.isInteger(day)\n ) {\n return {\n ok: false,\n code: \"type\",\n message: \"year, month, and day must be integers\",\n };\n }\n if (year < BS_MIN_YEAR || year > BS_MAX_YEAR) {\n return {\n ok: false,\n code: \"year_range\",\n message: `year must be ${BS_MIN_YEAR}–${BS_MAX_YEAR}`,\n };\n }\n if (month < 1 || month > 12) {\n return {\n ok: false,\n code: \"month_range\",\n message: \"month must be 1–12\",\n };\n }\n if (day < 1 || day > 32) {\n return {\n ok: false,\n code: \"day_range\",\n message: \"day must be 1–32\",\n };\n }\n if (!isValidBsDate(year, month, day)) {\n return {\n ok: false,\n code: \"invalid_date\",\n message: `invalid BS date ${year}-${month}-${day}`,\n };\n }\n return { ok: true };\n}\n\nexport function validateBsDateParts(parts: DateParts): ValidationResult {\n return validateBsDate(parts.year, parts.month, parts.day);\n}\n\n/** Throw if invalid — mirrors jQuery plugin hard checks. */\nexport function assertValidBsDate(\n year: number,\n month: number,\n day: number,\n): void {\n const result = validateBsDate(year, month, day);\n if (!result.ok) {\n if (result.code === \"type\" || result.code === \"required\") {\n throw new TypeError(result.message);\n }\n throw new RangeError(result.message);\n }\n}\n","import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\nimport type * as React from \"react\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\nexport function mergeRefs<T>(\n ...refs: Array<React.Ref<T> | undefined | null>\n): React.RefCallback<T> {\n return (value) => {\n for (const ref of refs) {\n if (!ref) continue;\n if (typeof ref === \"function\") {\n ref(value);\n } else {\n (ref as React.MutableRefObject<T | null>).current = value;\n }\n }\n };\n}\n","import * as React from \"react\";\n\nexport function CalendarIcon({ className }: { className?: string }) {\n return (\n <svg\n className={className}\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden\n >\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" />\n <path d=\"M16 2v4M8 2v4M3 10h18\" />\n </svg>\n );\n}\n\nexport function Chevron({\n dir,\n className,\n}: {\n dir: \"left\" | \"right\" | \"down\";\n className?: string;\n}) {\n return (\n <svg\n className={className}\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden\n >\n {dir === \"left\" ? (\n <path d=\"M15 18l-6-6 6-6\" />\n ) : dir === \"right\" ? (\n <path d=\"M9 18l6-6-6-6\" />\n ) : (\n <path d=\"M6 9l6 6 6-6\" />\n )}\n </svg>\n );\n}\n\nexport function usePortalReady() {\n const [ready, setReady] = React.useState(false);\n React.useEffect(() => {\n setReady(true);\n }, []);\n return ready;\n}\n\nexport type PopoverPos = { top: number; left: number; width: number };\n\nexport function useFloatingPopover(\n open: boolean,\n anchorRef: React.RefObject<HTMLElement | null>,\n opts?: { minWidth?: number; estimatedHeight?: number },\n) {\n const minWidth = opts?.minWidth ?? 280;\n const estimatedHeight = opts?.estimatedHeight ?? 340;\n const [pos, setPos] = React.useState<PopoverPos>({\n top: 0,\n left: 0,\n width: minWidth,\n });\n\n const updatePosition = React.useCallback(() => {\n const el = anchorRef.current;\n if (!el) return;\n const rect = el.getBoundingClientRect();\n const width = Math.max(minWidth, rect.width);\n let left = rect.left;\n if (left + width > window.innerWidth - 8) {\n left = Math.max(8, window.innerWidth - width - 8);\n }\n const below = rect.bottom + 6;\n const top =\n below + estimatedHeight > window.innerHeight && rect.top > estimatedHeight\n ? rect.top - estimatedHeight - 6\n : below;\n setPos({ top, left, width });\n }, [anchorRef, minWidth, estimatedHeight]);\n\n React.useEffect(() => {\n if (!open) return;\n updatePosition();\n const onScroll = () => updatePosition();\n const onResize = () => updatePosition();\n window.addEventListener(\"scroll\", onScroll, true);\n window.addEventListener(\"resize\", onResize);\n return () => {\n window.removeEventListener(\"scroll\", onScroll, true);\n window.removeEventListener(\"resize\", onResize);\n };\n }, [open, updatePosition]);\n\n return { pos, updatePosition };\n}\n\nexport function useDismissOnOutside(\n open: boolean,\n onClose: () => void,\n refs: Array<React.RefObject<HTMLElement | null>>,\n) {\n const refsRef = React.useRef(refs);\n refsRef.current = refs;\n\n React.useEffect(() => {\n if (!open) return;\n const onKey = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") onClose();\n };\n const onPointer = (e: MouseEvent) => {\n const t = e.target as Node;\n for (const ref of refsRef.current) {\n if (ref.current?.contains(t)) return;\n }\n onClose();\n };\n document.addEventListener(\"keydown\", onKey);\n document.addEventListener(\"mousedown\", onPointer);\n return () => {\n document.removeEventListener(\"keydown\", onKey);\n document.removeEventListener(\"mousedown\", onPointer);\n };\n }, [open, onClose]);\n}\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport {\n BS_MAX_YEAR,\n BS_MIN_YEAR,\n addBsMonths,\n compareDateParts,\n getBsWeekday,\n getDaysInBsMonth,\n todayBs,\n} from \"./convert\";\nimport { getMonthName, getWeekdayNames, localizeDigits } from \"./locale\";\nimport { cn } from \"./lib/utils\";\nimport { Chevron } from \"./popover-utils\";\nimport type { DateParts, Locale } from \"./types\";\n\nexport type ViewMode = \"days\" | \"months\" | \"years\";\n\nexport type DayModifiers = {\n selected?: boolean;\n today?: boolean;\n disabled?: boolean;\n rangeStart?: boolean;\n rangeEnd?: boolean;\n inRange?: boolean;\n rangePreview?: boolean;\n};\n\nexport type CalendarMonthProps = {\n year: number;\n month: number;\n locale: Locale;\n isDisabledDay: (parts: DateParts) => boolean;\n getModifiers: (parts: DateParts) => DayModifiers;\n onDayClick: (parts: DateParts) => void;\n onDayHover?: (parts: DateParts | null) => void;\n showHeader?: boolean;\n onPrevMonth?: () => void;\n onNextMonth?: () => void;\n canPrevMonth?: boolean;\n canNextMonth?: boolean;\n onMonthTitleClick?: () => void;\n onYearTitleClick?: () => void;\n};\n\nexport function CalendarMonth({\n year,\n month,\n locale,\n isDisabledDay,\n getModifiers,\n onDayClick,\n onDayHover,\n showHeader = true,\n onPrevMonth,\n onNextMonth,\n canPrevMonth = true,\n canNextMonth = true,\n onMonthTitleClick,\n onYearTitleClick,\n}: CalendarMonthProps) {\n const weekdays = getWeekdayNames(locale);\n const daysInMonth = getDaysInBsMonth(year, month);\n const startWeekday = getBsWeekday(year, month, 1);\n\n return (\n <div className=\"itzsa-ndp-month\">\n {showHeader ? (\n <div className=\"itzsa-ndp-header\">\n {onPrevMonth ? (\n <button\n type=\"button\"\n className=\"itzsa-ndp-nav-btn\"\n disabled={!canPrevMonth}\n aria-label=\"Previous month\"\n onClick={onPrevMonth}\n >\n <Chevron dir=\"left\" />\n </button>\n ) : (\n <span className=\"itzsa-ndp-nav-spacer\" />\n )}\n\n <div className=\"itzsa-ndp-header-title\">\n {onMonthTitleClick ? (\n <button\n type=\"button\"\n className=\"itzsa-ndp-title-btn\"\n onClick={onMonthTitleClick}\n >\n {getMonthName(month, locale)}\n </button>\n ) : (\n <span className=\"itzsa-ndp-title-static\">\n {getMonthName(month, locale)}\n </span>\n )}\n {onYearTitleClick ? (\n <button\n type=\"button\"\n className=\"itzsa-ndp-title-btn\"\n onClick={onYearTitleClick}\n >\n {localizeDigits(year, locale)}\n </button>\n ) : (\n <span className=\"itzsa-ndp-title-static\">\n {localizeDigits(year, locale)}\n </span>\n )}\n </div>\n\n {onNextMonth ? (\n <button\n type=\"button\"\n className=\"itzsa-ndp-nav-btn\"\n disabled={!canNextMonth}\n aria-label=\"Next month\"\n onClick={onNextMonth}\n >\n <Chevron dir=\"right\" />\n </button>\n ) : (\n <span className=\"itzsa-ndp-nav-spacer\" />\n )}\n </div>\n ) : null}\n\n <div className=\"itzsa-ndp-weekdays\">\n {weekdays.map((w) => (\n <span key={w} className=\"itzsa-ndp-weekday\">\n {w}\n </span>\n ))}\n </div>\n <div\n className=\"itzsa-ndp-days\"\n role=\"grid\"\n onMouseLeave={() => onDayHover?.(null)}\n >\n {Array.from({ length: startWeekday }).map((_, i) => (\n <span key={`e-${i}`} className=\"itzsa-ndp-day is-empty\" />\n ))}\n {Array.from({ length: daysInMonth }, (_, i) => {\n const day = i + 1;\n const parts = { year, month, day };\n const disabledDay = isDisabledDay(parts);\n const mod = getModifiers(parts);\n return (\n <button\n key={day}\n type=\"button\"\n role=\"gridcell\"\n disabled={disabledDay || mod.disabled}\n aria-selected={mod.selected || mod.rangeStart || mod.rangeEnd}\n className={cn(\n \"itzsa-ndp-day\",\n mod.selected && \"is-selected\",\n mod.today && \"is-today\",\n (disabledDay || mod.disabled) && \"is-disabled\",\n mod.rangeStart && \"is-range-start\",\n mod.rangeEnd && \"is-range-end\",\n mod.inRange && \"is-in-range\",\n mod.rangePreview && \"is-range-preview\",\n )}\n onClick={() => onDayClick(parts)}\n onMouseEnter={() => onDayHover?.(parts)}\n >\n {localizeDigits(day, locale)}\n </button>\n );\n })}\n </div>\n </div>\n );\n}\n\nexport type SingleCalendarPanelProps = {\n locale: Locale;\n view: { year: number; month: number };\n onViewChange: (view: { year: number; month: number }) => void;\n selected: DateParts | null;\n today: DateParts;\n minYear?: number;\n maxYear?: number;\n isDisabledDay: (parts: DateParts) => boolean;\n onDayClick: (parts: DateParts) => void;\n onToday?: () => void;\n onClear?: () => void;\n showClear?: boolean;\n};\n\nexport function SingleCalendarPanel({\n locale,\n view,\n onViewChange,\n selected,\n today,\n minYear = BS_MIN_YEAR,\n maxYear = BS_MAX_YEAR,\n isDisabledDay,\n onDayClick,\n onToday,\n onClear,\n showClear = false,\n}: SingleCalendarPanelProps) {\n const [mode, setMode] = React.useState<ViewMode>(\"days\");\n\n const yearStart = Math.floor(view.year / 12) * 12;\n const years = Array.from({ length: 12 }, (_, i) => yearStart + i).filter(\n (y) => y >= minYear && y <= maxYear,\n );\n\n const canPrevMonth = (() => {\n try {\n return addBsMonths(view.year, view.month, -1).year >= minYear;\n } catch {\n return false;\n }\n })();\n\n const canNextMonth = (() => {\n try {\n return addBsMonths(view.year, view.month, 1).year <= maxYear;\n } catch {\n return false;\n }\n })();\n\n return (\n <div className=\"itzsa-ndp-panel\">\n {mode === \"days\" ? (\n <CalendarMonth\n year={view.year}\n month={view.month}\n locale={locale}\n isDisabledDay={isDisabledDay}\n getModifiers={(parts) => ({\n selected:\n selected != null && compareDateParts(selected, parts) === 0,\n today: compareDateParts(today, parts) === 0,\n })}\n onDayClick={onDayClick}\n canPrevMonth={canPrevMonth}\n canNextMonth={canNextMonth}\n onPrevMonth={() => {\n try {\n onViewChange(addBsMonths(view.year, view.month, -1));\n } catch {\n /* range */\n }\n }}\n onNextMonth={() => {\n try {\n onViewChange(addBsMonths(view.year, view.month, 1));\n } catch {\n /* range */\n }\n }}\n onMonthTitleClick={() => setMode(\"months\")}\n onYearTitleClick={() => setMode(\"years\")}\n />\n ) : null}\n\n {mode === \"months\" ? (\n <>\n <div className=\"itzsa-ndp-header\">\n <span className=\"itzsa-ndp-nav-spacer\" />\n <div className=\"itzsa-ndp-header-title\">\n <button\n type=\"button\"\n className=\"itzsa-ndp-title-btn\"\n onClick={() => setMode(\"years\")}\n >\n {localizeDigits(view.year, locale)}\n </button>\n </div>\n <span className=\"itzsa-ndp-nav-spacer\" />\n </div>\n <div className=\"itzsa-ndp-grid-months\">\n {Array.from({ length: 12 }, (_, i) => {\n const month = i + 1;\n return (\n <button\n key={month}\n type=\"button\"\n className={cn(\n \"itzsa-ndp-chip\",\n view.month === month && \"is-active\",\n )}\n onClick={() => {\n onViewChange({ year: view.year, month });\n setMode(\"days\");\n }}\n >\n {getMonthName(month, locale)}\n </button>\n );\n })}\n </div>\n </>\n ) : null}\n\n {mode === \"years\" ? (\n <div className=\"itzsa-ndp-grid-years\">\n <button\n type=\"button\"\n className=\"itzsa-ndp-nav-btn itzsa-ndp-year-shift\"\n disabled={yearStart - 12 < minYear}\n aria-label=\"Previous years\"\n onClick={() =>\n onViewChange({\n ...view,\n year: Math.max(minYear, yearStart - 12),\n })\n }\n >\n <Chevron dir=\"left\" />\n </button>\n <div className=\"itzsa-ndp-year-list\">\n {years.map((y) => (\n <button\n key={y}\n type=\"button\"\n className={cn(\"itzsa-ndp-chip\", view.year === y && \"is-active\")}\n onClick={() => {\n onViewChange({ ...view, year: y });\n setMode(\"months\");\n }}\n >\n {localizeDigits(y, locale)}\n </button>\n ))}\n </div>\n <button\n type=\"button\"\n className=\"itzsa-ndp-nav-btn itzsa-ndp-year-shift\"\n disabled={yearStart + 12 > maxYear}\n aria-label=\"Next years\"\n onClick={() =>\n onViewChange({\n ...view,\n year: Math.min(maxYear, yearStart + 12),\n })\n }\n >\n <Chevron dir=\"right\" />\n </button>\n </div>\n ) : null}\n\n {(onToday || onClear) && (\n <div className=\"itzsa-ndp-footer\">\n {onToday ? (\n <button\n type=\"button\"\n className=\"itzsa-ndp-footer-btn\"\n disabled={isDisabledDay(today)}\n onClick={onToday}\n >\n {locale === \"ne\" ? \"आज\" : \"Today\"}\n </button>\n ) : (\n <span />\n )}\n {showClear && onClear ? (\n <button\n type=\"button\"\n className=\"itzsa-ndp-footer-btn\"\n onClick={onClear}\n >\n {locale === \"ne\" ? \"खाली\" : \"Clear\"}\n </button>\n ) : null}\n </div>\n )}\n </div>\n );\n}\n\nexport function createIsDisabledDay(opts: {\n minYear: number;\n maxYear: number;\n minParts: DateParts | null;\n maxParts: DateParts | null;\n}) {\n return (parts: DateParts) => {\n if (parts.year < opts.minYear || parts.year > opts.maxYear) return true;\n if (opts.minParts && compareDateParts(parts, opts.minParts) < 0) return true;\n if (opts.maxParts && compareDateParts(parts, opts.maxParts) > 0) return true;\n return false;\n };\n}\n\nexport { todayBs };\n","import type * as React from \"react\";\n\n/**\n * Optional CSS variable overrides applied on the root / popover.\n * Prefer these over forking styles.css.\n */\nexport type NepaliDatePickerVars = {\n accent?: string;\n accentForeground?: string;\n background?: string;\n foreground?: string;\n muted?: string;\n border?: string;\n surface?: string;\n radius?: string;\n font?: string;\n};\n\nexport type NepaliDatePickerClassNames = {\n root?: string;\n field?: string;\n input?: string;\n trigger?: string;\n popover?: string;\n day?: string;\n daySelected?: string;\n footer?: string;\n};\n\nexport type NepaliDateRangeClassNames = NepaliDatePickerClassNames & {\n rangeTrigger?: string;\n rangeLabel?: string;\n rangeMonths?: string;\n};\n\nconst VAR_MAP: Record<keyof NepaliDatePickerVars, string> = {\n accent: \"--ndp-accent\",\n accentForeground: \"--ndp-accent-fg\",\n background: \"--ndp-bg\",\n foreground: \"--ndp-fg\",\n muted: \"--ndp-muted\",\n border: \"--ndp-border\",\n surface: \"--ndp-surface\",\n radius: \"--ndp-radius\",\n font: \"--ndp-font\",\n};\n\n/** Merge user `style` with CSS variable overrides from `vars`. */\nexport function mergePickerStyle(\n vars?: NepaliDatePickerVars,\n style?: React.CSSProperties,\n): React.CSSProperties | undefined {\n if (!vars && !style) return style;\n const next: React.CSSProperties = { ...style };\n if (vars) {\n for (const key of Object.keys(vars) as Array<keyof NepaliDatePickerVars>) {\n const value = vars[key];\n if (value == null || value === \"\") continue;\n (next as Record<string, string>)[VAR_MAP[key]] = value;\n }\n }\n return next;\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport {\n createIsDisabledDay,\n SingleCalendarPanel,\n} from \"./calendar-panel\";\nimport {\n BS_MAX_YEAR,\n BS_MIN_YEAR,\n clampBsDate,\n todayBs,\n} from \"./convert\";\nimport { formatBsLabel, parseDateString, toDateString } from \"./format\";\nimport { cn } from \"./lib/utils\";\nimport {\n CalendarIcon,\n useDismissOnOutside,\n useFloatingPopover,\n usePortalReady,\n} from \"./popover-utils\";\nimport {\n mergePickerStyle,\n type NepaliDatePickerClassNames,\n type NepaliDatePickerVars,\n} from \"./styling\";\nimport type { DateParts, Locale } from \"./types\";\n\nexport type NepaliDatePickerProps = {\n /** Controlled BS date as `YYYY-MM-DD` (ASCII). Empty string = no selection. */\n value?: string;\n /** Uncontrolled initial value. */\n defaultValue?: string;\n /** Called with canonical `YYYY-MM-DD` BS string (or `\"\"` when cleared). */\n onChange?: (value: string) => void;\n /** Fired when a day is clicked (before close). */\n onSelect?: (value: string) => void;\n /** Calendar UI locale (month/weekday names + digits). Default `\"ne\"`. */\n locale?: Locale;\n /** Digits/locale for the input display. Default matches `locale`. */\n valueLocale?: Locale;\n /** Minimum selectable BS date `YYYY-MM-DD`. */\n minDate?: string;\n /** Maximum selectable BS date `YYYY-MM-DD`. */\n maxDate?: string;\n /** Inclusive year bounds (defaults to supported calendar range). */\n minYear?: number;\n maxYear?: number;\n /** Close popover after picking a day. Default `true`. */\n closeOnSelect?: boolean;\n /** If value is empty, show today as the initial calendar month. Default `true`. */\n todayIfEmpty?: boolean;\n placeholder?: string;\n disabled?: boolean;\n readOnly?: boolean;\n id?: string;\n name?: string;\n required?: boolean;\n className?: string;\n inputClassName?: string;\n popoverClassName?: string;\n /** Per-part class overrides (merged with defaults). */\n classNames?: NepaliDatePickerClassNames;\n /** Theme tokens as CSS variables (`accent`, `border`, `radius`, …). */\n vars?: NepaliDatePickerVars;\n /** Inline styles on the root (merged with `vars`). */\n style?: React.CSSProperties;\n /** Inline styles on the popover panel. */\n popoverStyle?: React.CSSProperties;\n \"aria-label\"?: string;\n \"aria-labelledby\"?: string;\n};\n\nfunction parseBound(value: string | undefined): DateParts | null {\n if (!value) return null;\n return parseDateString(value);\n}\n\nexport const NepaliDatePicker = React.forwardRef<\n HTMLInputElement,\n NepaliDatePickerProps\n>(function NepaliDatePicker(\n {\n value: valueProp,\n defaultValue = \"\",\n onChange,\n onSelect,\n locale = \"ne\",\n valueLocale,\n minDate,\n maxDate,\n minYear = BS_MIN_YEAR,\n maxYear = BS_MAX_YEAR,\n closeOnSelect = true,\n todayIfEmpty = true,\n placeholder,\n disabled = false,\n readOnly = false,\n id,\n name,\n required,\n className,\n inputClassName,\n popoverClassName,\n classNames,\n vars,\n style,\n popoverStyle,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n },\n forwardedRef,\n) {\n const displayLocale = valueLocale ?? locale;\n const rootStyle = mergePickerStyle(vars, style);\n const panelStyle = mergePickerStyle(vars, popoverStyle);\n const isControlled = valueProp !== undefined;\n const [uncontrolled, setUncontrolled] = React.useState(defaultValue);\n const value = isControlled ? (valueProp ?? \"\") : uncontrolled;\n\n const minParts = React.useMemo(() => parseBound(minDate), [minDate]);\n const maxParts = React.useMemo(() => parseBound(maxDate), [maxDate]);\n const selected = React.useMemo(() => parseDateString(value), [value]);\n const today = React.useMemo(() => todayBs(), []);\n\n const initialView = React.useMemo((): DateParts => {\n if (selected) return selected;\n if (todayIfEmpty) return clampBsDate(today, minParts, maxParts);\n return {\n year: Math.min(Math.max(2080, minYear), maxYear),\n month: 1,\n day: 1,\n };\n }, [selected, todayIfEmpty, today, minParts, maxParts, minYear, maxYear]);\n\n const [open, setOpen] = React.useState(false);\n const [view, setView] = React.useState<{ year: number; month: number }>({\n year: initialView.year,\n month: initialView.month,\n });\n\n const rootRef = React.useRef<HTMLDivElement>(null);\n const inputRef = React.useRef<HTMLInputElement>(null);\n const popoverRef = React.useRef<HTMLDivElement>(null);\n const portalReady = usePortalReady();\n const { pos } = useFloatingPopover(open, rootRef, {\n minWidth: 288,\n estimatedHeight: 360,\n });\n\n React.useImperativeHandle(\n forwardedRef,\n () => inputRef.current as HTMLInputElement,\n );\n\n React.useEffect(() => {\n if (!open) return;\n const next = selected ?? (todayIfEmpty ? today : initialView);\n setView({ year: next.year, month: next.month });\n }, [open]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const close = React.useCallback(() => setOpen(false), []);\n useDismissOnOutside(open, close, [rootRef, popoverRef]);\n\n const setValue = React.useCallback(\n (next: string) => {\n if (!isControlled) setUncontrolled(next);\n onChange?.(next);\n },\n [isControlled, onChange],\n );\n\n const isDisabledDay = React.useMemo(\n () => createIsDisabledDay({ minYear, maxYear, minParts, maxParts }),\n [minYear, maxYear, minParts, maxParts],\n );\n\n const pickParts = (parts: DateParts) => {\n if (isDisabledDay(parts)) return;\n const str = toDateString(parts);\n setValue(str);\n onSelect?.(str);\n if (closeOnSelect) setOpen(false);\n };\n\n const displayValue = selected ? formatBsLabel(selected, displayLocale) : \"\";\n\n const popover =\n open && portalReady\n ? createPortal(\n <div\n ref={popoverRef}\n className={cn(\n \"itzsa-ndp-popover\",\n popoverClassName,\n classNames?.popover,\n )}\n data-locale={locale}\n style={{\n position: \"fixed\",\n top: pos.top,\n left: pos.left,\n width: pos.width,\n zIndex: 50,\n ...panelStyle,\n }}\n role=\"dialog\"\n aria-modal=\"false\"\n aria-label=\"Nepali calendar\"\n >\n <SingleCalendarPanel\n locale={locale}\n view={view}\n onViewChange={setView}\n selected={selected}\n today={today}\n minYear={minYear}\n maxYear={maxYear}\n isDisabledDay={isDisabledDay}\n onDayClick={pickParts}\n showClear={Boolean(value)}\n onToday={() => {\n const clamped = clampBsDate(today, minParts, maxParts);\n setView({ year: clamped.year, month: clamped.month });\n pickParts(clamped);\n }}\n onClear={() => {\n setValue(\"\");\n onSelect?.(\"\");\n }}\n />\n </div>,\n document.body,\n )\n : null;\n\n return (\n <div\n ref={rootRef}\n className={cn(\"itzsa-ndp\", className, classNames?.root)}\n style={rootStyle}\n data-locale={locale}\n data-disabled={disabled ? \"\" : undefined}\n data-open={open ? \"\" : undefined}\n >\n <div className={cn(\"itzsa-ndp-field\", classNames?.field)}>\n <input\n ref={inputRef}\n id={id}\n name={name}\n required={required}\n disabled={disabled}\n readOnly\n placeholder={\n placeholder ??\n (displayLocale === \"ne\" ? \"मिति छान्नुहोस्\" : \"Select date\")\n }\n value={displayValue}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-expanded={open}\n aria-haspopup=\"dialog\"\n className={cn(\"itzsa-ndp-input\", inputClassName, classNames?.input)}\n onClick={() => {\n if (!disabled && !readOnly) setOpen(true);\n }}\n onFocus={() => {\n if (!disabled && !readOnly) setOpen(true);\n }}\n onKeyDown={(e) => {\n if (disabled || readOnly) return;\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n setOpen((o) => !o);\n }\n }}\n />\n <button\n type=\"button\"\n className={cn(\"itzsa-ndp-trigger\", classNames?.trigger)}\n tabIndex={-1}\n disabled={disabled || readOnly}\n aria-label=\"Open calendar\"\n onClick={() => {\n if (!disabled && !readOnly) setOpen((o) => !o);\n }}\n >\n <CalendarIcon />\n </button>\n </div>\n {popover}\n </div>\n );\n});\n","\"use client\";\n\nimport * as React from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport {\n createIsDisabledDay,\n SingleCalendarPanel,\n} from \"./calendar-panel\";\nimport {\n BS_MAX_YEAR,\n BS_MIN_YEAR,\n clampBsDate,\n todayBs,\n} from \"./convert\";\nimport {\n formatTypedBsDate,\n parseDateString,\n toDateString,\n} from \"./format\";\nimport { cn, mergeRefs } from \"./lib/utils\";\nimport {\n CalendarIcon,\n useDismissOnOutside,\n useFloatingPopover,\n usePortalReady,\n} from \"./popover-utils\";\nimport {\n mergePickerStyle,\n type NepaliDatePickerClassNames,\n type NepaliDatePickerVars,\n} from \"./styling\";\nimport type { DateParts, Locale } from \"./types\";\n\nexport type EditableNepaliDatePickerProps = {\n /** Controlled value — may be partial while typing (`2082-0`, `2082-04-1`, …). */\n value?: string;\n defaultValue?: string;\n /**\n * Fires on every keystroke with masked `YYYY-MM-DD` digits,\n * and when a calendar day is picked (always complete & valid).\n */\n onChange?: (value: string) => void;\n onSelect?: (value: string) => void;\n locale?: Locale;\n minDate?: string;\n maxDate?: string;\n minYear?: number;\n maxYear?: number;\n closeOnSelect?: boolean;\n placeholder?: string;\n disabled?: boolean;\n readOnly?: boolean;\n id?: string;\n name?: string;\n required?: boolean;\n className?: string;\n inputClassName?: string;\n popoverClassName?: string;\n classNames?: NepaliDatePickerClassNames;\n vars?: NepaliDatePickerVars;\n style?: React.CSSProperties;\n popoverStyle?: React.CSSProperties;\n \"aria-label\"?: string;\n \"aria-labelledby\"?: string;\n};\n\nfunction parseBound(value: string | undefined): DateParts | null {\n if (!value) return null;\n return parseDateString(value);\n}\n\nexport const EditableNepaliDatePicker = React.forwardRef<\n HTMLInputElement,\n EditableNepaliDatePickerProps\n>(function EditableNepaliDatePicker(\n {\n value: valueProp,\n defaultValue = \"\",\n onChange,\n onSelect,\n locale = \"en\",\n minDate,\n maxDate,\n minYear = BS_MIN_YEAR,\n maxYear = BS_MAX_YEAR,\n closeOnSelect = true,\n placeholder = \"YYYY-MM-DD\",\n disabled = false,\n readOnly = false,\n id,\n name,\n required,\n className,\n inputClassName,\n popoverClassName,\n classNames,\n vars,\n style,\n popoverStyle,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n },\n forwardedRef,\n) {\n const isControlled = valueProp !== undefined;\n const rootStyle = mergePickerStyle(vars, style);\n const panelStyle = mergePickerStyle(vars, popoverStyle);\n const [uncontrolled, setUncontrolled] = React.useState(defaultValue);\n const value = isControlled ? (valueProp ?? \"\") : uncontrolled;\n\n const [localValue, setLocalValue] = React.useState(value);\n const cursorPosRef = React.useRef<number | null>(null);\n\n React.useEffect(() => {\n setLocalValue(value);\n }, [value]);\n\n const minParts = React.useMemo(() => parseBound(minDate), [minDate]);\n const maxParts = React.useMemo(() => parseBound(maxDate), [maxDate]);\n const selected = React.useMemo(\n () => parseDateString(localValue.replace(/\\//g, \"-\")),\n [localValue],\n );\n const today = React.useMemo(() => todayBs(), []);\n\n const [open, setOpen] = React.useState(false);\n const [view, setView] = React.useState<{ year: number; month: number }>(() => {\n const t = todayBs();\n return { year: t.year, month: t.month };\n });\n\n const rootRef = React.useRef<HTMLDivElement>(null);\n const inputRef = React.useRef<HTMLInputElement>(null);\n const popoverRef = React.useRef<HTMLDivElement>(null);\n const portalReady = usePortalReady();\n const { pos } = useFloatingPopover(open, rootRef, {\n minWidth: 288,\n estimatedHeight: 360,\n });\n\n React.useLayoutEffect(() => {\n if (cursorPosRef.current !== null && inputRef.current) {\n inputRef.current.setSelectionRange(\n cursorPosRef.current,\n cursorPosRef.current,\n );\n cursorPosRef.current = null;\n }\n });\n\n React.useEffect(() => {\n if (!open) return;\n const next = selected ?? clampBsDate(today, minParts, maxParts);\n setView({ year: next.year, month: next.month });\n }, [open]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const close = React.useCallback(() => setOpen(false), []);\n useDismissOnOutside(open, close, [rootRef, popoverRef]);\n\n const commit = React.useCallback(\n (next: string) => {\n setLocalValue(next);\n if (!isControlled) setUncontrolled(next);\n onChange?.(next);\n },\n [isControlled, onChange],\n );\n\n const isDisabledDay = React.useMemo(\n () => createIsDisabledDay({ minYear, maxYear, minParts, maxParts }),\n [minYear, maxYear, minParts, maxParts],\n );\n\n const handleType = (e: React.ChangeEvent<HTMLInputElement>) => {\n const input = e.target;\n const selStart = input.selectionStart ?? 0;\n const raw = input.value;\n const formatted = formatTypedBsDate(raw);\n\n const digitsBeforeCursor = raw.slice(0, selStart).replace(/\\D/g, \"\").length;\n let newPos = digitsBeforeCursor;\n if (digitsBeforeCursor > 4) newPos += 1;\n if (digitsBeforeCursor > 6) newPos += 1;\n cursorPosRef.current = Math.min(newPos, formatted.length);\n\n commit(formatted);\n };\n\n const pickParts = (parts: DateParts) => {\n if (isDisabledDay(parts)) return;\n const str = toDateString(parts);\n commit(str);\n onSelect?.(str);\n if (closeOnSelect) setOpen(false);\n };\n\n const popover =\n open && portalReady\n ? createPortal(\n <div\n ref={popoverRef}\n className={cn(\n \"itzsa-ndp-popover\",\n popoverClassName,\n classNames?.popover,\n )}\n data-locale={locale}\n style={{\n position: \"fixed\",\n top: pos.top,\n left: pos.left,\n width: pos.width,\n zIndex: 50,\n ...panelStyle,\n }}\n role=\"dialog\"\n aria-modal=\"false\"\n aria-label=\"Nepali calendar\"\n >\n <SingleCalendarPanel\n locale={locale}\n view={view}\n onViewChange={setView}\n selected={selected}\n today={today}\n minYear={minYear}\n maxYear={maxYear}\n isDisabledDay={isDisabledDay}\n onDayClick={pickParts}\n showClear={Boolean(localValue)}\n onToday={() => {\n const clamped = clampBsDate(today, minParts, maxParts);\n setView({ year: clamped.year, month: clamped.month });\n pickParts(clamped);\n }}\n onClear={() => {\n commit(\"\");\n onSelect?.(\"\");\n }}\n />\n </div>,\n document.body,\n )\n : null;\n\n return (\n <div\n ref={rootRef}\n className={cn(\n \"itzsa-ndp itzsa-ndp-editable\",\n className,\n classNames?.root,\n )}\n style={rootStyle}\n data-locale={locale}\n data-disabled={disabled ? \"\" : undefined}\n data-open={open ? \"\" : undefined}\n >\n <div className={cn(\"itzsa-ndp-field\", classNames?.field)}>\n <input\n ref={mergeRefs(forwardedRef, inputRef)}\n id={id}\n name={name}\n required={required}\n disabled={disabled}\n readOnly={readOnly}\n inputMode=\"numeric\"\n autoComplete=\"off\"\n spellCheck={false}\n placeholder={placeholder}\n value={localValue}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-expanded={open}\n aria-haspopup=\"dialog\"\n className={cn(\n \"itzsa-ndp-input itzsa-ndp-input-editable\",\n inputClassName,\n classNames?.input,\n )}\n onChange={readOnly ? undefined : handleType}\n onKeyDown={(e) => {\n if (disabled || readOnly) return;\n if (e.key === \"ArrowDown\" && (e.altKey || e.metaKey)) {\n e.preventDefault();\n setOpen(true);\n }\n }}\n />\n <button\n type=\"button\"\n className={cn(\"itzsa-ndp-trigger\", classNames?.trigger)}\n tabIndex={-1}\n disabled={disabled || readOnly}\n aria-label=\"Open calendar\"\n onClick={() => {\n if (!disabled && !readOnly) setOpen((o) => !o);\n }}\n >\n <CalendarIcon />\n </button>\n </div>\n {popover}\n </div>\n );\n});\n","\"use client\";\n\nimport * as React from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport {\n CalendarMonth,\n createIsDisabledDay,\n} from \"./calendar-panel\";\nimport {\n BS_MAX_YEAR,\n BS_MIN_YEAR,\n addBsMonths,\n clampBsDate,\n compareDateParts,\n diffBsDays,\n todayBs,\n} from \"./convert\";\nimport { formatBsLabel, parseDateString, toDateString } from \"./format\";\nimport { cn } from \"./lib/utils\";\nimport {\n CalendarIcon,\n Chevron,\n useDismissOnOutside,\n useFloatingPopover,\n usePortalReady,\n} from \"./popover-utils\";\nimport {\n mergePickerStyle,\n type NepaliDatePickerVars,\n type NepaliDateRangeClassNames,\n} from \"./styling\";\nimport type { DateParts, Locale } from \"./types\";\n\nexport type BsDateRange = {\n from?: string;\n to?: string;\n};\n\nexport type NepaliDateRangePickerProps = {\n value?: BsDateRange;\n defaultValue?: BsDateRange;\n onChange?: (range: BsDateRange) => void;\n locale?: Locale;\n valueLocale?: Locale;\n minDate?: string;\n maxDate?: string;\n minYear?: number;\n maxYear?: number;\n /** Show one or two months. Default `2`. */\n numberOfMonths?: 1 | 2;\n /** Close after both ends are selected. Default `true`. */\n closeOnSelect?: boolean;\n placeholder?: string;\n disabled?: boolean;\n className?: string;\n triggerClassName?: string;\n popoverClassName?: string;\n classNames?: NepaliDateRangeClassNames;\n vars?: NepaliDatePickerVars;\n style?: React.CSSProperties;\n popoverStyle?: React.CSSProperties;\n id?: string;\n \"aria-label\"?: string;\n};\n\nfunction parseBound(value: string | undefined): DateParts | null {\n if (!value) return null;\n return parseDateString(value);\n}\n\nfunction orderedRange(\n a: DateParts,\n b: DateParts,\n): { from: DateParts; to: DateParts } {\n return compareDateParts(a, b) <= 0 ? { from: a, to: b } : { from: b, to: a };\n}\n\nfunction inInclusiveRange(\n day: DateParts,\n from: DateParts,\n to: DateParts,\n): boolean {\n return (\n compareDateParts(day, from) >= 0 && compareDateParts(day, to) <= 0\n );\n}\n\nexport function NepaliDateRangePicker({\n value: valueProp,\n defaultValue = {},\n onChange,\n locale = \"ne\",\n valueLocale,\n minDate,\n maxDate,\n minYear = BS_MIN_YEAR,\n maxYear = BS_MAX_YEAR,\n numberOfMonths = 2,\n closeOnSelect = true,\n placeholder,\n disabled = false,\n className,\n triggerClassName,\n popoverClassName,\n classNames,\n vars,\n style,\n popoverStyle,\n id,\n \"aria-label\": ariaLabel,\n}: NepaliDateRangePickerProps) {\n const displayLocale = valueLocale ?? locale;\n const rootStyle = mergePickerStyle(vars, style);\n const panelStyle = mergePickerStyle(vars, popoverStyle);\n const isControlled = valueProp !== undefined;\n const [uncontrolled, setUncontrolled] = React.useState(defaultValue);\n const value = isControlled ? (valueProp ?? {}) : uncontrolled;\n\n const minParts = React.useMemo(() => parseBound(minDate), [minDate]);\n const maxParts = React.useMemo(() => parseBound(maxDate), [maxDate]);\n const fromParts = React.useMemo(\n () => (value.from ? parseDateString(value.from) : null),\n [value.from],\n );\n const toParts = React.useMemo(\n () => (value.to ? parseDateString(value.to) : null),\n [value.to],\n );\n\n const today = React.useMemo(() => todayBs(), []);\n const [open, setOpen] = React.useState(false);\n const [hover, setHover] = React.useState<DateParts | null>(null);\n /** First click while building a new range (before `to` is set). */\n const [anchor, setAnchor] = React.useState<DateParts | null>(null);\n\n const [leftView, setLeftView] = React.useState(() => {\n const t = todayBs();\n return { year: t.year, month: t.month };\n });\n\n const rightView = React.useMemo(() => {\n try {\n return addBsMonths(leftView.year, leftView.month, 1);\n } catch {\n return leftView;\n }\n }, [leftView]);\n\n const rootRef = React.useRef<HTMLDivElement>(null);\n const popoverRef = React.useRef<HTMLDivElement>(null);\n const portalReady = usePortalReady();\n const dual = numberOfMonths === 2;\n const { pos } = useFloatingPopover(open, rootRef, {\n minWidth: dual ? 560 : 288,\n estimatedHeight: 380,\n });\n\n React.useEffect(() => {\n if (!open) return;\n const base =\n fromParts ??\n clampBsDate(today, minParts, maxParts);\n setLeftView({ year: base.year, month: base.month });\n setAnchor(fromParts && !toParts ? fromParts : null);\n setHover(null);\n }, [open]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const close = React.useCallback(() => setOpen(false), []);\n useDismissOnOutside(open, close, [rootRef, popoverRef]);\n\n const commit = React.useCallback(\n (next: BsDateRange) => {\n if (!isControlled) setUncontrolled(next);\n onChange?.(next);\n },\n [isControlled, onChange],\n );\n\n const isDisabledDay = React.useMemo(\n () => createIsDisabledDay({ minYear, maxYear, minParts, maxParts }),\n [minYear, maxYear, minParts, maxParts],\n );\n\n const previewTo =\n anchor && hover ? orderedRange(anchor, hover) : null;\n\n const getModifiers = (parts: DateParts) => {\n const start = fromParts;\n const end = toParts;\n const preview = !end && previewTo ? previewTo : null;\n\n const solidInRange =\n start && end\n ? inInclusiveRange(parts, start, end) &&\n compareDateParts(parts, start) !== 0 &&\n compareDateParts(parts, end) !== 0\n : false;\n const previewInRange =\n preview != null &&\n inInclusiveRange(parts, preview.from, preview.to) &&\n compareDateParts(parts, preview.from) !== 0 &&\n compareDateParts(parts, preview.to) !== 0;\n\n return {\n today: compareDateParts(today, parts) === 0,\n rangeStart: Boolean(\n (start && compareDateParts(parts, start) === 0) ||\n (preview && compareDateParts(parts, preview.from) === 0),\n ),\n rangeEnd: Boolean(\n (end && compareDateParts(parts, end) === 0) ||\n (preview &&\n compareDateParts(parts, preview.to) === 0 &&\n compareDateParts(preview.from, preview.to) !== 0),\n ),\n inRange: Boolean(solidInRange || previewInRange),\n rangePreview: Boolean(previewInRange),\n selected: Boolean(\n (start && compareDateParts(parts, start) === 0) ||\n (end && compareDateParts(parts, end) === 0),\n ),\n };\n };\n\n const onDayClick = (parts: DateParts) => {\n if (isDisabledDay(parts)) return;\n\n if (!anchor) {\n setAnchor(parts);\n commit({ from: toDateString(parts), to: undefined });\n return;\n }\n\n const { from, to } = orderedRange(anchor, parts);\n commit({ from: toDateString(from), to: toDateString(to) });\n setAnchor(null);\n setHover(null);\n if (closeOnSelect) setOpen(false);\n };\n\n const shiftLeft = (delta: number) => {\n try {\n setLeftView(addBsMonths(leftView.year, leftView.month, delta));\n } catch {\n /* bounds */\n }\n };\n\n const canPrev = (() => {\n try {\n return addBsMonths(leftView.year, leftView.month, -1).year >= minYear;\n } catch {\n return false;\n }\n })();\n\n const canNext = (() => {\n try {\n const step = dual ? 1 : 1;\n const next = addBsMonths(\n dual ? rightView.year : leftView.year,\n dual ? rightView.month : leftView.month,\n step,\n );\n return next.year <= maxYear;\n } catch {\n return false;\n }\n })();\n\n const nights =\n fromParts && toParts ? Math.max(0, diffBsDays(fromParts, toParts)) : null;\n\n const label = (() => {\n if (fromParts && toParts) {\n return `${formatBsLabel(fromParts, displayLocale)} – ${formatBsLabel(toParts, displayLocale)}`;\n }\n if (fromParts) {\n return `${formatBsLabel(fromParts, displayLocale)} – …`;\n }\n return (\n placeholder ??\n (displayLocale === \"ne\" ? \"मिति दायरा छान्नुहोस्\" : \"Pick a date range\")\n );\n })();\n\n const popover =\n open && portalReady\n ? createPortal(\n <div\n ref={popoverRef}\n className={cn(\n \"itzsa-ndp-popover itzsa-ndp-popover-range\",\n dual && \"is-dual\",\n popoverClassName,\n classNames?.popover,\n )}\n data-locale={locale}\n style={{\n position: \"fixed\",\n top: pos.top,\n left: pos.left,\n width: Math.max(pos.width, dual ? 560 : 288),\n zIndex: 50,\n ...panelStyle,\n }}\n role=\"dialog\"\n aria-modal=\"false\"\n aria-label=\"Nepali date range\"\n >\n <div className=\"itzsa-ndp-range-toolbar\">\n <button\n type=\"button\"\n className=\"itzsa-ndp-nav-btn\"\n disabled={!canPrev}\n aria-label=\"Previous month\"\n onClick={() => shiftLeft(-1)}\n >\n <Chevron dir=\"left\" />\n </button>\n <p className=\"itzsa-ndp-range-hint\">\n {locale === \"ne\"\n ? anchor || (fromParts && !toParts)\n ? \"अन्तिम मिति छान्नुहोस्\"\n : \"सुरु मिति छान्नुहोस्\"\n : anchor || (fromParts && !toParts)\n ? \"Select end date\"\n : \"Select start date\"}\n </p>\n <button\n type=\"button\"\n className=\"itzsa-ndp-nav-btn\"\n disabled={!canNext}\n aria-label=\"Next month\"\n onClick={() => shiftLeft(1)}\n >\n <Chevron dir=\"right\" />\n </button>\n </div>\n\n <div className={cn(\"itzsa-ndp-range-months\", dual && \"is-dual\", classNames?.rangeMonths)}>\n <CalendarMonth\n year={leftView.year}\n month={leftView.month}\n locale={locale}\n isDisabledDay={isDisabledDay}\n getModifiers={getModifiers}\n onDayClick={onDayClick}\n onDayHover={setHover}\n showHeader\n onPrevMonth={undefined}\n onNextMonth={undefined}\n />\n {dual ? (\n <CalendarMonth\n year={rightView.year}\n month={rightView.month}\n locale={locale}\n isDisabledDay={isDisabledDay}\n getModifiers={getModifiers}\n onDayClick={onDayClick}\n onDayHover={setHover}\n showHeader\n />\n ) : null}\n </div>\n\n <div className=\"itzsa-ndp-footer itzsa-ndp-range-footer\">\n <p className=\"itzsa-ndp-range-meta\">\n {nights != null\n ? locale === \"ne\"\n ? `${nights} दिन`\n : `${nights} day${nights === 1 ? \"\" : \"s\"}`\n : locale === \"ne\"\n ? \"दायरा छान्नुहोस्\"\n : \"Select a range\"}\n </p>\n <div className=\"itzsa-ndp-range-actions\">\n <button\n type=\"button\"\n className=\"itzsa-ndp-footer-btn\"\n onClick={() => {\n commit({});\n setAnchor(null);\n setHover(null);\n }}\n >\n {locale === \"ne\" ? \"खाली\" : \"Clear\"}\n </button>\n <button\n type=\"button\"\n className=\"itzsa-ndp-footer-btn is-primary\"\n disabled={!fromParts || !toParts}\n onClick={() => setOpen(false)}\n >\n {locale === \"ne\" ? \"ठिक छ\" : \"Done\"}\n </button>\n </div>\n </div>\n </div>,\n document.body,\n )\n : null;\n\n return (\n <div\n ref={rootRef}\n className={cn(\"itzsa-ndp itzsa-ndp-range\", className, classNames?.root)}\n style={rootStyle}\n data-locale={locale}\n data-disabled={disabled ? \"\" : undefined}\n data-open={open ? \"\" : undefined}\n >\n <button\n type=\"button\"\n id={id}\n disabled={disabled}\n aria-label={ariaLabel}\n aria-expanded={open}\n aria-haspopup=\"dialog\"\n className={cn(\n \"itzsa-ndp-range-trigger\",\n triggerClassName,\n classNames?.rangeTrigger,\n )}\n onClick={() => {\n if (!disabled) setOpen((o) => !o);\n }}\n >\n <CalendarIcon className=\"itzsa-ndp-range-trigger-icon\" />\n <span\n className={cn(\n \"itzsa-ndp-range-trigger-label\",\n !(fromParts || toParts) && \"is-placeholder\",\n classNames?.rangeLabel,\n )}\n >\n {label}\n </span>\n <Chevron dir=\"down\" className=\"itzsa-ndp-range-trigger-chevron\" />\n </button>\n {popover}\n </div>\n );\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport {\n createIsDisabledDay,\n SingleCalendarPanel,\n} from \"./calendar-panel\";\nimport {\n BS_MAX_YEAR,\n BS_MIN_YEAR,\n todayBs,\n todayBsDateTime,\n} from \"./convert\";\nimport {\n clampDateTime,\n compareDateTimeParts,\n dateTimeToDateParts,\n parseDateTimeBound,\n parseDateTimeString,\n snapMinute,\n toDateTimeString,\n} from \"./datetime\";\nimport { formatBsDateTimeLabel } from \"./format\";\nimport { cn } from \"./lib/utils\";\nimport { localizeDigits } from \"./locale\";\nimport {\n CalendarIcon,\n useDismissOnOutside,\n useFloatingPopover,\n usePortalReady,\n} from \"./popover-utils\";\nimport {\n mergePickerStyle,\n type NepaliDatePickerClassNames,\n type NepaliDatePickerVars,\n} from \"./styling\";\nimport type { DateParts, DateTimeParts, Locale } from \"./types\";\n\nexport type NepaliDateTimePickerProps = {\n /** Controlled BS datetime `YYYY-MM-DD HH:mm` (ASCII). Empty = none. */\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n onSelect?: (value: string) => void;\n locale?: Locale;\n valueLocale?: Locale;\n /**\n * Minimum — date-only (`YYYY-MM-DD` → start of day) or full\n * `YYYY-MM-DD HH:mm`.\n */\n minDateTime?: string;\n /** Alias of `minDateTime` (date-only or datetime). */\n minDate?: string;\n /**\n * Maximum — date-only (`YYYY-MM-DD` → end of day) or full datetime.\n */\n maxDateTime?: string;\n /** Alias of `maxDateTime`. */\n maxDate?: string;\n minYear?: number;\n maxYear?: number;\n /** Minute increment. Default `5`. */\n minuteStep?: number;\n /** Include seconds in value / UI. Default `false`. */\n withSeconds?: boolean;\n /** Close after Confirm. Default `true`. */\n closeOnSelect?: boolean;\n todayIfEmpty?: boolean;\n placeholder?: string;\n disabled?: boolean;\n readOnly?: boolean;\n id?: string;\n name?: string;\n required?: boolean;\n className?: string;\n inputClassName?: string;\n popoverClassName?: string;\n classNames?: NepaliDatePickerClassNames;\n vars?: NepaliDatePickerVars;\n style?: React.CSSProperties;\n popoverStyle?: React.CSSProperties;\n \"aria-label\"?: string;\n \"aria-labelledby\"?: string;\n};\n\nfunction TimeColumn({\n label,\n values,\n selected,\n locale,\n disabledValues,\n onPick,\n}: {\n label: string;\n values: number[];\n selected: number;\n locale: Locale;\n disabledValues?: Set<number>;\n onPick: (n: number) => void;\n}) {\n const listRef = React.useRef<HTMLDivElement>(null);\n\n React.useEffect(() => {\n const root = listRef.current;\n if (!root) return;\n const el = root.querySelector<HTMLElement>(\"[data-selected]\");\n el?.scrollIntoView({ block: \"center\" });\n }, [selected]);\n\n return (\n <div className=\"itzsa-ndp-time-col\">\n <p className=\"itzsa-ndp-time-col-label\">{label}</p>\n <div ref={listRef} className=\"itzsa-ndp-time-list\" role=\"listbox\">\n {values.map((n) => {\n const disabled = disabledValues?.has(n) ?? false;\n const isSel = n === selected;\n return (\n <button\n key={n}\n type=\"button\"\n role=\"option\"\n aria-selected={isSel}\n data-selected={isSel ? \"\" : undefined}\n disabled={disabled}\n className={cn(\n \"itzsa-ndp-time-item\",\n isSel && \"is-selected\",\n disabled && \"is-disabled\",\n )}\n onClick={() => onPick(n)}\n >\n {localizeDigits(pad2(n), locale)}\n </button>\n );\n })}\n </div>\n </div>\n );\n}\n\nfunction pad2(n: number): string {\n return n < 10 ? `0${n}` : String(n);\n}\n\nexport const NepaliDateTimePicker = React.forwardRef<\n HTMLInputElement,\n NepaliDateTimePickerProps\n>(function NepaliDateTimePicker(\n {\n value: valueProp,\n defaultValue = \"\",\n onChange,\n onSelect,\n locale = \"ne\",\n valueLocale,\n minDateTime,\n minDate,\n maxDateTime,\n maxDate,\n minYear = BS_MIN_YEAR,\n maxYear = BS_MAX_YEAR,\n minuteStep = 5,\n withSeconds = false,\n closeOnSelect = true,\n todayIfEmpty = true,\n placeholder,\n disabled = false,\n readOnly = false,\n id,\n name,\n required,\n className,\n inputClassName,\n popoverClassName,\n classNames,\n vars,\n style,\n popoverStyle,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n },\n forwardedRef,\n) {\n const displayLocale = valueLocale ?? locale;\n const rootStyle = mergePickerStyle(vars, style);\n const panelStyle = mergePickerStyle(vars, popoverStyle);\n\n const isControlled = valueProp !== undefined;\n const [uncontrolled, setUncontrolled] = React.useState(defaultValue);\n const value = isControlled ? (valueProp ?? \"\") : uncontrolled;\n\n const minBound = React.useMemo(\n () => parseDateTimeBound(minDateTime ?? minDate, \"min\"),\n [minDateTime, minDate],\n );\n const maxBound = React.useMemo(\n () => parseDateTimeBound(maxDateTime ?? maxDate, \"max\"),\n [maxDateTime, maxDate],\n );\n\n const selected = React.useMemo(() => parseDateTimeString(value), [value]);\n const todayDate = React.useMemo(() => todayBs(), []);\n const nowDt = React.useMemo(() => todayBsDateTime(), []);\n\n const [open, setOpen] = React.useState(false);\n const [draft, setDraft] = React.useState<DateTimeParts>(() =>\n clampDateTime(\n selected ?? (todayIfEmpty ? nowDt : { ...nowDt, hour: 0, minute: 0, second: 0 }),\n minBound,\n maxBound,\n ),\n );\n const [view, setView] = React.useState({\n year: draft.year,\n month: draft.month,\n });\n\n const rootRef = React.useRef<HTMLDivElement>(null);\n const inputRef = React.useRef<HTMLInputElement>(null);\n const popoverRef = React.useRef<HTMLDivElement>(null);\n const portalReady = usePortalReady();\n const { pos } = useFloatingPopover(open, rootRef, {\n minWidth: 320,\n estimatedHeight: 420,\n });\n\n React.useImperativeHandle(\n forwardedRef,\n () => inputRef.current as HTMLInputElement,\n );\n\n React.useEffect(() => {\n if (!open) return;\n const base =\n selected ??\n (todayIfEmpty\n ? nowDt\n : { year: 2080, month: 1, day: 1, hour: 0, minute: 0, second: 0 });\n const next = clampDateTime(\n {\n ...base,\n minute: snapMinute(base.minute, minuteStep),\n second: withSeconds ? (base.second ?? 0) : 0,\n },\n minBound,\n maxBound,\n );\n setDraft(next);\n setView({ year: next.year, month: next.month });\n }, [open]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const close = React.useCallback(() => setOpen(false), []);\n useDismissOnOutside(open, close, [rootRef, popoverRef]);\n\n const commit = React.useCallback(\n (parts: DateTimeParts) => {\n const clamped = clampDateTime(parts, minBound, maxBound);\n const str = toDateTimeString(clamped, { withSeconds });\n if (!isControlled) setUncontrolled(str);\n onChange?.(str);\n onSelect?.(str);\n if (closeOnSelect) setOpen(false);\n },\n [minBound, maxBound, withSeconds, isControlled, onChange, onSelect, closeOnSelect],\n );\n\n const minParts = minBound ? dateTimeToDateParts(minBound) : null;\n const maxParts = maxBound ? dateTimeToDateParts(maxBound) : null;\n\n const isDisabledDay = React.useMemo(\n () => createIsDisabledDay({ minYear, maxYear, minParts, maxParts }),\n [minYear, maxYear, minParts, maxParts],\n );\n\n const setDraftClamped = (next: DateTimeParts) => {\n setDraft(clampDateTime(next, minBound, maxBound));\n };\n\n const onDayClick = (parts: DateParts) => {\n if (isDisabledDay(parts)) return;\n setDraftClamped({\n ...parts,\n hour: draft.hour,\n minute: draft.minute,\n second: draft.second ?? 0,\n });\n };\n\n const hours = Array.from({ length: 24 }, (_, i) => i);\n const minutes = Array.from(\n { length: Math.floor(60 / Math.max(1, minuteStep)) },\n (_, i) => i * Math.max(1, minuteStep),\n );\n const seconds = Array.from({ length: 60 }, (_, i) => i);\n\n const disabledHours = React.useMemo(() => {\n const set = new Set<number>();\n for (const h of hours) {\n const probe: DateTimeParts = {\n ...draft,\n hour: h,\n minute: 0,\n second: 0,\n };\n const hi: DateTimeParts = {\n ...draft,\n hour: h,\n minute: 59,\n second: 59,\n };\n if (minBound && compareDateTimeParts(hi, minBound) < 0) set.add(h);\n if (maxBound && compareDateTimeParts(probe, maxBound) > 0) set.add(h);\n }\n return set;\n }, [draft, minBound, maxBound, hours]);\n\n const disabledMinutes = React.useMemo(() => {\n const set = new Set<number>();\n for (const m of minutes) {\n const probe: DateTimeParts = {\n ...draft,\n minute: m,\n second: 0,\n };\n const hi: DateTimeParts = {\n ...draft,\n minute: m,\n second: 59,\n };\n if (minBound && compareDateTimeParts(hi, minBound) < 0) set.add(m);\n if (maxBound && compareDateTimeParts(probe, maxBound) > 0) set.add(m);\n }\n return set;\n }, [draft, minBound, maxBound, minutes]);\n\n const displayValue = selected\n ? formatBsDateTimeLabel(selected, displayLocale, { withSeconds })\n : \"\";\n\n const popover =\n open && portalReady\n ? createPortal(\n <div\n ref={popoverRef}\n className={cn(\n \"itzsa-ndp-popover itzsa-ndp-popover-datetime\",\n popoverClassName,\n classNames?.popover,\n )}\n data-locale={locale}\n style={{\n position: \"fixed\",\n top: pos.top,\n left: pos.left,\n width: Math.max(pos.width, 320),\n zIndex: 50,\n ...panelStyle,\n }}\n role=\"dialog\"\n aria-modal=\"false\"\n aria-label=\"Nepali date and time\"\n >\n <div className=\"itzsa-ndp-datetime-layout\">\n <SingleCalendarPanel\n locale={locale}\n view={view}\n onViewChange={setView}\n selected={dateTimeToDateParts(draft)}\n today={todayDate}\n minYear={minYear}\n maxYear={maxYear}\n isDisabledDay={isDisabledDay}\n onDayClick={onDayClick}\n />\n <div className=\"itzsa-ndp-time-panel\">\n <p className=\"itzsa-ndp-time-heading\">\n {locale === \"ne\" ? \"समय\" : \"Time\"}\n </p>\n <div className=\"itzsa-ndp-time-cols\">\n <TimeColumn\n label={locale === \"ne\" ? \"घण्टा\" : \"Hour\"}\n values={hours}\n selected={draft.hour}\n locale={locale}\n disabledValues={disabledHours}\n onPick={(hour) =>\n setDraftClamped({ ...draft, hour })\n }\n />\n <TimeColumn\n label={locale === \"ne\" ? \"मिनेट\" : \"Min\"}\n values={minutes}\n selected={snapMinute(draft.minute, minuteStep)}\n locale={locale}\n disabledValues={disabledMinutes}\n onPick={(minute) =>\n setDraftClamped({ ...draft, minute })\n }\n />\n {withSeconds ? (\n <TimeColumn\n label={locale === \"ne\" ? \"सेकेन्ड\" : \"Sec\"}\n values={seconds}\n selected={draft.second ?? 0}\n locale={locale}\n onPick={(second) =>\n setDraftClamped({ ...draft, second })\n }\n />\n ) : null}\n </div>\n </div>\n </div>\n\n <div className={cn(\"itzsa-ndp-footer\", classNames?.footer)}>\n <button\n type=\"button\"\n className=\"itzsa-ndp-footer-btn\"\n onClick={() => {\n const now = todayBsDateTime();\n const t = clampDateTime(\n {\n ...now,\n minute: snapMinute(now.minute, minuteStep),\n second: withSeconds ? now.second : 0,\n },\n minBound,\n maxBound,\n );\n setDraft(t);\n setView({ year: t.year, month: t.month });\n }}\n >\n {locale === \"ne\" ? \"अहिले\" : \"Now\"}\n </button>\n <div className=\"itzsa-ndp-range-actions\">\n {value ? (\n <button\n type=\"button\"\n className=\"itzsa-ndp-footer-btn\"\n onClick={() => {\n if (!isControlled) setUncontrolled(\"\");\n onChange?.(\"\");\n onSelect?.(\"\");\n }}\n >\n {locale === \"ne\" ? \"खाली\" : \"Clear\"}\n </button>\n ) : null}\n <button\n type=\"button\"\n className=\"itzsa-ndp-footer-btn is-primary\"\n onClick={() => commit(draft)}\n >\n {locale === \"ne\" ? \"ठिक छ\" : \"Confirm\"}\n </button>\n </div>\n </div>\n </div>,\n document.body,\n )\n : null;\n\n return (\n <div\n ref={rootRef}\n className={cn(\"itzsa-ndp itzsa-ndp-datetime\", className, classNames?.root)}\n style={rootStyle}\n data-locale={locale}\n data-disabled={disabled ? \"\" : undefined}\n data-open={open ? \"\" : undefined}\n >\n <div className={cn(\"itzsa-ndp-field\", classNames?.field)}>\n <input\n ref={inputRef}\n id={id}\n name={name}\n required={required}\n disabled={disabled}\n readOnly\n placeholder={\n placeholder ??\n (displayLocale === \"ne\"\n ? \"मिति र समय छान्नुहोस्\"\n : \"Select date & time\")\n }\n value={displayValue}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-expanded={open}\n aria-haspopup=\"dialog\"\n className={cn(\"itzsa-ndp-input\", inputClassName, classNames?.input)}\n onClick={() => {\n if (!disabled && !readOnly) setOpen(true);\n }}\n onFocus={() => {\n if (!disabled && !readOnly) setOpen(true);\n }}\n onKeyDown={(e) => {\n if (disabled || readOnly) return;\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n setOpen((o) => !o);\n }\n }}\n />\n <button\n type=\"button\"\n className={cn(\"itzsa-ndp-trigger\", classNames?.trigger)}\n tabIndex={-1}\n disabled={disabled || readOnly}\n aria-label=\"Open date and time picker\"\n onClick={() => {\n if (!disabled && !readOnly) setOpen((o) => !o);\n }}\n >\n <CalendarIcon />\n </button>\n </div>\n {popover}\n </div>\n );\n});\n"]}
|