@kodezen/kz-react-datepicker 1.0.0-beta.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,"file":"index.cjs.js","sources":["../src/constants.js","../src/DatepickerContext.js","../src/helpers.js","../src/utils.js","../src/Calendar/Days.js","../src/Calendar/Months.js","../src/Calendar/Week.js","../src/Calendar/Years.js","../src/Calendar/index.js","../src/Footer.js","../src/Input.js","../src/constants/shortcuts.js","../src/Shortcuts.js","../src/hooks.js","../src/index.js"],"sourcesContent":["export const COLORS = [\n \"blue\",\n \"orange\",\n \"yellow\",\n \"red\",\n \"purple\",\n \"amber\",\n \"lime\",\n \"green\",\n \"emerald\",\n \"teal\",\n \"cyan\",\n \"sky\",\n \"indigo\",\n \"violet\",\n \"fuchsia\",\n \"pink\",\n \"rose\",\n];\n\nexport const DEFAULT_COLOR = \"blue\";\nexport const LANGUAGE = \"en\";\nexport const DATE_FORMAT = \"YYYY-MM-DD\";\nexport const START_WEEK = \"sun\";\nexport const DATE_LOOKING_OPTIONS = [\"forward\", \"backward\", \"middle\"];\nexport const DAYS = [0, 1, 2, 3, 4, 5, 6];\nexport const MONTHS = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\nexport const CALENDAR_SIZE = 42;\n","import { createContext } from \"react\";\nimport { DATE_FORMAT, LANGUAGE, START_WEEK } from \"./constants\";\n\n/**\n * @typedef {Object} Period\n * @property {string|null} start\n * @property {string|null} end\n */\n\n/**\n * @typedef {Object} DateValueType\n * @property {Date|string|null} startDate\n * @property {Date|string|null} endDate\n */\n\n/**\n * @typedef {Object} DatepickerStore\n * @property {import(\"react\").RefObject} [input]\n * @property {boolean} [asSingle]\n * @property {string} primaryColor\n * @property {Object} [configs]\n * @property {import(\"react\").RefObject} calendarContainer\n * @property {import(\"react\").RefObject} arrowContainer\n * @property {() => void} hideDatepicker\n * @property {Period} period\n * @property {(period: Period) => void} changePeriod\n * @property {string|null} dayHover\n * @property {(day: string|null) => void} changeDayHover\n * @property {string} inputText\n * @property {(text: string) => void} changeInputText\n * @property {(date: Date) => void} updateFirstDate\n * @property {(value: DateValueType, e?: HTMLInputElement | null) => void} changeDatepickerValue\n * @property {boolean} [showFooter]\n * @property {string|null} [placeholder]\n * @property {string} separator\n * @property {string|null} shortcutText\n * @property {string} i18n\n * @property {DateValueType|null} value\n * @property {boolean} [disabled]\n * @property {((className: string) => string)|string|null} [inputClassName]\n * @property {((className: string) => string)|string|null} [containerClassName]\n * @property {((className: string) => string)|string|null} [toggleClassName]\n * @property {(open: boolean) => import(\"react\").ReactNode} [toggleIcon]\n * @property {boolean} [readOnly]\n * @property {string|null} [startWeekOn]\n * @property {string} displayFormat\n * @property {Date|string|null} [minDate]\n * @property {Date|string|null} [maxDate]\n * @property {\"forward\"|\"backward\"|\"middle\"} [dateLooking]\n * @property {Array<{start: Date|string, end: Date|string}>|null} [disabledDates]\n * @property {string} [inputId]\n * @property {string} [inputName]\n * @property {Object} [classNames]\n * @property {string} [popoverDirection]\n * @property {\"auto\"|\"light\"|\"dark\"} theme\n * @property {\"bottom\"|\"top\"|\"left\"|\"right\"|\"auto\"} placement\n */\n\n/**\n * @type {import(\"react\").Context<DatepickerStore>}\n */\nconst DatepickerContext = createContext({\n input: undefined,\n primaryColor: \"blue\",\n configs: undefined,\n calendarContainer: null,\n arrowContainer: null,\n period: { start: null, end: null },\n changePeriod: (period) => {},\n hideDatepicker: () => {},\n dayHover: null,\n changeDayHover: (day) => {},\n inputText: \"\",\n changeInputText: (text) => {},\n updateFirstDate: (date) => {},\n changeDatepickerValue: (value, e) => {},\n showFooter: false,\n value: null,\n i18n: LANGUAGE,\n disabled: false,\n inputClassName: \"\",\n containerClassName: \"\",\n toggleClassName: \"\",\n readOnly: false,\n displayFormat: DATE_FORMAT,\n minDate: null,\n maxDate: null,\n dateLooking: \"forward\",\n disabledDates: null,\n inputId: undefined,\n inputName: undefined,\n startWeekOn: START_WEEK,\n toggleIcon: undefined,\n classNames: undefined,\n popoverDirection: undefined,\n separator: \"~\",\n shortcutText: null,\n suffix: \"\",\n theme: \"auto\",\n placement: \"bottom\",\n});\n\nexport default DatepickerContext;\n","import { DATE_FORMAT } from \"./constants\";\n\nexport function classNames(...classes) {\n return classes.filter(Boolean).join(\" \");\n}\n\nexport function generateArrayNumber(start = 0, end = 0) {\n const array = [];\n for (let i = start; i <= end; i++) {\n array.push(i);\n }\n return array;\n}\n\nexport function shortString(value, limit = 3) {\n return value.slice(0, limit);\n}\n\nexport function ucFirst(value) {\n return `${value[0].toUpperCase()}${value.slice(1)}`;\n}\n\n/**\n * Parses a string to Date object or returns the Date if already a Date.\n * Supports basic 'YYYY-MM-DD' parser fallback since removing dayjs.\n * @param {Date|string} date\n * @returns {Date}\n */\nexport function parseDate(date) {\n if (date instanceof Date) return new Date(date);\n // Attempt simple parsing for YYYY-MM-DD\n if (typeof date === \"string\" && /^\\d{4}-\\d{2}-\\d{2}$/.test(date)) {\n const [y, m, d] = date.split(\"-\").map(Number);\n return new Date(y, m - 1, d);\n }\n return new Date(date);\n}\n\n/**\n * Format date nicely, replacing dayjs formatting\n * Defaults to YYYY-MM-DD\n * @param {Date|string} date\n * @param {string} format\n * @returns {string}\n */\nexport function formatDate(date, format = DATE_FORMAT) {\n const d = parseDate(date);\n if (!dateIsValid(d)) return \"\";\n\n const map = {\n YYYY: d.getFullYear(),\n MM: String(d.getMonth() + 1).padStart(2, \"0\"),\n DD: String(d.getDate()).padStart(2, \"0\"),\n ddd: d.toLocaleDateString(\"en-US\", { weekday: \"short\" }),\n };\n\n let result = format;\n for (const [key, value] of Object.entries(map)) {\n result = result.replace(key, value);\n }\n return result;\n}\n\nexport function getFirstDayInMonth(date) {\n const d = parseDate(date);\n const firstDay = new Date(d.getFullYear(), d.getMonth(), 1);\n return {\n ddd: formatDate(firstDay, \"ddd\"),\n basic: formatDate(firstDay),\n object: firstDay,\n };\n}\n\nexport function getLastDayInMonth(date) {\n const d = parseDate(date);\n const lastDay = new Date(d.getFullYear(), d.getMonth() + 1, 0);\n return {\n ddd: formatDate(lastDay, \"ddd\"),\n basic: formatDate(lastDay),\n object: lastDay,\n };\n}\n\nexport function getDaysInMonth(date) {\n const d = parseDate(date);\n const days = new Date(d.getFullYear(), d.getMonth() + 1, 0).getDate();\n return generateArrayNumber(1, days);\n}\n\nexport function nextMonth(date) {\n const d = parseDate(date);\n return new Date(d.getFullYear(), d.getMonth() + 1, 1);\n}\n\nexport function previousMonth(date) {\n const d = parseDate(date);\n return new Date(d.getFullYear(), d.getMonth() - 1, 1);\n}\n\nexport function getFirstElementsInArray(array = [], size = 0) {\n return array.slice(0, size);\n}\n\nexport function getLastElementsInArray(array = [], size = 0) {\n const result = [];\n if (Array.isArray(array) && size > 0) {\n if (size >= array.length) {\n return array;\n }\n\n let y = array.length - 1;\n for (let i = 0; i < size; i++) {\n result.push(array[y]);\n y--;\n }\n }\n return result.reverse();\n}\n\nexport function getNumberOfDay(dayString, startWeekOn = \"sun\") {\n let number = 0;\n let startDateModifier = 0;\n\n switch (startWeekOn) {\n case \"mon\":\n startDateModifier = 6;\n break;\n case \"tue\":\n startDateModifier = 5;\n break;\n case \"wed\":\n startDateModifier = 4;\n break;\n case \"thu\":\n startDateModifier = 3;\n break;\n case \"fri\":\n startDateModifier = 2;\n break;\n case \"sat\":\n startDateModifier = 1;\n break;\n case \"sun\":\n default:\n startDateModifier = 0;\n break;\n }\n\n const days = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\n days.forEach((item, index) => {\n if (item.includes(dayString)) {\n number = (index + startDateModifier) % 7;\n }\n });\n\n return number;\n}\n\nexport function getLastDaysInMonth(date, size = 0) {\n return getLastElementsInArray(getDaysInMonth(date), size);\n}\n\nexport function getFirstDaysInMonth(date, size = 0) {\n return getFirstElementsInArray(getDaysInMonth(date), size);\n}\n\nexport function dateIsValid(date) {\n return date instanceof Date && !isNaN(date.getTime());\n}\n\nexport function isSameDate(date1, date2) {\n const d1 = parseDate(date1);\n const d2 = parseDate(date2);\n if (!dateIsValid(d1) || !dateIsValid(d2)) return false;\n return d1.getFullYear() === d2.getFullYear() &&\n d1.getMonth() === d2.getMonth() &&\n d1.getDate() === d2.getDate();\n}\n\nexport function isBeforeDate(date1, date2) {\n const d1 = parseDate(date1);\n const d2 = parseDate(date2);\n if (!dateIsValid(d1) || !dateIsValid(d2)) return false;\n \n // Set time limits for strict date comparison\n const t1 = new Date(d1.getFullYear(), d1.getMonth(), d1.getDate()).getTime();\n const t2 = new Date(d2.getFullYear(), d2.getMonth(), d2.getDate()).getTime();\n \n return t1 < t2;\n}\n\nexport function isAfterDate(date1, date2) {\n const d1 = parseDate(date1);\n const d2 = parseDate(date2);\n if (!dateIsValid(d1) || !dateIsValid(d2)) return false;\n \n const t1 = new Date(d1.getFullYear(), d1.getMonth(), d1.getDate()).getTime();\n const t2 = new Date(d2.getFullYear(), d2.getMonth(), d2.getDate()).getTime();\n\n return t1 > t2;\n}\n\nexport function isBetweenDates(target, date1, date2) {\n const t = parseDate(target).getTime();\n const d1 = parseDate(date1).getTime();\n const d2 = parseDate(date2).getTime();\n const start = Math.min(d1, d2);\n const end = Math.max(d1, d2);\n return t > start && t < end;\n}\n","import React, { useContext } from \"react\";\nimport DatepickerContext from \"./DatepickerContext\";\n\nexport const DateIcon = ({ className = \"w-6 h-6\" }) => (\n <svg className={className} xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth={1.5} stroke=\"currentColor\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 012.25-2.25h13.5A2.25 2.25 0 0121 7.5v11.25m-18 0A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75m-18 0v-7.5A2.25 2.25 0 015.25 9h13.5A2.25 2.25 0 0121 11.25v7.5m-9-6h.008v.008H12v-.008zM12 15h.008v.008H12V15zm0 2.25h.008v.008H12v-.008zM9.75 15h.008v.008H9.75V15zm0 2.25h.008v.008H9.75v-.008zM7.5 15h.008v.008H7.5V15zm0 2.25h.008v.008H7.5v-.008zm6.75-4.5h.008v.008h-.008v-.008zm0 2.25h.008v.008h-.008V15zm0 2.25h.008v.008h-.008v-.008zm2.25-4.5h.008v.008H16.5v-.008zm0 2.25h.008v.008H16.5V15z\" />\n </svg>\n);\n\nexport const CloseIcon = ({ className = \"w-6 h-6\" }) => (\n <svg className={className} xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth={1.5} stroke=\"currentColor\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n);\n\nexport const ChevronLeftIcon = ({ className = \"w-6 h-6\" }) => (\n <svg className={className} xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth={1.5} stroke=\"currentColor\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M15.75 19.5L8.25 12l7.5-7.5\" />\n </svg>\n);\n\nexport const DoubleChevronLeftIcon = ({ className = \"w-6 h-6\" }) => (\n <svg className={className} xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth={1.5} stroke=\"currentColor\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M18.75 19.5l-7.5-7.5 7.5-7.5m-6 15L5.25 12l7.5-7.5\" />\n </svg>\n);\n\nexport const ChevronRightIcon = ({ className = \"w-6 h-6\" }) => (\n <svg className={className} xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth={1.5} stroke=\"currentColor\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M8.25 4.5l7.5 7.5-7.5 7.5\" />\n </svg>\n);\n\nexport const DoubleChevronRightIcon = ({ className = \"w-6 h-6\" }) => (\n <svg className={className} xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth={1.5} stroke=\"currentColor\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M11.25 4.5l7.5 7.5-7.5 7.5m-6-15l7.5 7.5-7.5 7.5\" />\n </svg>\n);\n\nexport const Arrow = React.forwardRef((props, ref) => {\n const { suffix } = useContext(DatepickerContext);\n const baseClass = \"kz-arrow-indicator\";\n return <div ref={ref} className={baseClass + (suffix ? ` ${baseClass}--${suffix}` : \"\")} />;\n});\n\nexport const SecondaryButton = ({ children, onClick, disabled = false }) => {\n const { suffix } = useContext(DatepickerContext);\n const baseClass = \"kz-secondary-btn\";\n return (\n <button type=\"button\" className={baseClass + (suffix ? ` ${baseClass}--${suffix}` : \"\")} onClick={onClick} disabled={disabled}>\n {children}\n </button>\n );\n};\n\nexport const PrimaryButton = ({ children, onClick, disabled = false }) => {\n const { suffix } = useContext(DatepickerContext);\n const baseClass = \"kz-primary-btn\";\n return (\n <button type=\"button\" className={baseClass + (suffix ? ` ${baseClass}--${suffix}` : \"\")} onClick={onClick} disabled={disabled}>\n {children}\n </button>\n );\n};\n\nexport const RoundedButton = ({ children, onClick, disabled, roundedFull = false, active = false }) => {\n const { suffix } = useContext(DatepickerContext);\n const baseClass = \"kz-rounded-btn\";\n const cn = [baseClass];\n if (suffix) cn.push(`${baseClass}--${suffix}`);\n if (roundedFull) {\n cn.push(\"is-rounded-full\");\n if (suffix) cn.push(`is-rounded-full--${suffix}`);\n }\n if (active) {\n cn.push(\"is-active\");\n if (suffix) cn.push(`is-active--${suffix}`);\n }\n\n return (\n <button type=\"button\" className={cn.join(\" \")} onClick={onClick} disabled={disabled}>\n {children}\n </button>\n );\n};\n\nexport const VerticalDash = () => {\n const { suffix } = useContext(DatepickerContext);\n const baseClass = \"kz-vertical-dash\";\n return <div className={baseClass + (suffix ? ` ${baseClass}--${suffix}` : \"\")} />;\n};\n","import React, { useContext } from \"react\";\nimport DatepickerContext from \"../DatepickerContext\";\nimport { classNames as cn, isAfterDate, isBeforeDate, isBetweenDates, isSameDate, parseDate } from \"../helpers\";\n\nconst Days = ({ calendarData, onClickPreviousDays, onClickDay, onClickNextDays }) => {\n const { period, dayHover, changeDayHover, minDate, maxDate, disabledDates, suffix } = useContext(DatepickerContext);\n\n const getFullDate = (day, m, y) => {\n return new Date(y, m, day);\n };\n\n const isDateDisabledInner = (day, type) => {\n const { date } = calendarData;\n let m = date.getMonth();\n let y = date.getFullYear();\n \n if (type === \"previous\") m -= 1;\n if (type === \"next\") m += 1;\n\n const currentDayDate = new Date(y, m, day);\n\n if (minDate && isBeforeDate(currentDayDate, minDate)) return true;\n if (maxDate && isAfterDate(currentDayDate, maxDate)) return true;\n\n if (disabledDates?.length) {\n for (let i = 0; i < disabledDates.length; i++) {\n if (\n isBetweenDates(currentDayDate, disabledDates[i].startDate, disabledDates[i].endDate) ||\n currentDayDate.getTime() === new Date(disabledDates[i].startDate).getTime() ||\n currentDayDate.getTime() === new Date(disabledDates[i].endDate).getTime()\n ) {\n return true;\n }\n }\n }\n return false;\n };\n\n const isDateDisabled = (day, type) => isDateDisabledInner(day, type);\n\n const getButtonClass = (day, type) => {\n const { date } = calendarData;\n let m = date.getMonth();\n let y = date.getFullYear();\n \n if (type === \"previous\") m -= 1;\n if (type === \"next\") m += 1;\n\n const currentDayDate = new Date(y, m, day);\n const today = new Date();\n const isToday = today.getDate() === day && today.getMonth() === m && today.getFullYear() === y;\n\n const start = period.start ? parseDate(period.start) : null;\n const end = period.end ? parseDate(period.end) : null;\n const hover = dayHover ? parseDate(dayHover) : null;\n\n let baseClass = \"kz-calendar-day\";\n if (suffix) baseClass += ` kz-calendar-day--${suffix}`;\n\n if (type !== \"current\" || isDateDisabled(day, type)) {\n baseClass += \" kz-calendar-day-disabled\";\n if (suffix) baseClass += ` kz-calendar-day-disabled--${suffix}`;\n return baseClass;\n }\n\n if (isToday) {\n baseClass += \" kz-calendar-day-today\";\n if (suffix) baseClass += ` kz-calendar-day-today--${suffix}`;\n }\n\n const isStart = start && isSameDate(start, currentDayDate);\n const isEnd = end && isSameDate(end, currentDayDate);\n\n // Initial click: make it rounded\n if (start && !end && isStart) {\n baseClass += \" kz-calendar-day-active kz-calendar-day-rounded\";\n if (suffix) {\n baseClass += ` kz-calendar-day-active--${suffix} kz-calendar-day-rounded--${suffix}`;\n }\n return baseClass;\n }\n\n if (isStart && isEnd) {\n baseClass += \" kz-calendar-day-active kz-calendar-day-rounded\";\n if (suffix) {\n baseClass += ` kz-calendar-day-active--${suffix} kz-calendar-day-rounded--${suffix}`;\n }\n } else if (isStart) {\n baseClass += \" kz-calendar-day-active\";\n if (suffix) baseClass += ` kz-calendar-day-active--${suffix}`;\n \n const isStartBeforeEnd = end && isBeforeDate(start, end);\n const isStartBeforeHover = !end && hover && isBeforeDate(start, hover);\n\n if (isStartBeforeEnd || isStartBeforeHover) {\n baseClass += \" kz-calendar-day-hover-left\";\n if (suffix) baseClass += ` kz-calendar-day-hover-left--${suffix}`;\n } else {\n baseClass += \" kz-calendar-day-hover-right\";\n if (suffix) baseClass += ` kz-calendar-day-hover-right--${suffix}`;\n }\n } else if (isEnd) {\n baseClass += \" kz-calendar-day-active\";\n if (suffix) baseClass += ` kz-calendar-day-active--${suffix}`;\n \n const isEndAfterStart = start && isAfterDate(end, start);\n const isEndAfterHover = !start && hover && isAfterDate(end, hover);\n\n if (isEndAfterStart || isEndAfterHover) {\n baseClass += \" kz-calendar-day-hover-right\";\n if (suffix) baseClass += ` kz-calendar-day-hover-right--${suffix}`;\n } else {\n baseClass += \" kz-calendar-day-hover-left\";\n if (suffix) baseClass += ` kz-calendar-day-hover-left--${suffix}`;\n }\n }\n\n if (start && end && isBetweenDates(currentDayDate, start, end)) {\n baseClass += \" kz-calendar-day-in-range\";\n if (suffix) baseClass += ` kz-calendar-day-in-range--${suffix}`;\n }\n\n if (hover) {\n if (start && !end && isBetweenDates(currentDayDate, start, hover)) {\n baseClass += \" kz-calendar-day-in-range\";\n if (suffix) baseClass += ` kz-calendar-day-in-range--${suffix}`;\n }\n if (end && !start && isBetweenDates(currentDayDate, hover, end)) {\n baseClass += \" kz-calendar-day-in-range\";\n if (suffix) baseClass += ` kz-calendar-day-in-range--${suffix}`;\n }\n if (hover.getTime() === currentDayDate.getTime() && !(isStart || isEnd)) {\n baseClass += \" kz-calendar-day-hover-end\";\n if (suffix) baseClass += ` kz-calendar-day-hover-end--${suffix}`;\n \n if (start) {\n if (isBeforeDate(currentDayDate, start)) {\n baseClass += \" kz-calendar-day-hover-left\";\n if (suffix) baseClass += ` kz-calendar-day-hover-left--${suffix}`;\n } else {\n baseClass += \" kz-calendar-day-hover-right\";\n if (suffix) baseClass += ` kz-calendar-day-hover-right--${suffix}`;\n }\n } else if (end) {\n if (isAfterDate(currentDayDate, end)) {\n baseClass += \" kz-calendar-day-hover-right\";\n if (suffix) baseClass += ` kz-calendar-day-hover-right--${suffix}`;\n } else {\n baseClass += \" kz-calendar-day-hover-left\";\n if (suffix) baseClass += ` kz-calendar-day-hover-left--${suffix}`;\n }\n }\n }\n }\n\n return baseClass;\n };\n\n const handleClick = (day, type) => {\n if (isDateDisabled(day, type)) return;\n if (type === \"previous\") onClickPreviousDays(day);\n if (type === \"current\") onClickDay(day);\n if (type === \"next\") onClickNextDays(day);\n };\n\n const processHover = (day, type) => {\n if (isDateDisabled(day, type)) return;\n const { date } = calendarData;\n let m = date.getMonth();\n let y = date.getFullYear();\n if (type === \"previous\") m -= 1;\n if (type === \"next\") m += 1;\n const dStr = `${y}-${String(m + 1).padStart(2, '0')}-${String(day).padStart(2, '0')}`;\n changeDayHover(dStr);\n };\n\n return (\n <div \n className={\"kz-calendar-days-grid\" + (suffix ? ` kz-calendar-days-grid--${suffix}` : \"\")}\n onMouseLeave={() => changeDayHover(null)}\n >\n {[\"previous\", \"current\", \"next\"].map((type) =>\n calendarData.days[type].map((day, idx) => (\n <button\n key={`${type}-${idx}`}\n className={getButtonClass(day, type)}\n onClick={() => handleClick(day, type)}\n onMouseOver={() => processHover(day, type)}\n disabled={isDateDisabled(day, type)}\n >\n {day}\n </button>\n ))\n )}\n </div>\n );\n};\n\nexport default Days;\n","import React, { useContext } from \"react\";\nimport { MONTHS } from \"../constants\";\nimport DatepickerContext from \"../DatepickerContext\";\nimport { RoundedButton } from \"../utils.js\";\n\nconst Months = ({ currentMonth, clickMonth }) => {\n const { i18n, suffix } = useContext(DatepickerContext);\n\n const getMonthName = (monthNumber) => {\n const date = new Date(2022, monthNumber - 1, 1);\n return date.toLocaleString(i18n || \"en-US\", { month: \"short\" });\n };\n\n return (\n <div className={\"kz-calendar-months-grid\" + (suffix ? ` kz-calendar-months-grid--${suffix}` : \"\")}>\n {MONTHS.map((item) => (\n <RoundedButton\n key={item}\n padding=\"py-3\"\n onClick={() => clickMonth(item)}\n active={currentMonth === item}\n >\n {getMonthName(item)}\n </RoundedButton>\n ))}\n </div>\n );\n};\n\nexport default Months;\n","import React, { useContext, useMemo } from \"react\";\nimport { DAYS } from \"../constants\";\nimport DatepickerContext from \"../DatepickerContext\";\nimport { shortString, ucFirst } from \"../helpers\";\n\nconst Week = () => {\n const { i18n, startWeekOn, suffix } = useContext(DatepickerContext);\n\n const startDateModifier = useMemo(() => {\n switch (startWeekOn) {\n case \"mon\": return 1;\n case \"tue\": return 2;\n case \"wed\": return 3;\n case \"thu\": return 4;\n case \"fri\": return 5;\n case \"sat\": return 6;\n case \"sun\":\n default: return 0;\n }\n }, [startWeekOn]);\n\n const getDayName = (dayIndex) => {\n // Nov 6, 2022 is a Sunday. \n const date = new Date(2022, 10, 6 + dayIndex + startDateModifier);\n return ucFirst(shortString(date.toLocaleDateString(i18n || \"en-US\", { weekday: \"short\" })));\n };\n\n return (\n <div className={\"kz-calendar-week-grid\" + (suffix ? ` kz-calendar-week-grid--${suffix}` : \"\")}>\n {DAYS.map((item) => (\n <div key={item} className={\"kz-calendar-week-day\" + (suffix ? ` kz-calendar-week-day--${suffix}` : \"\")}>\n {getDayName(item)}\n </div>\n ))}\n </div>\n );\n};\n\nexport default Week;\n","import React, { useContext } from \"react\";\nimport { generateArrayNumber } from \"../helpers\";\nimport { RoundedButton } from \"../utils.js\";\nimport DatepickerContext from \"../DatepickerContext\";\n\nconst Years = ({ year, currentYear, minYear, maxYear, clickYear }) => {\n const { dateLooking, suffix } = useContext(DatepickerContext);\n\n let startDate = 0;\n let endDate = 0;\n\n switch (dateLooking) {\n case \"backward\":\n startDate = year - 11;\n endDate = year;\n break;\n case \"middle\":\n startDate = year - 4;\n endDate = year + 7;\n break;\n case \"forward\":\n default:\n startDate = year;\n endDate = year + 11;\n break;\n }\n return (\n <div className={\"kz-calendar-years-grid\" + (suffix ? ` kz-calendar-years-grid--${suffix}` : \"\")}>\n {generateArrayNumber(startDate, endDate).map((item, index) => (\n <RoundedButton\n key={index}\n padding=\"py-3\"\n onClick={() => clickYear(item)}\n active={currentYear === item}\n disabled={\n (maxYear !== null && item > maxYear) ||\n (minYear !== null && item < minYear)\n }\n >\n {item}\n </RoundedButton>\n ))}\n </div>\n );\n};\n\nexport default Years;\n","import React, { useContext, useMemo, useState } from \"react\";\nimport DatepickerContext from \"../DatepickerContext\";\nimport {\n formatDate,\n getDaysInMonth,\n getFirstDayInMonth,\n getFirstDaysInMonth,\n getLastDaysInMonth,\n getNumberOfDay,\n nextMonth,\n previousMonth,\n} from \"../helpers\";\nimport {\n ChevronLeftIcon,\n ChevronRightIcon,\n DoubleChevronLeftIcon,\n DoubleChevronRightIcon,\n RoundedButton,\n} from \"../utils.js\";\n\nimport Days from \"./Days\";\nimport Months from \"./Months\";\nimport Week from \"./Week\";\nimport Years from \"./Years\";\n\nconst Calendar = ({\n date,\n minDate,\n maxDate,\n onClickPrevious,\n onClickNext,\n changeMonth,\n changeYear,\n}) => {\n const { asSingle, showFooter, changeDatepickerValue, hideDatepicker, period, changePeriod, changeDayHover, startWeekOn, input, suffix } = useContext(DatepickerContext);\n\n const [showMonths, setShowMonths] = useState(false);\n const [showYears, setShowYears] = useState(false);\n const [year, setYear] = useState(date.getFullYear());\n\n const previous = () => {\n return getLastDaysInMonth(\n previousMonth(date),\n getNumberOfDay(getFirstDayInMonth(date).ddd, startWeekOn)\n );\n };\n\n const current = () => {\n return getDaysInMonth(date);\n };\n\n const next = () => {\n return getFirstDaysInMonth(\n previousMonth(date),\n 42 - (previous().length + current().length)\n );\n };\n\n const hideMonths = () => showMonths && setShowMonths(false);\n const hideYears = () => showYears && setShowYears(false);\n\n const clickMonth = (month) => {\n setTimeout(() => {\n changeMonth(month);\n setShowMonths(!showMonths);\n }, 250);\n };\n\n const clickYear = (year) => {\n setTimeout(() => {\n changeYear(year);\n setShowYears(!showYears);\n }, 250);\n };\n\n const clickDay = (day, month = date.getMonth() + 1, year = date.getFullYear()) => {\n const fullDay = `${year}-${String(month).padStart(2, \"0\")}-${String(day).padStart(2, \"0\")}`;\n let newStart;\n let newEnd = null;\n\n function chosePeriod(start, end) {\n changeDatepickerValue(\n {\n startDate: start,\n endDate: end,\n },\n input?.current\n );\n hideDatepicker();\n }\n\n if (period.start && period.end) {\n changeDayHover(null);\n changePeriod({ start: null, end: null });\n }\n\n if ((!period.start && !period.end) || (period.start && period.end)) {\n if (!period.start && !period.end) {\n changeDayHover(fullDay);\n }\n newStart = fullDay;\n if (asSingle) {\n newEnd = fullDay;\n chosePeriod(fullDay, fullDay);\n }\n } else {\n if (period.start && !period.end) {\n const startDate = new Date(period.start);\n const clickedDate = new Date(fullDay);\n const condition = clickedDate.getTime() >= startDate.getTime();\n newStart = condition ? period.start : fullDay;\n newEnd = condition ? fullDay : period.start;\n } else {\n const endDate = new Date(period.end);\n const clickedDate = new Date(fullDay);\n const condition = clickedDate.getTime() <= endDate.getTime();\n newStart = condition ? fullDay : period.start;\n newEnd = condition ? period.end : fullDay;\n }\n\n if (!showFooter && newStart && newEnd) {\n chosePeriod(newStart, newEnd);\n }\n }\n\n if (!(newEnd && newStart) || showFooter) {\n changePeriod({ start: newStart, end: newEnd });\n }\n };\n\n const clickPreviousDays = (day) => {\n const newDate = previousMonth(date);\n clickDay(day, newDate.getMonth() + 1, newDate.getFullYear());\n onClickPrevious();\n };\n\n const clickNextDays = (day) => {\n const newDate = nextMonth(date);\n clickDay(day, newDate.getMonth() + 1, newDate.getFullYear());\n onClickNext();\n };\n\n React.useEffect(() => {\n setYear(date.getFullYear());\n }, [date]);\n\n const calendarData = useMemo(() => ({\n date,\n days: {\n previous: previous(),\n current: current(),\n next: next(),\n },\n }), [date, previous, current, next]);\n\n const minYear = useMemo(() => minDate ? new Date(minDate).getFullYear() : null, [minDate]);\n const maxYear = useMemo(() => maxDate ? new Date(maxDate).getFullYear() : null, [maxDate]);\n\n return (\n <div className={\"kz-calendar\" + (suffix ? ` kz-calendar--${suffix}` : \"\")}>\n <div className={\"kz-calendar-header\" + (suffix ? ` kz-calendar-header--${suffix}` : \"\")}>\n {!showMonths && !showYears && (\n <div className={\"kz-calendar-header-nav\" + (suffix ? ` kz-calendar-header-nav--${suffix}` : \"\")}>\n <RoundedButton roundedFull onClick={onClickPrevious}>\n <ChevronLeftIcon />\n </RoundedButton>\n </div>\n )}\n\n {showYears && (\n <div className={\"kz-calendar-header-nav\" + (suffix ? ` kz-calendar-header-nav--${suffix}` : \"\")}>\n <RoundedButton roundedFull onClick={() => setYear(year - 12)}>\n <DoubleChevronLeftIcon />\n </RoundedButton>\n </div>\n )}\n\n <div className={\"kz-calendar-header-title\" + (suffix ? ` kz-calendar-header-title--${suffix}` : \"\")}>\n <div className={\"kz-calendar-header-month\" + (suffix ? ` kz-calendar-header-month--${suffix}` : \"\")}>\n <RoundedButton onClick={() => { setShowMonths(!showMonths); hideYears(); }}>\n {date.toLocaleDateString(\"en-US\", { month: \"short\" })}\n </RoundedButton>\n </div>\n <div className={\"kz-calendar-header-year\" + (suffix ? ` kz-calendar-header-year--${suffix}` : \"\")}>\n <RoundedButton onClick={() => { setShowYears(!showYears); hideMonths(); }}>\n {date.getFullYear()}\n </RoundedButton>\n </div>\n </div>\n\n {showYears && (\n <div className={\"kz-calendar-header-nav\" + (suffix ? ` kz-calendar-header-nav--${suffix}` : \"\")}>\n <RoundedButton roundedFull onClick={() => setYear(year + 12)}>\n <DoubleChevronRightIcon />\n </RoundedButton>\n </div>\n )}\n\n {!showMonths && !showYears && (\n <div className={\"kz-calendar-header-nav\" + (suffix ? ` kz-calendar-header-nav--${suffix}` : \"\")}>\n <RoundedButton roundedFull onClick={onClickNext}>\n <ChevronRightIcon />\n </RoundedButton>\n </div>\n )}\n </div>\n\n <div className={\"kz-calendar-body\" + (suffix ? ` kz-calendar-body--${suffix}` : \"\")}>\n {showMonths && <Months currentMonth={date.getMonth() + 1} clickMonth={clickMonth} />}\n {showYears && <Years year={year} minYear={minYear} maxYear={maxYear} currentYear={date.getFullYear()} clickYear={clickYear} />}\n {!showMonths && !showYears && (\n <>\n <Week />\n <Days calendarData={calendarData} onClickPreviousDays={clickPreviousDays} onClickDay={clickDay} onClickNextDays={clickNextDays} />\n </>\n )}\n </div>\n </div>\n );\n};\n\nexport default Calendar;\n","import React, { useCallback, useContext } from \"react\";\nimport { DATE_FORMAT } from \"./constants\";\nimport DatepickerContext from \"./DatepickerContext\";\nimport { PrimaryButton, SecondaryButton } from \"./utils.js\";\nimport { formatDate } from \"./helpers\";\n\nconst Footer = () => {\n const { hideDatepicker, period, changeDatepickerValue, configs, suffix } = useContext(DatepickerContext);\n\n return (\n <div className={\"kz-datepicker-footer\" + (suffix ? ` kz-datepicker-footer--${suffix}` : \"\")}>\n <div className={\"kz-datepicker-footer-buttons\" + (suffix ? ` kz-datepicker-footer-buttons--${suffix}` : \"\")}>\n <SecondaryButton onClick={hideDatepicker}>\n {configs?.footer?.cancel ? configs.footer.cancel : \"Cancel\"}\n </SecondaryButton>\n <PrimaryButton\n onClick={() => {\n if (period.start && period.end) {\n changeDatepickerValue({\n startDate: formatDate(period.start, DATE_FORMAT),\n endDate: formatDate(period.end, DATE_FORMAT),\n });\n hideDatepicker();\n }\n }}\n disabled={!(period.start && period.end)}\n >\n {configs?.footer?.apply ? configs.footer.apply : \"Apply\"}\n </PrimaryButton>\n </div>\n </div>\n );\n};\n\nexport default Footer;\n","import React, { useCallback, useContext, useEffect, useRef } from \"react\";\nimport { DATE_FORMAT } from \"./constants\";\nimport DatepickerContext from \"./DatepickerContext\";\nimport { dateIsValid, parseDate, formatDate } from \"./helpers\";\n\nconst ToggleButton = ({ isEmpty }) => {\n return (\n <svg\n className=\"kz-datepicker-toggle-icon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n strokeWidth={1.5}\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 012.25-2.25h13.5A2.25 2.25 0 0121 7.5v11.25m-18 0A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75m-18 0v-7.5A2.25 2.25 0 015.25 9h13.5A2.25 2.25 0 0121 11.25v7.5m-9-6h.008v.008H12v-.008zM12 15h.008v.008H12V15zm0 2.25h.008v.008H12v-.008zM9.75 15h.008v.008H9.75V15zm0 2.25h.008v.008H9.75v-.008zM7.5 15h.008v.008H7.5V15zm0 2.25h.008v.008H7.5v-.008zm6.75-4.5h.008v.008h-.008v-.008zm0 2.25h.008v.008h-.008V15zm0 2.25h.008v.008h-.008v-.008zm2.25-4.5h.008v.008H16.5v-.008zm0 2.25h.008v.008H16.5V15z\"\n />\n </svg>\n );\n};\n\nconst Input = ({ setContextRef }) => {\n const {\n period,\n dayHover,\n changeDayHover,\n calendarContainer,\n arrowContainer,\n inputText,\n changeInputText,\n hideDatepicker,\n changeDatepickerValue,\n asSingle,\n placeholder,\n separator,\n shortcutText,\n disabled,\n readOnly,\n displayFormat,\n inputId,\n inputName,\n popoverDirection,\n suffix,\n placement\n } = useContext(DatepickerContext);\n\n const buttonRef = useRef(null);\n const inputRef = useRef(null);\n const shortcutTextRef = useRef(null);\n\n const handleInputChange = (e) => {\n const inputValue = e.target.value;\n const dates = [];\n\n if (asSingle) {\n const date = parseDate(inputValue);\n if (dateIsValid(date)) {\n dates.push(formatDate(date, DATE_FORMAT));\n }\n } else {\n const parsed = inputValue.split(separator);\n let startDate = null;\n let endDate = null;\n\n if (parsed.length === 2) {\n startDate = parseDate(parsed[0].trim());\n endDate = parseDate(parsed[1].trim());\n } else {\n const middle = Math.floor(inputValue.length / 2);\n startDate = parseDate(inputValue.slice(0, middle));\n endDate = parseDate(inputValue.slice(middle));\n }\n\n if (dateIsValid(startDate) && dateIsValid(endDate) && startDate.getTime() <= endDate.getTime()) {\n dates.push(formatDate(startDate, DATE_FORMAT));\n dates.push(formatDate(endDate, DATE_FORMAT));\n }\n }\n\n if (dates[0]) {\n changeDatepickerValue({\n startDate: dates[0],\n endDate: dates[1] || dates[0],\n }, e.target);\n const hoverD = dates[1] ? parseDate(dates[1]) : parseDate(dates[0]);\n if (dates[1]) hoverD.setDate(hoverD.getDate() - 1);\n changeDayHover(formatDate(hoverD, DATE_FORMAT));\n }\n\n changeInputText(e.target.value);\n };\n\n const handleInputKeyDown = (e) => {\n if (e.key === \"Enter\") {\n inputRef.current?.blur();\n hideDatepicker();\n }\n };\n\n useEffect(() => {\n if (inputRef && typeof setContextRef === \"function\") {\n setContextRef(inputRef);\n }\n }, [setContextRef, inputRef]);\n\n useEffect(() => {\n const button = buttonRef?.current;\n const shortcut = shortcutTextRef?.current;\n\n function focusInput(e) {\n e.stopPropagation();\n inputRef.current?.focus();\n }\n\n if (button) button.addEventListener(\"click\", focusInput);\n if (shortcut) shortcut.addEventListener(\"click\", focusInput);\n\n return () => {\n if (button) button.removeEventListener(\"click\", focusInput);\n if (shortcut) shortcut.removeEventListener(\"click\", focusInput);\n };\n }, [changeDatepickerValue, changeDayHover, changeInputText, dayHover, inputText, period.end, period.start]);\n\n useEffect(() => {\n const div = calendarContainer?.current;\n const input = inputRef.current;\n const arrow = arrowContainer?.current;\n\n function showCalendarContainer() {\n if (arrow && div && div.style.display === \"none\") {\n div.style.display = \"block\";\n \n const inputRect = input.getBoundingClientRect();\n let activePlacement = placement;\n \n if (placement === \"auto\") {\n const spaceBelow = window.innerHeight - inputRect.bottom;\n const spaceAbove = inputRect.top;\n activePlacement = spaceBelow > 350 || spaceBelow >= spaceAbove ? \"bottom\" : \"top\";\n }\n\n // Reset inline styles\n div.style.top = \"\";\n div.style.bottom = \"\";\n div.style.left = \"\";\n div.style.right = \"\";\n div.style.marginTop = \"\";\n div.style.marginBottom = \"\";\n div.style.marginLeft = \"\";\n div.style.marginRight = \"\";\n\n if (activePlacement === \"top\") {\n div.style.bottom = \"100%\";\n div.style.top = \"auto\";\n div.style.marginBottom = \"0.625rem\";\n } else if (activePlacement === \"bottom\") {\n div.style.top = \"100%\";\n div.style.bottom = \"auto\";\n } else if (activePlacement === \"left\") {\n div.style.right = \"100%\";\n div.style.left = \"auto\";\n div.style.top = \"0\";\n div.style.marginRight = \"0.625rem\";\n } else if (activePlacement === \"right\") {\n div.style.left = \"100%\";\n div.style.right = \"auto\";\n div.style.top = \"0\";\n div.style.marginLeft = \"0.625rem\";\n }\n \n // Timeout to allow DOM layout\n setTimeout(() => {\n div.classList.add(\"kz-datepicker-open\");\n if (suffix) div.classList.add(`kz-datepicker-open--${suffix}`);\n }, 10);\n }\n }\n\n if (div && input) {\n input.addEventListener(\"focus\", showCalendarContainer);\n }\n\n return () => {\n if (input) {\n input.removeEventListener(\"focus\", showCalendarContainer);\n }\n };\n }, [calendarContainer, arrowContainer, popoverDirection, placement]);\n\n return (\n <div className={\"kz-datepicker-input-wrapper\" + (suffix ? ` kz-datepicker-input-wrapper--${suffix}` : \"\")}>\n <input\n ref={inputRef}\n type=\"text\"\n className={\"kz-datepicker-input\" + (suffix ? ` kz-datepicker-input--${suffix}` : \"\")}\n disabled={disabled}\n readOnly={readOnly}\n placeholder={placeholder || `${displayFormat}${asSingle ? \"\" : ` ${separator} ${displayFormat}`}`}\n value={inputText}\n id={inputId}\n name={inputName}\n autoComplete=\"off\"\n role=\"presentation\"\n onChange={handleInputChange}\n onKeyDown={handleInputKeyDown}\n style={{ paddingLeft: shortcutText ? `${shortcutTextRef.current?.clientWidth || 0}px` : undefined }}\n />\n {shortcutText && (\n <span ref={shortcutTextRef} className={\"kz-datepicker-shortcut-text\" + (suffix ? ` kz-datepicker-shortcut-text--${suffix}` : \"\")}>\n {shortcutText}\n </span>\n )}\n <button type=\"button\" ref={buttonRef} disabled={disabled} className={\"kz-datepicker-toggle-button\" + (suffix ? ` kz-datepicker-toggle-button--${suffix}` : \"\")}>\n <ToggleButton isEmpty={!inputText?.length} />\n </button>\n </div>\n );\n};\n\nexport default Input;\n","import { formatDate } from \"../helpers\";\n\nconst _today = new Date();\n\nconst DEFAULT_SHORTCUTS = {\n today: {\n text: \"Today\",\n period: {\n start: formatDate(_today),\n end: formatDate(_today),\n },\n },\n yesterday: {\n text: \"Yesterday\",\n period: {\n start: formatDate(new Date(new Date().setDate(_today.getDate() - 1))),\n end: formatDate(new Date(new Date().setDate(_today.getDate() - 1))),\n },\n },\n past: [\n {\n daysNumber: 7,\n text: \"Last 7 days\",\n period: {\n start: formatDate(new Date(new Date().setDate(_today.getDate() - 7))),\n end: formatDate(_today),\n },\n },\n {\n daysNumber: 30,\n text: \"Last 30 days\",\n period: {\n start: formatDate(new Date(new Date().setDate(_today.getDate() - 30))),\n end: formatDate(_today),\n },\n },\n ],\n currentMonth: {\n text: \"This month\",\n period: {\n start: formatDate(new Date(_today.getFullYear(), _today.getMonth(), 1)),\n end: formatDate(new Date(_today.getFullYear(), _today.getMonth() + 1, 0)),\n },\n },\n pastMonth: {\n text: \"Last month\",\n period: {\n start: formatDate(new Date(_today.getFullYear(), _today.getMonth() - 1, 1)),\n end: formatDate(new Date(_today.getFullYear(), _today.getMonth(), 0)),\n },\n },\n};\n\nexport default DEFAULT_SHORTCUTS;\n","import React, { useCallback, useContext, useMemo } from \"react\";\nimport { DATE_FORMAT } from \"./constants\";\nimport DEFAULT_SHORTCUTS from \"./constants/shortcuts\";\nimport DatepickerContext from \"./DatepickerContext\";\nimport { formatDate, parseDate } from \"./helpers\";\n\nconst ItemTemplate = React.memo(({ children, item }) => {\n const { period, changePeriod, updateFirstDate, dayHover, changeDayHover, hideDatepicker, changeDatepickerValue, suffix } = useContext(DatepickerContext);\n\n const getClassName = () => {\n return \"kz-datepicker-shortcut-item\" + (suffix ? ` kz-datepicker-shortcut-item--${suffix}` : \"\");\n };\n\n const chosePeriod = (periodItem) => {\n if (dayHover) changeDayHover(null);\n if (period.start || period.end) changePeriod({ start: null, end: null });\n \n changePeriod(periodItem);\n changeDatepickerValue({ startDate: periodItem.start, endDate: periodItem.end });\n updateFirstDate(parseDate(periodItem.start));\n hideDatepicker();\n };\n\n return (\n <li\n className={getClassName()}\n onClick={(e) => {\n chosePeriod(item.period);\n if (item.onClick) item.onClick(item.text, e);\n }}\n >\n {children}\n </li>\n );\n});\n\nconst Shortcuts = () => {\n const { configs, suffix } = useContext(DatepickerContext);\n\n const callPastFunction = (data, numberValue) => {\n return typeof data === \"function\" ? data(numberValue) : null;\n };\n\n const shortcutOptions = useMemo(() => {\n if (!configs?.shortcuts) return Object.entries(DEFAULT_SHORTCUTS);\n\n return Object.entries(configs.shortcuts).flatMap(([key, customConfig]) => {\n if (Object.prototype.hasOwnProperty.call(DEFAULT_SHORTCUTS, key)) {\n return [[key, DEFAULT_SHORTCUTS[key]]];\n }\n\n const { text, period, onClick } = customConfig;\n if (!text || !period) return [];\n\n const start = parseDate(period.start);\n const end = parseDate(period.end);\n\n if (start && end && start.getTime() <= end.getTime()) {\n return [\n [\n text,\n {\n text,\n period: {\n start: formatDate(start, DATE_FORMAT),\n end: formatDate(end, DATE_FORMAT),\n },\n onClick: onClick,\n },\n ],\n ];\n }\n return [];\n });\n }, [configs]);\n\n const printItemText = (item) => item?.text ?? null;\n\n if (!shortcutOptions?.length) return null;\n\n return (\n <div className={\"kz-datepicker-shortcuts\" + (suffix ? ` kz-datepicker-shortcuts--${suffix}` : \"\")}>\n <ul className={\"kz-datepicker-shortcuts-list\" + (suffix ? ` kz-datepicker-shortcuts-list--${suffix}` : \"\")}>\n {shortcutOptions.map(([key, item], index) =>\n Array.isArray(item) ? (\n item.map((subItem, subIndex) => (\n <ItemTemplate key={`${index}-${subIndex}`} item={subItem}>\n <>\n {key === \"past\" && configs?.shortcuts && key in configs.shortcuts && subItem.daysNumber\n ? callPastFunction(configs.shortcuts[key], subItem.daysNumber)\n : subItem.text}\n </>\n </ItemTemplate>\n ))\n ) : (\n <ItemTemplate key={index} item={item}>\n <>\n {configs?.shortcuts && key in configs.shortcuts\n ? typeof configs.shortcuts[key] === \"object\"\n ? printItemText(item)\n : configs.shortcuts[key]\n : printItemText(item)}\n </>\n </ItemTemplate>\n )\n )}\n </ul>\n </div>\n );\n};\n\nexport default Shortcuts;\n","import { useEffect } from \"react\";\n\n/**\n * Hook that alerts clicks outside of the passed ref\n *\n * @param {import(\"react\").RefObject} ref\n * @param {(e?: MouseEvent | TouchEvent) => void} handler\n */\nexport default function useOnClickOutside(ref, handler) {\n useEffect(() => {\n const listener = (event) => {\n if (!ref.current || ref.current.contains(event.target)) {\n return;\n }\n handler(event);\n };\n\n document.addEventListener(\"mousedown\", listener);\n document.addEventListener(\"touchstart\", listener);\n\n return () => {\n document.removeEventListener(\"mousedown\", listener);\n document.removeEventListener(\"touchstart\", listener);\n };\n }, [ref, handler]);\n}\n","import React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport Calendar from \"./Calendar\";\nimport Footer from \"./Footer\";\nimport Input from \"./Input\";\nimport Shortcuts from \"./Shortcuts\";\nimport { COLORS, DATE_FORMAT, DEFAULT_COLOR, LANGUAGE } from \"./constants\";\nimport DatepickerContext from \"./DatepickerContext\";\nimport { formatDate, nextMonth, parseDate, previousMonth, dateIsValid } from \"./helpers\";\nimport useOnClickOutside from \"./hooks\";\nimport { Arrow, VerticalDash } from \"./utils.js\";\nimport \"./index.scss\";\n\n/**\n * kz-react-datepicker\n *\n * @param {Object} props\n * @param {import(\"./DatepickerContext\").DateValueType|null} [props.value] - The selected date(s).\n * @param {(value: import(\"./DatepickerContext\").DateValueType, e?: HTMLInputElement | null) => void} props.onChange - onChange callback.\n * @param {boolean} [props.useRange=true] - Whether to show two calendars for start and end dates.\n * @param {boolean} [props.asSingle=false] - If true, only a single date is selected.\n * @param {string} [props.placeholder] - Input placeholder.\n * @param {boolean} [props.disabled=false] - Disables the input.\n * @param {boolean} [props.readOnly=false] - Makes the input read-only.\n * @param {string} [props.displayFormat] - The display format for the input, defaults to YYYY-MM-DD.\n * @param {Date|string|null} [props.minDate=null] - Minimum selectable date.\n * @param {Date|string|null} [props.maxDate=null] - Maximum selectable date.\n * @param {string} [props.primaryColor=\"blue\"] - Theme color.\n * @param {string} [props.separator=\"~\"] - Separator between start and end date in input.\n * @param {string|null} [props.startFrom=null] - Date to open the calendar at.\n * @param {string} [props.i18n] - i18n locale, e.g., 'en'.\n * @param {boolean} [props.showFooter=false] - Show Action/Footer buttons.\n * @param {boolean} [props.showShortcuts=false] - Show quick shortcuts.\n * @param {string|null} [props.shortcutText] - Label for shortcut button input adornment.\n * @param {Object} [props.configs] - Additional configurations.\n * @param {((className: string) => string)|string|null} [props.inputClassName] - Custom input classes.\n * @param {((className: string) => string)|string|null} [props.containerClassName] - Custom wrapper classes.\n * @param {((className: string) => string)|string|null} [props.toggleClassName] - Toggle button classes.\n * @param {(open: boolean) => import(\"react\").ReactNode} [props.toggleIcon] - Custom toggle icon.\n * @param {\"forward\"|\"backward\"|\"middle\"} [props.dateLooking=\"forward\"] - Date looking direction for missing ranges.\n * @param {Array<{start: Date|string, end: Date|string}>|null} [props.disabledDates=null] - Dates to disable.\n * @param {string} [props.inputId] - ID for the input field.\n * @param {string} [props.inputName] - Name for the input field.\n * @param {string} [props.startWeekOn=\"sun\"] - Day the week starts on.\n * @param {Object} [props.classNames] - Custom classes for different sub-components.\n * @param {string} [props.popoverDirection] - Popover direction.\n * @param {string} [props.suffix] - Suffix for classnames.\n * @param {\"auto\"|\"light\"|\"dark\"} [props.theme=\"auto\"] - Color theme of the datepicker, defaults to system preferences (auto).\n * @param {\"bottom\"|\"top\"|\"left\"|\"right\"|\"auto\"} [props.placement=\"bottom\"] - Where the datepicker calendar opens relative to input.\n */\nconst Datepicker = ({\n primaryColor = \"blue\",\n value = null,\n onChange,\n useRange = true,\n showFooter = false,\n showShortcuts = false,\n configs = undefined,\n asSingle = false,\n placeholder = null,\n separator = \"~\",\n startFrom = null,\n i18n = LANGUAGE,\n disabled = false,\n inputClassName = null,\n containerClassName = null,\n toggleClassName = null,\n toggleIcon = undefined,\n shortcutText = null,\n displayFormat = DATE_FORMAT,\n readOnly = false,\n minDate = null,\n maxDate = null,\n dateLooking = \"forward\",\n disabledDates = null,\n inputId,\n inputName,\n startWeekOn = \"sun\",\n classNames = undefined,\n popoverDirection = undefined,\n suffix = \"\",\n theme = \"auto\",\n placement = \"bottom\",\n}) => {\n const containerRef = useRef(null);\n const calendarContainerRef = useRef(null);\n const arrowRef = useRef(null);\n\n const getInitialFirstDate = () => {\n if (value?.startDate && dateIsValid(parseDate(value.startDate))) {\n return parseDate(value.startDate);\n }\n if (startFrom && dateIsValid(parseDate(startFrom))) {\n return parseDate(startFrom);\n }\n return new Date();\n };\n\n const [firstDate, setFirstDate] = useState(getInitialFirstDate());\n const [secondDate, setSecondDate] = useState(nextMonth(getInitialFirstDate()));\n \n const [systemTheme, setSystemTheme] = useState(() =>\n typeof window !== \"undefined\" && window.matchMedia && window.matchMedia(\"(prefers-color-scheme: dark)\").matches ? \"dark\" : \"light\"\n );\n\n useEffect(() => {\n if (theme === \"auto\" && typeof window !== \"undefined\" && window.matchMedia) {\n const mediaQuery = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const handleChange = (e) => setSystemTheme(e.matches ? \"dark\" : \"light\");\n mediaQuery.addEventListener(\"change\", handleChange);\n return () => mediaQuery.removeEventListener(\"change\", handleChange);\n }\n }, [theme]);\n\n const activeTheme = theme === \"auto\" ? systemTheme : theme;\n \n const [period, setPeriod] = useState({\n start: null,\n end: null,\n });\n \n const [dayHover, setDayHover] = useState(null);\n const [inputText, setInputText] = useState(\"\");\n const [inputRef, setInputRef] = useState(React.createRef());\n\n useOnClickOutside(containerRef, () => {\n const container = containerRef.current;\n const div = calendarContainerRef.current;\n const openBaseClass = \"kz-datepicker-open\";\n const openModifierClass = suffix ? `kz-datepicker-open--${suffix}` : \"\";\n if (container && div && (div.classList.contains(openBaseClass) || (openModifierClass && div.classList.contains(openModifierClass)))) {\n onChange({ endDate: null, startDate: null, ...value });\n hideDatepicker();\n }\n });\n\n const hideDatepicker = useCallback(() => {\n const div = calendarContainerRef.current;\n const openBaseClass = \"kz-datepicker-open\";\n const openModifierClass = suffix ? `kz-datepicker-open--${suffix}` : \"\";\n const closeBaseClass = \"kz-datepicker-close\";\n const closeModifierClass = suffix ? `kz-datepicker-close--${suffix}` : \"\";\n\n if (div && (div.classList.contains(openBaseClass) || (openModifierClass && div.classList.contains(openModifierClass)))) {\n div.classList.remove(openBaseClass);\n if (openModifierClass) div.classList.remove(openModifierClass);\n \n div.classList.add(closeBaseClass);\n if (closeModifierClass) div.classList.add(closeModifierClass);\n\n setTimeout(() => {\n div.style.display = \"none\";\n div.classList.remove(closeBaseClass);\n if (closeModifierClass) div.classList.remove(closeModifierClass);\n }, 300);\n }\n }, [suffix]);\n\n const firstGotoDate = useCallback((date) => {\n const newDate = parseDate(formatDate(date));\n const reformatDate = parseDate(formatDate(secondDate));\n if (newDate.getTime() >= reformatDate.getTime()) {\n setSecondDate(nextMonth(date));\n }\n setFirstDate(date);\n }, [secondDate]);\n\n const previousMonthFirst = useCallback(() => setFirstDate(previousMonth(firstDate)), [firstDate]);\n const nextMonthFirst = useCallback(() => firstGotoDate(nextMonth(firstDate)), [firstDate, firstGotoDate]);\n \n const changeFirstMonth = useCallback((month) => {\n firstGotoDate(new Date(firstDate.getFullYear(), month - 1, 1));\n }, [firstDate, firstGotoDate]);\n\n const changeFirstYear = useCallback((year) => {\n firstGotoDate(new Date(year, firstDate.getMonth(), 1));\n }, [firstDate, firstGotoDate]);\n\n const secondGotoDate = useCallback((date) => {\n const newDate = parseDate(formatDate(date, displayFormat));\n const reformatDate = parseDate(formatDate(firstDate, displayFormat));\n if (newDate.getTime() <= reformatDate.getTime()) {\n setFirstDate(previousMonth(date));\n }\n setSecondDate(date);\n }, [firstDate, displayFormat]);\n\n const previousMonthSecond = useCallback(() => secondGotoDate(previousMonth(secondDate)), [secondDate, secondGotoDate]);\n const nextMonthSecond = useCallback(() => setSecondDate(nextMonth(secondDate)), [secondDate]);\n\n const changeSecondMonth = useCallback((month) => {\n secondGotoDate(new Date(secondDate.getFullYear(), month - 1, 1));\n }, [secondDate, secondGotoDate]);\n\n const changeSecondYear = useCallback((year) => {\n secondGotoDate(new Date(year, secondDate.getMonth(), 1));\n }, [secondDate, secondGotoDate]);\n\n useEffect(() => {\n if (value && value.startDate && value.endDate) {\n const startDate = parseDate(value.startDate);\n const endDate = parseDate(value.endDate);\n const validDate = dateIsValid(startDate) && dateIsValid(endDate);\n const condition = validDate && startDate.getTime() <= endDate.getTime();\n \n if (condition) {\n setPeriod({\n start: formatDate(startDate),\n end: formatDate(endDate),\n });\n setInputText(\n `${formatDate(startDate, displayFormat)}${\n asSingle ? \"\" : ` ${separator} ${formatDate(endDate, displayFormat)}`\n }`\n );\n }\n }\n\n if (value && value.startDate === null && value.endDate === null) {\n setPeriod({ start: null, end: null });\n setInputText(\"\");\n }\n }, [asSingle, value, displayFormat, separator]);\n\n useEffect(() => {\n if (startFrom && dateIsValid(parseDate(startFrom))) {\n const startDate = value?.startDate;\n const endDate = value?.endDate;\n \n if (startDate && dateIsValid(parseDate(startDate))) {\n setFirstDate(parseDate(startDate));\n if (!asSingle) {\n if (endDate && dateIsValid(parseDate(endDate))) {\n const parsedEnd = parseDate(endDate);\n const startMonthEnd = new Date(parseDate(startDate).getFullYear(), parseDate(startDate).getMonth() + 1, 0, 23, 59, 59);\n if (parsedEnd.getTime() > startMonthEnd.getTime()) {\n setSecondDate(parsedEnd);\n } else {\n setSecondDate(nextMonth(parseDate(startDate)));\n }\n } else {\n setSecondDate(nextMonth(parseDate(startDate)));\n }\n }\n } else {\n setFirstDate(parseDate(startFrom));\n setSecondDate(nextMonth(parseDate(startFrom)));\n }\n }\n }, [asSingle, startFrom, value]);\n\n const safePrimaryColor = useMemo(() => {\n return COLORS.includes(primaryColor) ? primaryColor : DEFAULT_COLOR;\n }, [primaryColor]);\n\n const contextValues = useMemo(() => {\n return {\n asSingle,\n primaryColor: safePrimaryColor,\n configs,\n calendarContainer: calendarContainerRef,\n arrowContainer: arrowRef,\n hideDatepicker,\n period,\n changePeriod: setPeriod,\n dayHover,\n changeDayHover: setDayHover,\n inputText,\n changeInputText: setInputText,\n updateFirstDate: firstGotoDate,\n changeDatepickerValue: onChange,\n showFooter,\n placeholder,\n separator,\n shortcutText,\n i18n,\n value,\n disabled,\n inputClassName,\n containerClassName,\n toggleClassName,\n toggleIcon,\n readOnly,\n displayFormat,\n minDate,\n maxDate,\n dateLooking,\n disabledDates,\n inputId,\n inputName,\n startWeekOn,\n classNames,\n onChange,\n input: inputRef,\n popoverDirection,\n suffix,\n theme: activeTheme,\n placement,\n };\n }, [\n asSingle, safePrimaryColor, configs, hideDatepicker, period, dayHover,\n inputText, onChange, showFooter, placeholder, separator, shortcutText, i18n, value,\n disabled, inputClassName, containerClassName, toggleClassName, toggleIcon, readOnly,\n displayFormat, minDate, maxDate, dateLooking, disabledDates, inputId, inputName, startWeekOn,\n classNames, inputRef, popoverDirection, firstGotoDate, suffix, activeTheme, placement\n ]);\n\n const containerClassNameOverload = useMemo(() => {\n let defaultClassName = \"kz-datepicker-container\" + (suffix ? ` kz-datepicker-container--${suffix}` : \"\");\n if (activeTheme === \"dark\") {\n defaultClassName += \" dark\";\n }\n return typeof containerClassName === \"function\"\n ? containerClassName(defaultClassName)\n : typeof containerClassName === \"string\" && containerClassName !== \"\"\n ? containerClassName + (activeTheme === \"dark\" && !containerClassName.includes(\"dark\") ? \" dark\" : \"\")\n : defaultClassName;\n }, [containerClassName, suffix, activeTheme]);\n\n return (\n <DatepickerContext.Provider value={contextValues}>\n <div className={containerClassNameOverload} ref={containerRef}>\n <Input setContextRef={setInputRef} />\n\n <div\n className={\"kz-datepicker-popup\" + (suffix ? ` kz-datepicker-popup--${suffix}` : \"\")}\n ref={calendarContainerRef}\n style={{ display: \"none\" }}\n >\n <Arrow ref={arrowRef} />\n\n <div className={\"kz-datepicker-popup-inner\" + (suffix ? ` kz-datepicker-popup-inner--${suffix}` : \"\")}>\n <div className={\"kz-datepicker-main-content\" + (suffix ? ` kz-datepicker-main-content--${suffix}` : \"\")}>\n {showShortcuts && <Shortcuts />}\n\n <div className={`kz-datepicker-calendars${suffix ? ` kz-datepicker-calendars--${suffix}` : \"\"} ${showShortcuts ? \"kz-has-shortcuts\" + (suffix ? ` kz-has-shortcuts--${suffix}` : \"\") : \"\"}`}>\n <Calendar\n date={firstDate}\n onClickPrevious={previousMonthFirst}\n onClickNext={nextMonthFirst}\n changeMonth={changeFirstMonth}\n changeYear={changeFirstYear}\n minDate={minDate}\n maxDate={maxDate}\n />\n\n {useRange && (\n <>\n <div className={\"kz-datepicker-divider-wrapper\" + (suffix ? ` kz-datepicker-divider-wrapper--${suffix}` : \"\")}>\n <VerticalDash />\n </div>\n\n <Calendar\n date={secondDate}\n onClickPrevious={previousMonthSecond}\n onClickNext={nextMonthSecond}\n changeMonth={changeSecondMonth}\n changeYear={changeSecondYear}\n minDate={minDate}\n maxDate={maxDate}\n />\n </>\n )}\n </div>\n </div>\n\n {showFooter && <Footer />}\n </div>\n </div>\n </div>\n </DatepickerContext.Provider>\n );\n};\n\nexport default Datepicker;\n"],"names":["COLORS","DEFAULT_COLOR","LANGUAGE","DATE_FORMAT","START_WEEK","DAYS","MONTHS","DatepickerContext","createContext","input","undefined","primaryColor","configs","calendarContainer","arrowContainer","period","start","end","changePeriod","hideDatepicker","dayHover","changeDayHover","day","inputText","changeInputText","text","updateFirstDate","date","changeDatepickerValue","value","e","showFooter","i18n","disabled","inputClassName","containerClassName","toggleClassName","readOnly","displayFormat","minDate","maxDate","dateLooking","disabledDates","inputId","inputName","startWeekOn","toggleIcon","classNames","popoverDirection","separator","shortcutText","suffix","theme","placement","generateArrayNumber","arguments","length","array","i","push","shortString","limit","slice","ucFirst","concat","toUpperCase","parseDate","Date","test","_date$split$map","split","map","Number","_date$split$map2","_slicedToArray","y","m","d","formatDate","format","dateIsValid","YYYY","getFullYear","MM","String","getMonth","padStart","DD","getDate","ddd","toLocaleDateString","weekday","result","_i","_Object$entries","Object","entries","_Object$entries$_i","key","replace","getFirstDayInMonth","firstDay","basic","object","getDaysInMonth","days","nextMonth","previousMonth","getFirstElementsInArray","size","getLastElementsInArray","Array","isArray","reverse","getNumberOfDay","dayString","number","startDateModifier","forEach","item","index","includes","getLastDaysInMonth","getFirstDaysInMonth","isNaN","getTime","isSameDate","date1","date2","d1","d2","isBeforeDate","t1","t2","isAfterDate","isBetweenDates","target","t","Math","min","max","ChevronLeftIcon","_ref3","_ref3$className","className","React","createElement","xmlns","fill","viewBox","strokeWidth","stroke","strokeLinecap","strokeLinejoin","DoubleChevronLeftIcon","_ref4","_ref4$className","ChevronRightIcon","_ref5","_ref5$className","DoubleChevronRightIcon","_ref6","_ref6$className","Arrow","forwardRef","props","ref","_useContext","useContext","baseClass","SecondaryButton","_ref7","children","onClick","_ref7$disabled","_useContext2","type","PrimaryButton","_ref8","_ref8$disabled","_useContext3","RoundedButton","_ref9","_ref9$roundedFull","roundedFull","_ref9$active","active","_useContext4","cn","join","VerticalDash","_useContext5","Days","_ref","calendarData","onClickPreviousDays","onClickDay","onClickNextDays","isDateDisabledInner","currentDayDate","startDate","endDate","isDateDisabled","getButtonClass","today","isToday","hover","isStart","isEnd","isStartBeforeEnd","isStartBeforeHover","isEndAfterStart","isEndAfterHover","handleClick","processHover","dStr","onMouseLeave","idx","onMouseOver","Months","currentMonth","clickMonth","getMonthName","monthNumber","toLocaleString","month","padding","Week","useMemo","getDayName","dayIndex","Years","year","currentYear","minYear","maxYear","clickYear","Calendar","onClickPrevious","onClickNext","changeMonth","changeYear","asSingle","_useState","useState","_useState2","showMonths","setShowMonths","_useState3","_useState4","showYears","setShowYears","_useState5","_useState6","setYear","previous","current","next","hideMonths","hideYears","setTimeout","clickDay","fullDay","newStart","newEnd","chosePeriod","clickedDate","condition","clickPreviousDays","newDate","clickNextDays","useEffect","Fragment","Footer","_configs$footer","_configs$footer2","footer","cancel","apply","ToggleButton","isEmpty","Input","_ref2","_shortcutTextRef$curr","setContextRef","placeholder","buttonRef","useRef","inputRef","shortcutTextRef","handleInputChange","inputValue","dates","parsed","trim","middle","floor","hoverD","setDate","handleInputKeyDown","_inputRef$current","blur","button","shortcut","focusInput","_inputRef$current2","stopPropagation","focus","addEventListener","removeEventListener","div","arrow","showCalendarContainer","style","display","inputRect","getBoundingClientRect","activePlacement","spaceBelow","window","innerHeight","bottom","spaceAbove","top","left","right","marginTop","marginBottom","marginLeft","marginRight","classList","add","id","name","autoComplete","role","onChange","onKeyDown","paddingLeft","clientWidth","_today","DEFAULT_SHORTCUTS","yesterday","past","daysNumber","pastMonth","ItemTemplate","memo","getClassName","periodItem","Shortcuts","callPastFunction","data","numberValue","shortcutOptions","shortcuts","flatMap","customConfig","prototype","hasOwnProperty","call","printItemText","_item$text","subItem","subIndex","_typeof","useOnClickOutside","handler","listener","event","contains","document","Datepicker","_ref$primaryColor","_ref$value","_ref$useRange","useRange","_ref$showFooter","_ref$showShortcuts","showShortcuts","_ref$configs","_ref$asSingle","_ref$placeholder","_ref$separator","_ref$startFrom","startFrom","_ref$i18n","_ref$disabled","_ref$inputClassName","_ref$containerClassNa","_ref$toggleClassName","_ref$toggleIcon","_ref$shortcutText","_ref$displayFormat","_ref$readOnly","_ref$minDate","_ref$maxDate","_ref$dateLooking","_ref$disabledDates","_ref$startWeekOn","_ref$classNames","_ref$popoverDirection","_ref$suffix","_ref$theme","_ref$placement","containerRef","calendarContainerRef","arrowRef","getInitialFirstDate","firstDate","setFirstDate","secondDate","setSecondDate","matchMedia","matches","systemTheme","setSystemTheme","mediaQuery","handleChange","activeTheme","_useState7","_useState8","setPeriod","_useState9","_useState0","setDayHover","_useState1","_useState10","setInputText","_useState11","createRef","_useState12","setInputRef","container","openBaseClass","openModifierClass","_objectSpread","useCallback","closeBaseClass","closeModifierClass","remove","firstGotoDate","reformatDate","previousMonthFirst","nextMonthFirst","changeFirstMonth","changeFirstYear","secondGotoDate","previousMonthSecond","nextMonthSecond","changeSecondMonth","changeSecondYear","validDate","parsedEnd","startMonthEnd","safePrimaryColor","contextValues","containerClassNameOverload","defaultClassName","Provider"],"mappings":"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"}
package/dist/index.css ADDED
@@ -0,0 +1,2 @@
1
+ :root{--kz-datepicker-primary:#3b82f6;--kz-datepicker-bg:#fff;--kz-datepicker-text:#374151;--kz-datepicker-border:#d1d5db;--kz-datepicker-border-radius:4px;--kz-datepicker-font-family:inherit;--kz-datepicker-hover-bg:#f3f4f6}.kz-datepicker-container{color:var(--kz-datepicker-text);font-family:inherit;position:relative;width:100%}.kz-datepicker-container *{box-sizing:border-box}.kz-datepicker-input,.kz-datepicker-input-wrapper{position:relative;width:100%}.kz-datepicker-input{background-color:var(--kz-datepicker-bg);border:1px solid var(--kz-datepicker-border);border-radius:4px;color:var(--kz-datepicker-text);font-size:.875rem;font-weight:300;height:40px;letter-spacing:.025em;min-width:260px;padding:.625rem 3.5rem .625rem 1rem;transition:all .3s ease}.kz-datepicker-input::placeholder{color:#9ca3af}.kz-datepicker-input:focus{border-color:var(--kz-datepicker-primary);box-shadow:0 0 0 2px rgba(var(--kz-datepicker-primary),.2);outline:none}.kz-datepicker-input:disabled{cursor:not-allowed;opacity:.4}.kz-datepicker-shortcut-text{color:#4b5563;cursor:text;font-weight:500;left:0;pointer-events:none}.kz-datepicker-shortcut-text,.kz-datepicker-toggle-button{align-items:center;display:flex;height:100%;padding:0 .75rem;position:absolute;top:0}.kz-datepicker-toggle-button{background:transparent;border:none;color:#9ca3af;cursor:pointer;right:0}.kz-datepicker-toggle-button:disabled{cursor:not-allowed;opacity:.4}.kz-datepicker-toggle-button:focus{outline:none}.kz-datepicker-toggle-button svg{height:1.5rem;width:1.5rem}.kz-datepicker-popup{font-size:.875rem;margin-top:1px;opacity:0;position:absolute;transform:translateY(1rem);transition:all .3s ease-out;z-index:10}.kz-datepicker-popup.kz-datepicker-open{opacity:1;transform:translateY(0)}.kz-datepicker-popup.kz-datepicker-close{opacity:0;transform:translateY(1rem)}.kz-datepicker-popup.bottom-full{bottom:100%;margin-bottom:.625rem;margin-top:0;transform:translateY(-1rem)}.kz-datepicker-popup.bottom-full.kz-datepicker-open{transform:translateY(0)}.kz-datepicker-popup-inner{background-color:var(--kz-datepicker-bg);border:1px solid var(--kz-datepicker-border);border-radius:.5rem;box-shadow:0 1px 2px 0 rgba(0,0,0,.05);margin-top:.625rem;padding:.125rem .25rem}.kz-datepicker-main-content{display:flex;flex-direction:column;padding:.5rem 0}@media (min-width:1024px){.kz-datepicker-main-content{flex-direction:row}}.kz-datepicker-calendars{align-items:stretch;display:flex;flex-direction:column;gap:1rem;padding-right:.5rem}@media (min-width:768px){.kz-datepicker-calendars{flex-direction:row;gap:0;padding-left:.25rem}.kz-datepicker-calendars.kz-has-shortcuts{padding-left:.5rem}.kz-datepicker-calendars>*+*{margin-left:.375rem}}@media (min-width:1024px){.kz-datepicker-calendars{padding-right:.25rem}}.kz-datepicker-divider-wrapper{align-items:center;display:flex}.kz-calendar{width:100%}@media (min-width:768px){.kz-calendar{min-width:296px;width:296px}}.kz-calendar-header{align-items:center;border:1px solid var(--kz-datepicker-border);border-radius:.375rem;display:flex;gap:.375rem;padding:.375rem .5rem}.kz-calendar-header-nav{flex:none}.kz-calendar-header-title{align-items:center;display:flex;flex:1;gap:.375rem}.kz-calendar-header-month,.kz-calendar-header-year{width:50%}.kz-calendar-body{margin-top:.125rem;min-height:285px;padding:.125rem}@media (min-width:640px){.kz-calendar-body{padding:0 .5rem}}.kz-calendar-week-grid{border-bottom:1px solid var(--kz-datepicker-border);display:grid;grid-template-columns:repeat(7,minmax(0,1fr));padding:.5rem 0}.kz-calendar-week-day{color:#6b7280;letter-spacing:.025em;text-align:center}.kz-calendar-days-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));margin:.25rem 0;row-gap:.125rem}.kz-calendar-day{align-items:center;background:transparent;border:none;color:var(--kz-datepicker-text);cursor:pointer;display:flex;font-size:.875rem;height:3rem;justify-content:center;transition:all .3s ease;width:3rem}@media (min-width:1024px){.kz-calendar-day{height:2.5rem;width:2.5rem}}.kz-calendar-day:hover:not(:disabled){background-color:var(--kz-datepicker-primary);border-radius:.375rem;color:var(--kz-datepicker-bg)}.kz-calendar-day:focus{outline:none}.kz-calendar-day-disabled{color:#9ca3af;cursor:not-allowed;text-decoration:line-through}.kz-calendar-day-disabled:hover{background:transparent}.kz-calendar-day-today{color:var(--kz-datepicker-primary)}.kz-calendar-day-active{background-color:var(--kz-datepicker-primary);color:var(--kz-datepicker-bg);font-weight:500}.kz-calendar-day-active:hover:not(:disabled){background-color:#2563eb}.kz-calendar-day-active[class*="--"]{background-color:var(--kz-datepicker-primary);color:var(--kz-datepicker-bg)}.kz-calendar-day-rounded{border-radius:9999px}.kz-calendar-day-hover-left{border-bottom-left-radius:9999px;border-top-left-radius:9999px;color:var(--kz-datepicker-bg)}.kz-calendar-day-hover-right{border-bottom-right-radius:9999px;border-top-right-radius:9999px;color:var(--kz-datepicker-bg)}.kz-calendar-day-in-range,.kz-calendar-day-in-range[class*="--"]{background-color:#dbeafe;border-radius:0}.kz-calendar-day-hover-end{background-color:var(--kz-datepicker-primary);color:var(--kz-datepicker-bg);font-weight:500}.kz-calendar-months-grid,.kz-calendar-years-grid{display:grid;gap:.5rem;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:.5rem;width:100%}.kz-datepicker-shortcuts{border-bottom:1px solid var(--kz-datepicker-border);margin-bottom:.75rem;padding-right:.25rem}@media (min-width:1024px){.kz-datepicker-shortcuts{border-bottom:none;border-right:1px solid var(--kz-datepicker-border);margin-bottom:0}}.kz-datepicker-shortcuts-list{display:flex;flex-wrap:wrap;letter-spacing:.025em;list-style:none;margin:0;padding-bottom:.25rem;padding-left:0;width:100%}@media (min-width:1024px){.kz-datepicker-shortcuts-list{flex-direction:column;padding-bottom:0}}.kz-datepicker-shortcut-item{border-radius:.25rem;color:#4b5563;cursor:pointer;padding:.5rem;transition:all .3s ease;white-space:nowrap;width:50%}@media (min-width:768px){.kz-datepicker-shortcut-item{width:33.333%}}@media (min-width:1024px){.kz-datepicker-shortcut-item{width:auto}}.kz-datepicker-shortcut-item:hover{background-color:#e5e7eb;color:#1d4ed8}.kz-datepicker-footer{align-items:center;border-top:1px solid var(--kz-datepicker-border);display:flex;justify-content:flex-end;padding-bottom:.625rem;padding-top:.75rem}.kz-datepicker-footer-buttons{align-items:center;display:flex;gap:.75rem;justify-content:center;width:100%}@media (min-width:768px){.kz-datepicker-footer-buttons{width:auto}}.kz-rounded-btn{align-items:center;background:transparent;border:none;border-radius:.375rem;color:var(--kz-datepicker-text);cursor:pointer;display:flex;justify-content:center;letter-spacing:.025em;padding:.55rem .75rem;text-transform:uppercase;transition:all .3s ease;width:100%}.kz-rounded-btn:hover:not(:disabled){background-color:#e5e7eb}.kz-rounded-btn:focus{background-color:rgba(219,234,254,.5);box-shadow:0 0 0 1px rgba(var(--kz-datepicker-primary),.5);outline:none}.kz-rounded-btn.is-active{background-color:#f9fafb;font-weight:600}.kz-rounded-btn.is-rounded-full{border-radius:9999px;padding:.45rem;width:auto}.kz-rounded-btn:disabled{cursor:not-allowed;opacity:.5;text-decoration:line-through}.kz-primary-btn{background-color:var(--kz-datepicker-primary);border:1px solid var(--kz-datepicker-primary);border-radius:.375rem;color:var(--kz-datepicker-bg);cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:all .3s ease;width:100%}.kz-primary-btn:hover:not(:disabled){background-color:#2563eb}.kz-primary-btn:focus{box-shadow:0 0 0 2px rgba(var(--kz-datepicker-primary),1),0 0 0 4px rgba(var(--kz-datepicker-primary),.2);outline:none}.kz-primary-btn:disabled{cursor:not-allowed;opacity:.5}.kz-secondary-btn{background-color:var(--kz-datepicker-bg);border:1px solid var(--kz-datepicker-border);border-radius:.375rem;color:var(--kz-datepicker-text);cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:all .3s ease;width:100%}.kz-secondary-btn:hover:not(:disabled){background-color:#f9fafb}.kz-secondary-btn:focus{box-shadow:0 0 0 2px var(--kz-datepicker-bg),0 0 0 4px rgba(var(--kz-datepicker-primary),.2);outline:none}.kz-secondary-btn:disabled{cursor:not-allowed;opacity:.5}.kz-vertical-dash{background-color:var(--kz-datepicker-primary);border-radius:9999px;display:none;height:1.75rem;width:.25rem}@media (min-width:768px){.kz-vertical-dash{display:block}}.kz-arrow-indicator{background-color:var(--kz-datepicker-bg);border-left:1px solid var(--kz-datepicker-border);border-top:1px solid var(--kz-datepicker-border);height:1rem;margin-left:1.2rem;margin-top:.125rem;position:absolute;transform:rotate(45deg);width:1rem;z-index:20}.kz-arrow-indicator.border-r{border-left:none;border-right:1px solid var(--kz-datepicker-border)}.kz-arrow-indicator.border-b{border-bottom:1px solid var(--kz-datepicker-border);border-top:none}.kz-arrow-indicator.right-0{left:auto;right:0}.kz-arrow-indicator.mr-3_5{margin-left:0;margin-right:.875rem}.kz-arrow-indicator.-bottom-2{bottom:-.5rem;margin-top:0}.dark .kz-datepicker-input{color:hsla(0,0%,100%,.8)}.dark .kz-datepicker-input,.dark .kz-datepicker-popup-inner{background-color:#1e293b;border-color:#475569}.dark .kz-calendar-day{color:hsla(0,0%,100%,.8)}.dark .kz-calendar-day:hover:not(:disabled){background-color:#334155;color:#fff}.dark .kz-calendar-day-active{color:var(--kz-datepicker-bg)}.dark .kz-calendar-day-in-range{background-color:#334155;color:hsla(0,0%,100%,.8)}.dark .kz-calendar-day-in-range[class*="--"]{background-color:#334155}.dark .kz-calendar-header,.dark .kz-calendar-week-grid,.dark .kz-datepicker-footer{border-color:#475569}.dark .kz-arrow-indicator{background-color:#1e293b;border-color:#475569}.dark .kz-datepicker-shortcut-item{color:hsla(0,0%,100%,.8)}.dark .kz-datepicker-shortcut-item:hover{background-color:#334155;color:#fff}.dark .kz-rounded-btn{color:hsla(0,0%,100%,.8)}.dark .kz-rounded-btn:hover:not(:disabled){background-color:#334155;color:#fff}.dark .kz-calendar-week-day{color:hsla(0,0%,100%,.6)}
2
+ /*# sourceMappingURL=index.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["index.scss"],"names":[],"mappings":"AAAA,MACE,+BAAgC,CAChC,uBAA2B,CAC3B,4BAA6B,CAC7B,8BAA+B,CAC/B,iCAAkC,CAClC,mCAAoC,CACpC,gCACF,CAEA,yBAGE,+BAAgC,CAChC,mBAAoB,CAHpB,iBAAkB,CAClB,UAGF,CACA,2BACE,qBACF,CAOA,kDAJE,iBAAkB,CAClB,UAiBF,CAdA,qBAOE,wCAAyC,CAGzC,4CAA6C,CAG7C,iBAAkB,CALlB,+BAAgC,CAFhC,iBAAmB,CADnB,eAAgB,CAOhB,WAAY,CARZ,qBAAuB,CAKvB,eAAgB,CANhB,mCAAsC,CADtC,uBAYF,CACA,kCACE,aACF,CACA,2BAEE,yCAA0C,CAC1C,0DAA6D,CAF7D,YAGF,CACA,8BAEE,kBAAmB,CADnB,UAEF,CAEA,6BAME,aAAc,CAId,WAAY,CADZ,eAAgB,CAPhB,MAAO,CASP,mBACF,CAEA,0DANE,kBAAmB,CADnB,YAAa,CAHb,WAAY,CACZ,gBAAkB,CAJlB,iBAAkB,CAElB,KAuBF,CAZA,6BAOE,sBAAuB,CACvB,WAAY,CAFZ,aAAc,CAGd,cAAe,CAPf,OAUF,CACA,sCAEE,kBAAmB,CADnB,UAEF,CACA,mCACE,YACF,CACA,iCAEE,aAAc,CADd,YAEF,CAEA,qBAIE,iBAAmB,CADnB,cAAe,CAIf,SAAU,CANV,iBAAkB,CAKlB,0BAA2B,CAD3B,2BAA6B,CAH7B,UAMF,CACA,wCAEE,SAAU,CADV,uBAEF,CACA,yCAEE,SAAU,CADV,0BAEF,CACA,iCACE,WAAY,CACZ,qBAAuB,CACvB,YAAa,CACb,2BACF,CACA,oDACE,uBACF,CAEA,2BAKE,wCAAyC,CAFzC,4CAA6C,CAG7C,mBAAqB,CAJrB,sCAA2C,CAD3C,kBAAoB,CAGpB,sBAGF,CAEA,4BACE,YAAa,CACb,qBAAsB,CACtB,eACF,CACA,0BACE,4BACE,kBACF,CACF,CAEA,yBAGE,mBAAoB,CAFpB,YAAa,CACb,qBAAsB,CAEtB,QAAS,CACT,mBACF,CACA,yBACE,yBACE,kBAAmB,CACnB,KAAM,CACN,mBACF,CACA,0CACE,kBACF,CACA,6BACE,mBACF,CACF,CACA,0BACE,yBACE,oBACF,CACF,CAEA,+BAEE,kBAAmB,CADnB,YAEF,CAEA,aACE,UACF,CACA,yBACE,aAEE,eAAgB,CADhB,WAEF,CACF,CAEA,oBAEE,kBAAmB,CAEnB,4CAA6C,CAC7C,qBAAuB,CAJvB,YAAa,CAEb,WAAa,CAGb,qBACF,CAEA,wBACE,SACF,CAEA,0BAGE,kBAAmB,CAFnB,YAAa,CACb,MAAO,CAEP,WACF,CAEA,mDAEE,SACF,CAEA,kBAEE,kBAAoB,CACpB,gBAAiB,CAFjB,eAGF,CACA,yBACE,kBACE,eACF,CACF,CAEA,uBAGE,mDAAoD,CAFpD,YAAa,CACb,6CAAgD,CAEhD,eACF,CAEA,sBAEE,aAAc,CADd,qBAAuB,CAEvB,iBACF,CAEA,uBACE,YAAa,CACb,6CAAgD,CAEhD,eAAiB,CADjB,eAEF,CAEA,iBAEE,kBAAmB,CAInB,sBAAuB,CACvB,WAAY,CAIZ,+BAAgC,CAHhC,cAAe,CAPf,YAAa,CASb,iBAAmB,CALnB,WAAY,CAFZ,sBAAuB,CAMvB,uBAAyB,CALzB,UAQF,CACA,0BACE,iBAEE,aAAc,CADd,YAEF,CACF,CACA,sCACE,6CAA8C,CAE9C,qBAAuB,CADvB,6BAEF,CACA,uBACE,YACF,CAEA,0BACE,aAAc,CAEd,kBAAmB,CADnB,4BAEF,CACA,gCACE,sBACF,CAEA,uBACE,kCACF,CAEA,wBACE,6CAA8C,CAC9C,6BAA8B,CAC9B,eACF,CACA,6CACE,wBACF,CACA,qCACE,6CAA8C,CAC9C,6BACF,CAEA,yBACE,oBACF,CAEA,4BAEE,gCAAiC,CADjC,6BAA8B,CAE9B,6BACF,CAEA,6BAEE,iCAAkC,CADlC,8BAA+B,CAE/B,6BACF,CAMA,iEACE,wBAAyB,CACzB,eACF,CAEA,2BACE,6CAA8C,CAC9C,6BAA8B,CAC9B,eACF,CAEA,iDAGE,YAAa,CAEb,SAAW,CADX,6CAAgD,CAEhD,gBAAkB,CAJlB,UAKF,CAEA,yBAEE,mDAAoD,CADpD,oBAAsB,CAEtB,oBACF,CACA,0BACE,yBAEE,kBAAmB,CACnB,kDAAmD,CAFnD,eAGF,CACF,CAEA,8BAGE,YAAa,CACb,cAAe,CAFf,qBAAuB,CAIvB,eAAgB,CAChB,QAAS,CAFT,qBAAuB,CAGvB,cAAe,CAPf,UAQF,CACA,0BACE,8BACE,qBAAsB,CACtB,gBACF,CACF,CAEA,6BAKE,oBAAsB,CAEtB,aAAc,CADd,cAAe,CAFf,aAAe,CADf,uBAAyB,CAFzB,kBAAmB,CACnB,SAMF,CACA,yBACE,6BACE,aACF,CACF,CACA,0BACE,6BACE,UACF,CACF,CACA,mCACE,wBAAyB,CACzB,aACF,CAEA,sBAEE,kBAAmB,CAInB,gDAAiD,CALjD,YAAa,CAEb,wBAAyB,CACzB,sBAAwB,CACxB,kBAEF,CAEA,8BAGE,kBAAmB,CADnB,YAAa,CAGb,UAAY,CADZ,sBAAuB,CAHvB,UAKF,CACA,yBACE,8BACE,UACF,CACF,CAEA,gBAaE,kBAAmB,CANnB,sBAAuB,CACvB,WAAY,CACZ,qBAAuB,CANvB,+BAAgC,CAOhC,cAAe,CACf,YAAa,CACb,sBAAuB,CAVvB,qBAAuB,CAGvB,qBAAwB,CACxB,wBAAyB,CAFzB,uBAAyB,CAHzB,UAaF,CACA,qCACE,wBACF,CACA,sBAGE,qCAA0C,CAD1C,0DAA6D,CAD7D,YAGF,CACA,0BAEE,wBAAyB,CADzB,eAEF,CACA,gCAEE,oBAAqB,CACrB,cAAgB,CAFhB,UAGF,CACA,yBAGE,kBAAmB,CADnB,UAAY,CADZ,4BAGF,CAEA,gBAGE,6CAA8C,CAC9C,6CAA8C,CAK9C,qBAAuB,CAJvB,6BAA8B,CAK9B,cAAe,CAFf,iBAAmB,CAFnB,eAAgB,CAChB,kBAAoB,CALpB,uBAAyB,CADzB,UAUF,CACA,qCACE,wBACF,CACA,sBAEE,yGAA8G,CAD9G,YAEF,CACA,yBACE,kBAAmB,CACnB,UACF,CAEA,kBAGE,wCAAyC,CAGzC,4CAA6C,CAG7C,qBAAuB,CALvB,+BAAgC,CAMhC,cAAe,CAFf,iBAAmB,CAHnB,eAAgB,CAEhB,kBAAoB,CALpB,uBAAyB,CADzB,UAUF,CACA,uCACE,wBACF,CACA,wBAEE,4FAAgG,CADhG,YAEF,CACA,2BACE,kBAAmB,CACnB,UACF,CAEA,kBACE,6CAA8C,CAG9C,oBAAqB,CACrB,YAAa,CAHb,cAAe,CACf,YAGF,CACA,yBACE,kBACE,aACF,CACF,CAEA,oBAUE,wCAAyC,CAFzC,iDAAkD,CAClD,gDAAiD,CANjD,WAAY,CAIZ,kBAAmB,CADnB,kBAAoB,CALpB,iBAAkB,CAIlB,uBAAwB,CADxB,UAAW,CAFX,UASF,CACA,6BAEE,gBAAiB,CADjB,kDAEF,CACA,6BACE,mDAAoD,CACpD,eACF,CACA,4BAEE,SAAU,CADV,OAEF,CACA,2BAEE,aAAc,CADd,oBAEF,CACA,8BACE,aAAe,CACf,YACF,CAEA,2BAGE,wBACF,CACA,4DAJE,wBAAyB,CACzB,oBAMF,CACA,uBACE,wBACF,CACA,4CACE,wBAAyB,CACzB,UACF,CACA,8BACE,6BACF,CACA,gCACE,wBAAyB,CACzB,wBACF,CACA,6CACE,wBACF,CAOA,mFACE,oBACF,CACA,0BACE,wBAAyB,CACzB,oBACF,CACA,mCACE,wBACF,CACA,yCACE,wBAAyB,CACzB,UACF,CACA,sBACE,wBACF,CACA,2CACE,wBAAyB,CACzB,UACF,CACA,4BACE,wBACF","file":"index.css","sourcesContent":[":root {\n --kz-datepicker-primary: #3b82f6;\n --kz-datepicker-bg: #ffffff;\n --kz-datepicker-text: #374151;\n --kz-datepicker-border: #d1d5db;\n --kz-datepicker-border-radius: 4px;\n --kz-datepicker-font-family: inherit;\n --kz-datepicker-hover-bg: #f3f4f6;\n}\n\n.kz-datepicker-container {\n position: relative;\n width: 100%;\n color: var(--kz-datepicker-text);\n font-family: inherit;\n}\n.kz-datepicker-container * {\n box-sizing: border-box;\n}\n\n.kz-datepicker-input-wrapper {\n position: relative;\n width: 100%;\n}\n\n.kz-datepicker-input {\n position: relative;\n transition: all 0.3s ease;\n padding: 0.625rem 3.5rem 0.625rem 1rem;\n letter-spacing: 0.025em;\n font-weight: 300;\n font-size: 0.875rem;\n background-color: var(--kz-datepicker-bg);\n color: var(--kz-datepicker-text);\n min-width: 260px;\n border: 1px solid var(--kz-datepicker-border);\n width: 100%;\n height: 40px;\n border-radius: 4px;\n}\n.kz-datepicker-input::placeholder {\n color: #9ca3af;\n}\n.kz-datepicker-input:focus {\n outline: none;\n border-color: var(--kz-datepicker-primary);\n box-shadow: 0 0 0 2px rgba(var(--kz-datepicker-primary), 0.2);\n}\n.kz-datepicker-input:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.kz-datepicker-shortcut-text {\n position: absolute;\n left: 0;\n top: 0;\n height: 100%;\n padding: 0 0.75rem;\n color: #4b5563;\n display: flex;\n align-items: center;\n font-weight: 500;\n cursor: text;\n pointer-events: none;\n}\n\n.kz-datepicker-toggle-button {\n position: absolute;\n right: 0;\n top: 0;\n height: 100%;\n padding: 0 0.75rem;\n color: #9ca3af;\n background: transparent;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n}\n.kz-datepicker-toggle-button:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n.kz-datepicker-toggle-button:focus {\n outline: none;\n}\n.kz-datepicker-toggle-button svg {\n width: 1.5rem;\n height: 1.5rem;\n}\n\n.kz-datepicker-popup {\n position: absolute;\n z-index: 10;\n margin-top: 1px;\n font-size: 0.875rem;\n transition: all 0.3s ease-out;\n transform: translateY(1rem);\n opacity: 0;\n}\n.kz-datepicker-popup.kz-datepicker-open {\n transform: translateY(0);\n opacity: 1;\n}\n.kz-datepicker-popup.kz-datepicker-close {\n transform: translateY(1rem);\n opacity: 0;\n}\n.kz-datepicker-popup.bottom-full {\n bottom: 100%;\n margin-bottom: 0.625rem;\n margin-top: 0;\n transform: translateY(-1rem);\n}\n.kz-datepicker-popup.bottom-full.kz-datepicker-open {\n transform: translateY(0);\n}\n\n.kz-datepicker-popup-inner {\n margin-top: 0.625rem;\n box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n border: 1px solid var(--kz-datepicker-border);\n padding: 0.125rem 0.25rem;\n background-color: var(--kz-datepicker-bg);\n border-radius: 0.5rem;\n}\n\n.kz-datepicker-main-content {\n display: flex;\n flex-direction: column;\n padding: 0.5rem 0;\n}\n@media (min-width: 1024px) {\n .kz-datepicker-main-content {\n flex-direction: row;\n }\n}\n\n.kz-datepicker-calendars {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n gap: 1rem;\n padding-right: 0.5rem;\n}\n@media (min-width: 768px) {\n .kz-datepicker-calendars {\n flex-direction: row;\n gap: 0;\n padding-left: 0.25rem;\n }\n .kz-datepicker-calendars.kz-has-shortcuts {\n padding-left: 0.5rem;\n }\n .kz-datepicker-calendars > * + * {\n margin-left: 0.375rem;\n }\n}\n@media (min-width: 1024px) {\n .kz-datepicker-calendars {\n padding-right: 0.25rem;\n }\n}\n\n.kz-datepicker-divider-wrapper {\n display: flex;\n align-items: center;\n}\n\n.kz-calendar {\n width: 100%;\n}\n@media (min-width: 768px) {\n .kz-calendar {\n width: 296px;\n min-width: 296px;\n }\n}\n\n.kz-calendar-header {\n display: flex;\n align-items: center;\n gap: 0.375rem;\n border: 1px solid var(--kz-datepicker-border);\n border-radius: 0.375rem;\n padding: 0.375rem 0.5rem;\n}\n\n.kz-calendar-header-nav {\n flex: none;\n}\n\n.kz-calendar-header-title {\n display: flex;\n flex: 1;\n align-items: center;\n gap: 0.375rem;\n}\n\n.kz-calendar-header-month,\n.kz-calendar-header-year {\n width: 50%;\n}\n\n.kz-calendar-body {\n padding: 0.125rem;\n margin-top: 0.125rem;\n min-height: 285px;\n}\n@media (min-width: 640px) {\n .kz-calendar-body {\n padding: 0 0.5rem;\n }\n}\n\n.kz-calendar-week-grid {\n display: grid;\n grid-template-columns: repeat(7, minmax(0, 1fr));\n border-bottom: 1px solid var(--kz-datepicker-border);\n padding: 0.5rem 0;\n}\n\n.kz-calendar-week-day {\n letter-spacing: 0.025em;\n color: #6b7280;\n text-align: center;\n}\n\n.kz-calendar-days-grid {\n display: grid;\n grid-template-columns: repeat(7, minmax(0, 1fr));\n row-gap: 0.125rem;\n margin: 0.25rem 0;\n}\n\n.kz-calendar-day {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 3rem;\n height: 3rem;\n background: transparent;\n border: none;\n cursor: pointer;\n transition: all 0.3s ease;\n font-size: 0.875rem;\n color: var(--kz-datepicker-text);\n}\n@media (min-width: 1024px) {\n .kz-calendar-day {\n width: 2.5rem;\n height: 2.5rem;\n }\n}\n.kz-calendar-day:hover:not(:disabled) {\n background-color: var(--kz-datepicker-primary);\n color: var(--kz-datepicker-bg);\n border-radius: 0.375rem;\n}\n.kz-calendar-day:focus {\n outline: none;\n}\n\n.kz-calendar-day-disabled {\n color: #9ca3af;\n text-decoration: line-through;\n cursor: not-allowed;\n}\n.kz-calendar-day-disabled:hover {\n background: transparent;\n}\n\n.kz-calendar-day-today {\n color: var(--kz-datepicker-primary);\n}\n\n.kz-calendar-day-active {\n background-color: var(--kz-datepicker-primary);\n color: var(--kz-datepicker-bg);\n font-weight: 500;\n}\n.kz-calendar-day-active:hover:not(:disabled) {\n background-color: #2563eb;\n}\n.kz-calendar-day-active[class*=\"--\"] {\n background-color: var(--kz-datepicker-primary);\n color: var(--kz-datepicker-bg);\n}\n\n.kz-calendar-day-rounded {\n border-radius: 9999px;\n}\n\n.kz-calendar-day-hover-left {\n border-top-left-radius: 9999px;\n border-bottom-left-radius: 9999px;\n color: var(--kz-datepicker-bg);\n}\n\n.kz-calendar-day-hover-right {\n border-top-right-radius: 9999px;\n border-bottom-right-radius: 9999px;\n color: var(--kz-datepicker-bg);\n}\n\n.kz-calendar-day-in-range {\n background-color: #dbeafe;\n border-radius: 0;\n}\n.kz-calendar-day-in-range[class*=\"--\"] {\n background-color: #dbeafe;\n border-radius: 0;\n}\n\n.kz-calendar-day-hover-end {\n background-color: var(--kz-datepicker-primary);\n color: var(--kz-datepicker-bg);\n font-weight: 500;\n}\n\n.kz-calendar-months-grid,\n.kz-calendar-years-grid {\n width: 100%;\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 0.5rem;\n margin-top: 0.5rem;\n}\n\n.kz-datepicker-shortcuts {\n margin-bottom: 0.75rem;\n border-bottom: 1px solid var(--kz-datepicker-border);\n padding-right: 0.25rem;\n}\n@media (min-width: 1024px) {\n .kz-datepicker-shortcuts {\n margin-bottom: 0;\n border-bottom: none;\n border-right: 1px solid var(--kz-datepicker-border);\n }\n}\n\n.kz-datepicker-shortcuts-list {\n width: 100%;\n letter-spacing: 0.025em;\n display: flex;\n flex-wrap: wrap;\n padding-bottom: 0.25rem;\n list-style: none;\n margin: 0;\n padding-left: 0;\n}\n@media (min-width: 1024px) {\n .kz-datepicker-shortcuts-list {\n flex-direction: column;\n padding-bottom: 0;\n }\n}\n\n.kz-datepicker-shortcut-item {\n white-space: nowrap;\n width: 50%;\n transition: all 0.3s ease;\n padding: 0.5rem;\n border-radius: 0.25rem;\n cursor: pointer;\n color: #4b5563;\n}\n@media (min-width: 768px) {\n .kz-datepicker-shortcut-item {\n width: 33.333%;\n }\n}\n@media (min-width: 1024px) {\n .kz-datepicker-shortcut-item {\n width: auto;\n }\n}\n.kz-datepicker-shortcut-item:hover {\n background-color: #e5e7eb;\n color: #1d4ed8;\n}\n\n.kz-datepicker-footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding-bottom: 0.625rem;\n padding-top: 0.75rem;\n border-top: 1px solid var(--kz-datepicker-border);\n}\n\n.kz-datepicker-footer-buttons {\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 0.75rem;\n}\n@media (min-width: 768px) {\n .kz-datepicker-footer-buttons {\n width: auto;\n }\n}\n\n.kz-rounded-btn {\n width: 100%;\n letter-spacing: 0.025em;\n color: var(--kz-datepicker-text);\n transition: all 0.3s ease;\n padding: 0.55rem 0.75rem;\n text-transform: uppercase;\n background: transparent;\n border: none;\n border-radius: 0.375rem;\n cursor: pointer;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.kz-rounded-btn:hover:not(:disabled) {\n background-color: #e5e7eb;\n}\n.kz-rounded-btn:focus {\n outline: none;\n box-shadow: 0 0 0 1px rgba(var(--kz-datepicker-primary), 0.5);\n background-color: rgba(219, 234, 254, 0.5);\n}\n.kz-rounded-btn.is-active {\n font-weight: 600;\n background-color: #f9fafb;\n}\n.kz-rounded-btn.is-rounded-full {\n width: auto;\n border-radius: 9999px;\n padding: 0.45rem;\n}\n.kz-rounded-btn:disabled {\n text-decoration: line-through;\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.kz-primary-btn {\n width: 100%;\n transition: all 0.3s ease;\n background-color: var(--kz-datepicker-primary);\n border: 1px solid var(--kz-datepicker-primary);\n color: var(--kz-datepicker-bg);\n font-weight: 500;\n padding: 0.5rem 1rem;\n font-size: 0.875rem;\n border-radius: 0.375rem;\n cursor: pointer;\n}\n.kz-primary-btn:hover:not(:disabled) {\n background-color: #2563eb;\n}\n.kz-primary-btn:focus {\n outline: none;\n box-shadow: 0 0 0 2px rgba(var(--kz-datepicker-primary), 1), 0 0 0 4px rgba(var(--kz-datepicker-primary), 0.2);\n}\n.kz-primary-btn:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n.kz-secondary-btn {\n width: 100%;\n transition: all 0.3s ease;\n background-color: var(--kz-datepicker-bg);\n color: var(--kz-datepicker-text);\n font-weight: 500;\n border: 1px solid var(--kz-datepicker-border);\n padding: 0.5rem 1rem;\n font-size: 0.875rem;\n border-radius: 0.375rem;\n cursor: pointer;\n}\n.kz-secondary-btn:hover:not(:disabled) {\n background-color: #f9fafb;\n}\n.kz-secondary-btn:focus {\n outline: none;\n box-shadow: 0 0 0 2px var(--kz-datepicker-bg), 0 0 0 4px rgba(var(--kz-datepicker-primary), 0.2);\n}\n.kz-secondary-btn:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n.kz-vertical-dash {\n background-color: var(--kz-datepicker-primary);\n height: 1.75rem;\n width: 0.25rem;\n border-radius: 9999px;\n display: none;\n}\n@media (min-width: 768px) {\n .kz-vertical-dash {\n display: block;\n }\n}\n\n.kz-arrow-indicator {\n position: absolute;\n z-index: 20;\n height: 1rem;\n width: 1rem;\n transform: rotate(45deg);\n margin-top: 0.125rem;\n margin-left: 1.2rem;\n border-left: 1px solid var(--kz-datepicker-border);\n border-top: 1px solid var(--kz-datepicker-border);\n background-color: var(--kz-datepicker-bg);\n}\n.kz-arrow-indicator.border-r {\n border-right: 1px solid var(--kz-datepicker-border);\n border-left: none;\n}\n.kz-arrow-indicator.border-b {\n border-bottom: 1px solid var(--kz-datepicker-border);\n border-top: none;\n}\n.kz-arrow-indicator.right-0 {\n right: 0;\n left: auto;\n}\n.kz-arrow-indicator.mr-3_5 {\n margin-right: 0.875rem;\n margin-left: 0;\n}\n.kz-arrow-indicator.-bottom-2 {\n bottom: -0.5rem;\n margin-top: 0;\n}\n\n.dark .kz-datepicker-input {\n background-color: #1e293b;\n border-color: #475569;\n color: rgba(255, 255, 255, 0.8);\n}\n.dark .kz-datepicker-popup-inner {\n background-color: #1e293b;\n border-color: #475569;\n}\n.dark .kz-calendar-day {\n color: rgba(255, 255, 255, 0.8);\n}\n.dark .kz-calendar-day:hover:not(:disabled) {\n background-color: #334155;\n color: #ffffff;\n}\n.dark .kz-calendar-day-active {\n color: var(--kz-datepicker-bg);\n}\n.dark .kz-calendar-day-in-range {\n background-color: #334155;\n color: rgba(255, 255, 255, 0.8);\n}\n.dark .kz-calendar-day-in-range[class*=\"--\"] {\n background-color: #334155;\n}\n.dark .kz-calendar-week-grid {\n border-color: #475569;\n}\n.dark .kz-datepicker-footer {\n border-color: #475569;\n}\n.dark .kz-calendar-header {\n border-color: #475569;\n}\n.dark .kz-arrow-indicator {\n background-color: #1e293b;\n border-color: #475569;\n}\n.dark .kz-datepicker-shortcut-item {\n color: rgba(255, 255, 255, 0.8);\n}\n.dark .kz-datepicker-shortcut-item:hover {\n background-color: #334155;\n color: #ffffff;\n}\n.dark .kz-rounded-btn {\n color: rgba(255, 255, 255, 0.8);\n}\n.dark .kz-rounded-btn:hover:not(:disabled) {\n background-color: #334155;\n color: #ffffff;\n}\n.dark .kz-calendar-week-day {\n color: rgba(255, 255, 255, 0.6);\n}"]}
@@ -0,0 +1,2 @@
1
+ :root{--kz-datepicker-primary:#007bff;--kz-datepicker-bg:#fff;--kz-datepicker-text:#333;--kz-datepicker-border:#ccc;--kz-datepicker-border-radius:4px;--kz-datepicker-font-family:inherit;--kz-datepicker-hover-bg:#f0f0f0}.kz-datepicker{color:var(--kz-datepicker-text);display:inline-block;font-family:var(--kz-datepicker-font-family);position:relative}.kz-datepicker-input{background-color:var(--kz-datepicker-bg);border:1px solid var(--kz-datepicker-border);border-radius:var(--kz-datepicker-border-radius);color:inherit;cursor:pointer;font-family:inherit;outline:none;padding:8px 12px}.kz-datepicker-input:focus{border-color:var(--kz-datepicker-primary);box-shadow:0 0 0 2px rgba(0,123,255,.25)}.kz-datepicker-calendar{background-color:var(--kz-datepicker-bg);border:1px solid var(--kz-datepicker-border);border-radius:var(--kz-datepicker-border-radius);box-shadow:0 4px 6px rgba(0,0,0,.1);left:0;padding:16px;position:absolute;top:calc(100% + 4px);z-index:1000}
2
+ /*# sourceMappingURL=index.esm.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["index.scss"],"names":[],"mappings":"AAAA,MACE,+BAAgC,CAChC,uBAA2B,CAC3B,yBAA6B,CAC7B,2BAA+B,CAC/B,iCAAkC,CAClC,mCAAoC,CACpC,gCACF,CAEA,eAIE,+BAAgC,CADhC,oBAAqB,CAFrB,4CAA6C,CAC7C,iBAGF,CACA,qBAIE,wCAAyC,CAFzC,4CAA6C,CAC7C,gDAAiD,CAEjD,aAAc,CAEd,cAAe,CADf,mBAAoB,CAEpB,YAAa,CAPb,gBAQF,CACA,2BACE,yCAA0C,CAC1C,wCACF,CACA,wBAKE,wCAAyC,CACzC,4CAA6C,CAC7C,gDAAiD,CAEjD,mCAAwC,CANxC,MAAO,CAKP,YAAa,CAPb,iBAAkB,CAClB,oBAAqB,CAErB,YAMF","file":"index.esm.css","sourcesContent":[":root {\n --kz-datepicker-primary: #007bff;\n --kz-datepicker-bg: #ffffff;\n --kz-datepicker-text: #333333;\n --kz-datepicker-border: #cccccc;\n --kz-datepicker-border-radius: 4px;\n --kz-datepicker-font-family: inherit;\n --kz-datepicker-hover-bg: #f0f0f0;\n}\n\n.kz-datepicker {\n font-family: var(--kz-datepicker-font-family);\n position: relative;\n display: inline-block;\n color: var(--kz-datepicker-text);\n}\n.kz-datepicker-input {\n padding: 8px 12px;\n border: 1px solid var(--kz-datepicker-border);\n border-radius: var(--kz-datepicker-border-radius);\n background-color: var(--kz-datepicker-bg);\n color: inherit;\n font-family: inherit;\n cursor: pointer;\n outline: none;\n}\n.kz-datepicker-input:focus {\n border-color: var(--kz-datepicker-primary);\n box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n.kz-datepicker-calendar {\n position: absolute;\n top: calc(100% + 4px);\n left: 0;\n z-index: 1000;\n background-color: var(--kz-datepicker-bg);\n border: 1px solid var(--kz-datepicker-border);\n border-radius: var(--kz-datepicker-border-radius);\n padding: 16px;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n}"]}