se-design 1.0.77 → 1.0.78-dev1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/style.css +1 -1
- package/dist/components/CustomModal/index.d.ts +29 -0
- package/dist/index12.js +36 -34
- package/dist/index12.js.map +1 -1
- package/dist/index13.js +11 -11
- package/dist/index13.js.map +1 -1
- package/dist/index19.js +154 -154
- package/dist/index19.js.map +1 -1
- package/dist/index197.js +5 -5
- package/dist/index201.js +1 -1
- package/dist/{index206.js → index208.js} +1 -1
- package/dist/{index206.js.map → index208.js.map} +1 -1
- package/dist/{index207.js → index209.js} +1 -1
- package/dist/{index207.js.map → index209.js.map} +1 -1
- package/dist/{index215.js → index217.js} +1 -1
- package/dist/{index215.js.map → index217.js.map} +1 -1
- package/dist/{index223.js → index225.js} +1 -1
- package/dist/{index223.js.map → index225.js.map} +1 -1
- package/dist/{index226.js → index228.js} +1 -1
- package/dist/{index226.js.map → index228.js.map} +1 -1
- package/dist/{index235.js → index237.js} +1 -1
- package/dist/{index235.js.map → index237.js.map} +1 -1
- package/dist/index238.js +3 -18
- package/dist/index238.js.map +1 -1
- package/dist/index240.js +18 -9
- package/dist/index240.js.map +1 -1
- package/dist/index241.js +9 -4
- package/dist/index241.js.map +1 -1
- package/dist/index242.js +10 -170
- package/dist/index242.js.map +1 -1
- package/dist/index243.js +5 -11
- package/dist/index243.js.map +1 -1
- package/dist/index244.js +170 -6
- package/dist/index244.js.map +1 -1
- package/dist/index245.js +11 -6
- package/dist/index245.js.map +1 -1
- package/dist/index246.js +5 -37
- package/dist/index246.js.map +1 -1
- package/dist/index247.js +6 -2
- package/dist/index247.js.map +1 -1
- package/dist/index248.js +37 -7
- package/dist/index248.js.map +1 -1
- package/dist/index249.js +2 -327
- package/dist/index249.js.map +1 -1
- package/dist/index250.js +7 -49
- package/dist/index250.js.map +1 -1
- package/dist/index251.js +327 -2
- package/dist/index251.js.map +1 -1
- package/dist/index252.js +45 -71
- package/dist/index252.js.map +1 -1
- package/dist/index253.js +2 -93
- package/dist/index253.js.map +1 -1
- package/dist/index254.js +72 -48
- package/dist/index254.js.map +1 -1
- package/dist/index255.js +92 -7
- package/dist/index255.js.map +1 -1
- package/dist/index256.js +51 -4
- package/dist/index256.js.map +1 -1
- package/dist/index257.js +7 -51
- package/dist/index257.js.map +1 -1
- package/dist/index258.js +5 -2
- package/dist/index258.js.map +1 -1
- package/dist/index259.js +52 -2
- package/dist/index259.js.map +1 -1
- package/dist/index260.js +5 -0
- package/dist/index260.js.map +1 -0
- package/dist/index261.js +5 -0
- package/dist/index261.js.map +1 -0
- package/dist/index28.js +2 -2
- package/dist/index40.js +1 -1
- package/dist/index46.js +1 -1
- package/dist/index49.js +16 -14
- package/dist/index49.js.map +1 -1
- package/dist/index51.js +17 -17
- package/dist/index51.js.map +1 -1
- package/dist/index53.js +1 -1
- package/dist/index63.js +1 -1
- package/dist/index76.js +1 -1
- package/package.json +1 -1
- package/dist/index236.js +0 -7
- package/dist/index236.js.map +0 -1
- package/dist/index239.js +0 -13
- package/dist/index239.js.map +0 -1
package/dist/index51.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index51.js","sources":["../src/components/DatePicker/index.tsx"],"sourcesContent":["import React, { useState } from 'react';\n\nimport { Button } from '../Button';\nimport { Icon } from '../Icon';\nimport { Dropdown } from '../Dropdown';\nimport { useDatePickerA11y, formatDateId, getCellAriaLabel } from './useDatePickerA11y';\n\nimport './style.scss';\n\nexport interface DateRange {\n startDate: Date | null;\n endDate: Date | null;\n}\n\nexport interface DatePickerProps {\n title?: string;\n isOpen?: boolean;\n initialStartDate?: Date;\n initialEndDate?: Date;\n onApply?: (dateRange: DateRange) => void;\n onClose?: () => void;\n shouldAllowFutureDateSelection?: boolean;\n maxDays?: number;\n disablePastDates?: boolean;\n singleDateSelection?: boolean;\n minYearOption?: number;\n showQuickActions?: boolean;\n className?: string;\n automationId?: string;\n showHeader?: boolean;\n showSingleMonth?: boolean;\n labels?: {\n title?: string;\n clear?: string;\n apply?: string;\n };\n}\n\nconst weekDays = ['S', 'M', 'T', 'W', 'T', 'F', 'S'];\nconst weekDaysFull = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\nconst quickActions = ['Today', 'Yesterday', 'This Week', 'Last Week', 'This Month', 'Last Month'];\n\nconst months = [\n { value: 'january', label: 'January' },\n { value: 'february', label: 'February' },\n { value: 'march', label: 'March' },\n { value: 'april', label: 'April' },\n { value: 'may', label: 'May' },\n { value: 'june', label: 'June' },\n { value: 'july', label: 'July' },\n { value: 'august', label: 'August' },\n { value: 'september', label: 'September' },\n { value: 'october', label: 'October' },\n { value: 'november', label: 'November' },\n { value: 'december', label: 'December' }\n];\n\n// Pure helpers — no component state dependency\nconst getDaysInMonth = (year: number, month: number) => new Date(year, month + 1, 0).getDate();\nconst getFirstDayOfMonth = (year: number, month: number) => new Date(year, month, 1).getDay();\n\n\nexport const DatePicker: React.FC<DatePickerProps> = ({\n title = 'Select modified date',\n // isOpen = true,\n showHeader = true,\n initialStartDate,\n initialEndDate,\n onApply = () => {},\n onClose,\n shouldAllowFutureDateSelection = false,\n maxDays,\n disablePastDates = false,\n singleDateSelection = false,\n minYearOption,\n showQuickActions = false,\n showSingleMonth = false,\n className = '',\n automationId = 'datepicker',\n labels = {\n clear: 'Clear',\n apply: 'Apply'\n }\n}) => {\n const getDefaultDateRange = (): DateRange => {\n // If initial start and end dates are provided, use them\n if (initialStartDate && initialEndDate) {\n return {\n startDate: initialStartDate,\n endDate: initialEndDate\n };\n }\n\n // If no initial dates are provided, use today's date\n const endDate = new Date();\n endDate.setHours(23, 59, 59, 999); // End of today\n\n const startDate = new Date();\n startDate.setHours(0, 0, 0, 0); // Start of today\n\n return { startDate, endDate };\n };\n\n const getDefaultMonths = (): [Date, Date] => {\n const today = new Date();\n const lastMonth = new Date();\n\n // Set both to first day of their respective months\n today.setDate(1);\n lastMonth.setDate(1);\n\n if (!showSingleMonth) {\n lastMonth.setMonth(lastMonth.getMonth() - 1);\n }\n\n today.setHours(0, 0, 0, 0);\n lastMonth.setHours(0, 0, 0, 0);\n\n return [lastMonth, today];\n };\n\n const [selectedRange, setSelectedRange] = useState<DateRange>(getDefaultDateRange);\n const [defaultMonths, _] = useState(getDefaultMonths);\n const [leftMonth, setLeftMonth] = useState(() => defaultMonths[0]);\n const [rightMonth, setRightMonth] = useState(() => defaultMonths[1]);\n\n const ensureDateInCorrectOrder = (leftDate: Date, rightDate: Date): [Date, Date] => {\n if (leftDate.getTime() > rightDate.getTime()) {\n return [rightDate, leftDate];\n }\n return [leftDate, rightDate];\n };\n\n const handleMonthChange = (newDate: Date, isLeftCalendar: boolean) => {\n if (showSingleMonth) {\n setLeftMonth(newDate);\n return;\n }\n if (isLeftCalendar) {\n const [newLeft, newRight] = ensureDateInCorrectOrder(newDate, rightMonth);\n setLeftMonth(newLeft);\n if (newRight !== rightMonth) setRightMonth(newRight);\n } else {\n const [newLeft, newRight] = ensureDateInCorrectOrder(leftMonth, newDate);\n if (newLeft !== leftMonth) setLeftMonth(newLeft);\n setRightMonth(newRight);\n }\n };\n\n const {\n getGridCellProps,\n getLeftContainerProps,\n getRightContainerProps\n } = useDatePickerA11y({\n leftMonth,\n rightMonth,\n showSingleMonth,\n selectedRange,\n onMonthChange: handleMonthChange\n });\n\n const generateCalendarDays = (year: number, month: number) => {\n const daysInMonth = getDaysInMonth(year, month);\n const firstDay = getFirstDayOfMonth(year, month);\n const days = [];\n\n // Add empty cells for days before the first day of the month\n for (let i = 0; i < firstDay; i++) {\n days.push(null);\n }\n\n // Add the days of the month\n for (let day = 1; day <= daysInMonth; day++) {\n const date = new Date(year, month, day);\n date.setHours(0, 0, 0, 0); // Normalize to start of day for consistent comparisons\n days.push(date);\n }\n\n return days;\n };\n\n const isSameDay = (date1: Date, date2: Date): boolean => {\n return (\n date1.getDate() === date2.getDate() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getFullYear() === date2.getFullYear()\n );\n };\n\n const isDateInRange = (date: Date) => {\n if (!selectedRange.startDate || !selectedRange.endDate) return false;\n\n const compareDate = new Date(date);\n compareDate.setHours(12, 0, 0, 0); // Noon to avoid any timezone issues\n\n const startDate = new Date(selectedRange.startDate);\n startDate.setHours(0, 0, 0, 0);\n\n const endDate = new Date(selectedRange.endDate);\n endDate.setHours(23, 59, 59, 999);\n\n return compareDate >= startDate && compareDate <= endDate;\n };\n\n const isToday = (date: Date) => {\n const today = new Date();\n return (\n date.getDate() === today.getDate() &&\n date.getMonth() === today.getMonth() &&\n date.getFullYear() === today.getFullYear()\n );\n };\n\n const isDateDisabled = (date: Date | null) => {\n if (!date) return true;\n\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n const dateToCheck = new Date(date);\n dateToCheck.setHours(0, 0, 0, 0);\n\n // If disablePastDates is true, disable dates before today\n if (disablePastDates && dateToCheck < today) {\n return true;\n }\n\n // If maxDays is specified, disable dates after maxDays from today\n if (maxDays !== undefined && maxDays !== null) {\n const maxDate = new Date(today);\n maxDate.setDate(maxDate.getDate() + maxDays);\n maxDate.setHours(0, 0, 0, 0); // Normalize to start of day\n // Disable all dates after maxDays (dates strictly after maxDate should be disabled)\n // Dates up to and including maxDate (today + maxDays) are allowed\n if (dateToCheck > maxDate) {\n return true;\n }\n // If maxDays is set, we're done checking - don't check shouldAllowFutureDateSelection\n return false;\n }\n\n // If shouldAllowFutureDateSelection is false and maxDays is not specified, disable dates after today\n if (!shouldAllowFutureDateSelection) {\n return dateToCheck > today;\n }\n\n return false;\n };\n\n const handleDateClick = (date: Date) => {\n if (isDateDisabled(date)) return;\n\n const clickedDate = new Date(date);\n clickedDate.setHours(12, 0, 0, 0); // Set to noon to avoid timezone issues\n\n // Single date selection mode - immediately apply on click\n if (singleDateSelection) {\n setSelectedRange({ startDate: clickedDate, endDate: clickedDate });\n onApply({ startDate: clickedDate, endDate: clickedDate });\n onClose?.();\n return;\n }\n\n // Range selection mode (original behavior)\n if (!selectedRange.startDate || selectedRange.endDate) {\n // No dates selected yet, or both dates are selected - start new selection\n setSelectedRange({ startDate: clickedDate, endDate: null });\n } else {\n // Only start date is selected, set end date\n const currentStart = new Date(selectedRange.startDate);\n currentStart.setHours(12, 0, 0, 0);\n\n const endDate = clickedDate > currentStart ? clickedDate : currentStart;\n const startDate = clickedDate > currentStart ? currentStart : clickedDate;\n\n setSelectedRange({ startDate, endDate });\n }\n };\n\n const handleMonthNavigation = (date: Date, increment: boolean) => {\n const newDate = new Date(date);\n newDate.setMonth(newDate.getMonth() + (increment ? 1 : -1));\n return newDate;\n };\n\n const isStartDate = (date: Date): boolean => {\n if (!selectedRange?.startDate) return false;\n return isSameDay(date, selectedRange.startDate);\n };\n\n const isEndDate = (date: Date): boolean => {\n if (!selectedRange?.endDate) return false;\n return isSameDay(date, selectedRange?.endDate);\n };\n\n const isSameStartAndEndDate = (date: Date): boolean => {\n if (!selectedRange.startDate || !selectedRange.endDate) return false;\n return isSameDay(selectedRange.startDate, selectedRange.endDate) && isSameDay(date, selectedRange.startDate);\n };\n\n const getYearOptions = (currentYear: number, calendarYear: number) => {\n const startYear = minYearOption || currentYear - 10;\n let endYear = shouldAllowFutureDateSelection ? currentYear + 10 : currentYear;\n\n // If maxDays is specified, calculate the maximum year\n if (maxDays) {\n const today = new Date();\n const maxDate = new Date(today);\n maxDate.setDate(maxDate.getDate() + maxDays);\n const maxYear = maxDate.getFullYear();\n // Use the smaller of the two limits\n endYear = Math.min(endYear, maxYear);\n }\n\n endYear = Math.max(endYear, calendarYear);\n\n const yearCount = endYear - startYear + 1;\n\n return Array.from({ length: yearCount }, (_, i) => ({\n value: startYear + i,\n label: (startYear + i).toString()\n })).filter((year) => {\n if (year.value === calendarYear) {\n return true;\n }\n if (!shouldAllowFutureDateSelection && year.value > currentYear) {\n return false;\n }\n // If maxDays is specified, filter out years beyond maxDate\n if (maxDays) {\n const today = new Date();\n const maxDate = new Date(today);\n maxDate.setDate(maxDate.getDate() + maxDays);\n return year.value <= maxDate.getFullYear();\n }\n return true;\n });\n };\n\n const handleClear = () => {\n const today = new Date();\n const startDate = new Date();\n\n // Set start date to beginning of today\n startDate.setHours(0, 0, 0, 0);\n\n // Set end date to end of today\n today.setHours(23, 59, 59, 999);\n\n const defaultRange = { startDate, endDate: today };\n setSelectedRange(defaultRange);\n };\n\n const getStartOfDay = (date: Date) => {\n const newDate = new Date(date);\n newDate.setHours(0, 0, 0, 0);\n return newDate;\n };\n\n const getEndOfDay = (date: Date) => {\n const newDate = new Date(date);\n newDate.setHours(23, 59, 59, 999);\n return newDate;\n };\n\n const handleQuickAction = (action: string) => {\n const today = new Date();\n let startDate = new Date();\n let endDate = new Date();\n\n switch (action) {\n case 'Today':\n startDate = getStartOfDay(today);\n endDate = getEndOfDay(today);\n break;\n case 'Yesterday':\n startDate = getStartOfDay(new Date(today.setDate(today.getDate() - 1)));\n endDate = getEndOfDay(new Date(today));\n break;\n case 'This Week':\n const firstDayOfWeek = new Date(today.setDate(today.getDate() - today.getDay()));\n startDate = getStartOfDay(firstDayOfWeek);\n endDate = getEndOfDay(new Date());\n break;\n case 'Last Week':\n const lastWeekStart = new Date(today.setDate(today.getDate() - today.getDay() - 7));\n const lastWeekEnd = new Date(today.setDate(lastWeekStart.getDate() + 6));\n startDate = getStartOfDay(lastWeekStart);\n endDate = getEndOfDay(lastWeekEnd);\n break;\n case 'This Month':\n startDate = getStartOfDay(new Date(today.getFullYear(), today.getMonth(), 1));\n endDate = getEndOfDay(new Date());\n break;\n case 'Last Month':\n startDate = getStartOfDay(new Date(today.getFullYear(), today.getMonth() - 1, 1));\n endDate = getEndOfDay(new Date(today.getFullYear(), today.getMonth(), 0));\n break;\n }\n\n setSelectedRange({ startDate, endDate });\n };\n\n const renderQuickActions = () => {\n return (\n <div className=\"w-[147px] p-4 border-r border-[var(--color-gray-200)]\">\n <div role=\"group\" aria-label=\"Quick date selections\" className=\"flex flex-col gap-3\">\n {quickActions.map((action) => (\n <Button key={action} label={action} type=\"link\" onClick={() => handleQuickAction(action)} />\n ))}\n </div>\n </div>\n );\n };\n\n const handleApply = () => {\n const { startDate = null, endDate = null } = selectedRange;\n\n if (startDate && endDate) {\n onApply({ startDate, endDate });\n return;\n }\n\n if (startDate || endDate) {\n const selectedDate = startDate || endDate;\n onApply({ startDate: selectedDate, endDate: selectedDate });\n }\n };\n\n const renderCalendar = (date: Date) => {\n const year = date.getFullYear();\n const month = date.getMonth();\n const days = generateCalendarDays(year, month);\n const currentYear = new Date().getFullYear();\n const isLeftCalendar = date.getTime() === leftMonth.getTime();\n const yearOptions = getYearOptions(currentYear, year);\n const monthHeading = new Date(year, month, 1).toLocaleString('en-US', { month: 'long', year: 'numeric' });\n const getGridContainerProps = isLeftCalendar ? getLeftContainerProps : getRightContainerProps;\n const gridInstructionsId = `calendar-instructions-${isLeftCalendar ? 'left' : 'right'}`;\n const gridInstructions = singleDateSelection\n ? 'Press Enter or Space to select a date. Use arrow keys to navigate days, Page Up and Page Down to change months.'\n : 'Press Enter or Space to select a start date, then again to select an end date. Use arrow keys to navigate days, Page Up and Page Down to change months.';\n\n const getCellProps = getGridCellProps({ isLeftCalendar, isDateDisabled, handleDateClick });\n\n // Group flat days array into rows of 7 for ARIA grid row/gridcell structure\n const rows: (Date | null)[][] = [];\n for (let i = 0; i < days.length; i += 7) {\n const row = days.slice(i, i + 7);\n while (row.length < 7) row.push(null);\n rows.push(row);\n }\n\n const today = new Date();\n const isPrevMonthDisabled =\n disablePastDates &&\n date.getMonth() === today.getMonth() &&\n date.getFullYear() === today.getFullYear();\n const isNextMonthDisabled =\n (!shouldAllowFutureDateSelection &&\n month === today.getMonth() &&\n year === today.getFullYear()) ||\n (maxDays !== undefined &&\n (() => {\n const maxDate = new Date(today);\n maxDate.setDate(maxDate.getDate() + maxDays);\n return date.getMonth() === maxDate.getMonth() && date.getFullYear() === maxDate.getFullYear();\n })());\n\n return (\n <div className=\"se-design-calendar-container w-fit p-4\">\n <div className=\"flex justify-between items-center\">\n <Icon\n name=\"chevron\"\n rotation=\"90\"\n size={16}\n disabled={isPrevMonthDisabled}\n onClick={() => {\n const newDate = handleMonthNavigation(date, false);\n // Check if navigating back would go before today when disablePastDates is true\n if (disablePastDates) {\n const todayCheck = new Date();\n todayCheck.setHours(0, 0, 0, 0);\n if (newDate < todayCheck && newDate.getMonth() !== todayCheck.getMonth()) {\n return; // Don't navigate to past months\n }\n }\n handleMonthChange(newDate, isLeftCalendar);\n }}\n automationId={`${automationId}-previous-month`}\n ariaLabel={showSingleMonth ? 'Previous month' : isLeftCalendar ? 'Previous month of starting date' : 'Previous month of end date'}\n />\n\n <div className=\"flex gap-2\" onClick={(e) => e.stopPropagation()}>\n <Dropdown\n type=\"select\"\n dropDownOptions={months}\n defaultSelectedValue={months[month]}\n selectBy=\"label\"\n optionsUniqueBy=\"value\"\n displaySelected={true}\n ariaLabel={showSingleMonth ? 'Month' : isLeftCalendar ? 'Month of starting date' : 'Month of end date'}\n onOptionClick={(selectedOption) => {\n const newDate = new Date(date);\n newDate.setMonth(months.findIndex((m) => m.value === selectedOption.value));\n handleMonthChange(newDate, isLeftCalendar);\n }}\n className=\"w-[124px] dropdown-option-container\"\n />\n <Dropdown\n type=\"select\"\n dropDownOptions={yearOptions}\n defaultSelectedValue={yearOptions.find((y) => y.value === year)}\n selectBy=\"label\"\n optionsUniqueBy=\"value\"\n displaySelected={true}\n ariaLabel={showSingleMonth ? 'Year' : isLeftCalendar ? 'Year of starting date' : 'Year of end date'}\n onOptionClick={(selectedOption) => {\n const newDate = new Date(date);\n newDate.setFullYear(selectedOption.value);\n handleMonthChange(newDate, isLeftCalendar);\n }}\n className=\"w-[104px] dropdown-option-container\"\n />\n </div>\n\n <Icon\n name=\"chevron\"\n rotation=\"270\"\n size={16}\n disabled={isNextMonthDisabled}\n onClick={() => {\n const newDate = handleMonthNavigation(date, true);\n // Check if the new date would exceed maxDays\n if (maxDays !== undefined) {\n const today = new Date();\n const maxDate = new Date(today);\n maxDate.setDate(maxDate.getDate() + maxDays);\n if (newDate > maxDate) {\n return;\n }\n }\n handleMonthChange(newDate, isLeftCalendar);\n }}\n automationId={`${automationId}-next-month`}\n ariaLabel={showSingleMonth ? 'Next month' : isLeftCalendar ? 'Next month of starting date' : 'Next month of end date'}\n />\n </div>\n\n {/* Calendar grid with ARIA grid/row/gridcell/columnheader roles */}\n <span id={gridInstructionsId} className=\"sr-only\">\n {gridInstructions}\n </span>\n <div {...getGridContainerProps({ ariaLabel: monthHeading, ariaDescribedBy: gridInstructionsId })} className=\"mt-3\">\n {/* Column headers (week days) */}\n <div role=\"row\" className=\"grid grid-cols-7 gap-2\">\n {weekDays.map((day, index) => (\n <abbr\n key={`${day}-${index}`}\n role=\"columnheader\"\n aria-label={weekDaysFull[index]}\n title={weekDaysFull[index]}\n className=\"datepicker-weekdays\"\n >\n {day}\n </abbr>\n ))}\n </div>\n\n {/* Day rows */}\n {rows.map((row, rowIdx) => (\n <div key={rowIdx} role=\"row\" className=\"grid grid-cols-7 gap-2\">\n {row.map((cellDate, colIdx) => {\n if (!cellDate) {\n return (\n <div\n key={`empty-${rowIdx}-${colIdx}`}\n role=\"gridcell\"\n aria-hidden=\"true\"\n className=\"h-10 w-10\"\n />\n );\n }\n\n const cellId = formatDateId(cellDate);\n const isStart = isStartDate(cellDate);\n const isEnd = isEndDate(cellDate);\n const isSameStartEnd = isSameStartAndEndDate(cellDate);\n const inRange = !isStart && !isEnd && isDateInRange(cellDate);\n const todayDate = isToday(cellDate);\n const disabled = isDateDisabled(cellDate);\n\n const { ref: cellRef, ...cellProps } = getCellProps({\n cellId,\n cellDate,\n disabled,\n ariaLabel: getCellAriaLabel(cellDate, isStart, isEnd, isSameStartEnd, singleDateSelection),\n ariaSelected: isStart || isEnd || inRange,\n ariaCurrent: todayDate ? 'date' : undefined,\n ariaDisabled: disabled || undefined\n });\n\n return (\n <div\n key={cellId}\n {...cellProps}\n ref={cellRef as React.Ref<HTMLDivElement>}\n className={`\n relative h-10 w-10 flex items-center justify-center transition-colors rounded-md focus-outline\n ${\n disabled ? 'cursor-not-allowed text-[var(--color-gray-600)] hover:bg-transparent' : 'cursor-pointer'\n }\n ${\n isSameStartEnd\n ? 'bg-[var(--color-blue-500)] text-[var(--color-white)] hover:bg-[var(--color-blue-600)]'\n : ''\n }\n ${\n !isSameStartEnd && isStart\n ? 'bg-[var(--color-blue-500)] text-[var(--color-white)] hover:bg-[var(--color-blue-600)]'\n : ''\n }\n ${\n !isSameStartEnd && isEnd\n ? 'bg-[var(--color-blue-500)] text-[var(--color-white)] hover:bg-[var(--color-blue-600)]'\n : ''\n }\n ${!isStart && !isEnd && inRange ? 'bg-[var(--color-blue-100)] text-[var(--color-blue-600)] outline outline-1 outline-[var(--color-blue-500)]' : ''}\n ${!isStart && !isEnd && !inRange && !disabled ? 'hover:bg-[var(--color-blue-100)] hover:outline hover:outline-1 hover:outline-[var(--color-blue-500)]' : ''}\n ${todayDate && !isStart && !isEnd ? 'text-[var(--color-blue-500)] bg-[var(--color-blue-100)] outline outline-1 outline-[var(--color-blue-500)]' : ''}\n ${!disabled && !isStart && !isEnd && !todayDate ? 'text-[var(--color-blue-500)]' : ''}\n `}\n data-automation-id={`${automationId}-date-${cellDate.getDate()}`}\n >\n {cellDate.getDate()}\n {!isSameStartEnd && (isStart || isEnd) && (\n <div\n className={`absolute top-0 bottom-0 ${isStart ? 'right-[-8px]' : 'left-[-8px]'} w-[8px]\n bg-[var(--color-blue-100)] -z-10`}\n />\n )}\n </div>\n );\n })}\n </div>\n ))}\n </div>\n </div>\n );\n };\n\n return (\n <div\n className={`se-design-datepicker-container flex flex-col bg-[var(--color-white)] rounded-md shadow-md w-max ${className}`}\n >\n {showHeader && (\n <div className=\"se-design-datepicker-header flex justify-between items-center border-b border-[var(--color-gray-200)] p-4\">\n <h2 className=\"datepicker-title\">{title}</h2>\n {onClose && (\n <Icon\n name=\"close\"\n size={16}\n onClick={onClose}\n className=\"cursor-pointer\"\n automationId={`${automationId}-close`}\n ariaLabel=\"Close date picker\"\n />\n )}\n </div>\n )}\n <div className=\"se-design-datepicker-content flex\">\n {showQuickActions && renderQuickActions()}\n <div className=\"flex\">\n {showSingleMonth ? (\n renderCalendar(leftMonth)\n ) : (\n <>\n {renderCalendar(leftMonth)}\n <div className=\"h-full w-[1px] border-r border-[var(--color-gray-200)]\" aria-hidden=\"true\"></div>\n {renderCalendar(rightMonth)}\n </>\n )}\n </div>\n </div>\n {!singleDateSelection && (\n <div className=\"se-design-datepicker-footer flex justify-end items-center gap-5 p-4 border-t border-[var(--color-gray-200)]\">\n <Button\n label={labels?.clear || 'Clear'}\n type=\"ghost\"\n onClick={handleClear}\n data-automation-id={`${automationId}-clear-button`}\n />\n <Button\n label={labels?.apply || 'Apply'}\n type=\"primary\"\n onClick={handleApply}\n data-automation-id={`${automationId}-apply-button`}\n />\n </div>\n )}\n\n </div>\n );\n};\n"],"names":["weekDays","weekDaysFull","quickActions","months","value","label","getDaysInMonth","year","month","Date","getDate","getFirstDayOfMonth","getDay","DatePicker","title","showHeader","initialStartDate","initialEndDate","onApply","onClose","shouldAllowFutureDateSelection","maxDays","disablePastDates","singleDateSelection","minYearOption","showQuickActions","showSingleMonth","className","automationId","labels","clear","apply","getDefaultDateRange","startDate","endDate","setHours","getDefaultMonths","today","lastMonth","setDate","setMonth","getMonth","selectedRange","setSelectedRange","useState","defaultMonths","leftMonth","setLeftMonth","rightMonth","setRightMonth","ensureDateInCorrectOrder","leftDate","rightDate","getTime","handleMonthChange","newDate","isLeftCalendar","newLeft","newRight","getGridCellProps","getLeftContainerProps","getRightContainerProps","useDatePickerA11y","onMonthChange","generateCalendarDays","daysInMonth","firstDay","days","i","push","day","date","isSameDay","date1","date2","getFullYear","isDateInRange","compareDate","isToday","isDateDisabled","dateToCheck","maxDate","handleDateClick","clickedDate","currentStart","handleMonthNavigation","increment","isStartDate","isEndDate","isSameStartAndEndDate","getYearOptions","currentYear","calendarYear","startYear","endYear","maxYear","Math","min","max","yearCount","Array","from","length","_","toString","filter","handleClear","getStartOfDay","getEndOfDay","handleQuickAction","action","firstDayOfWeek","lastWeekStart","lastWeekEnd","renderQuickActions","React","createElement","role","map","Button","key","type","onClick","handleApply","selectedDate","renderCalendar","yearOptions","monthHeading","toLocaleString","getGridContainerProps","gridInstructionsId","gridInstructions","getCellProps","rows","row","slice","isPrevMonthDisabled","isNextMonthDisabled","undefined","Icon","name","rotation","size","disabled","todayCheck","ariaLabel","e","stopPropagation","Dropdown","dropDownOptions","defaultSelectedValue","selectBy","optionsUniqueBy","displaySelected","onOptionClick","selectedOption","findIndex","m","find","y","setFullYear","id","_extends","ariaDescribedBy","index","rowIdx","cellDate","colIdx","cellId","formatDateId","isStart","isEnd","isSameStartEnd","inRange","todayDate","ref","cellRef","cellProps","getCellAriaLabel","ariaSelected","ariaCurrent","ariaDisabled","Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index51.js","sources":["../src/components/DatePicker/index.tsx"],"sourcesContent":["import React, { useState } from 'react';\n\nimport { Button } from '../Button';\nimport { Icon } from '../Icon';\nimport { Dropdown } from '../Dropdown';\nimport { useDatePickerA11y, formatDateId, getCellAriaLabel } from './useDatePickerA11y';\n\nimport './style.scss';\n\nexport interface DateRange {\n startDate: Date | null;\n endDate: Date | null;\n}\n\nexport interface DatePickerProps {\n title?: string;\n isOpen?: boolean;\n initialStartDate?: Date;\n initialEndDate?: Date;\n onApply?: (dateRange: DateRange) => void;\n onClose?: () => void;\n shouldAllowFutureDateSelection?: boolean;\n maxDays?: number;\n disablePastDates?: boolean;\n singleDateSelection?: boolean;\n minYearOption?: number;\n showQuickActions?: boolean;\n className?: string;\n automationId?: string;\n showHeader?: boolean;\n showSingleMonth?: boolean;\n labels?: {\n title?: string;\n clear?: string;\n apply?: string;\n };\n}\n\nconst weekDays = ['S', 'M', 'T', 'W', 'T', 'F', 'S'];\nconst weekDaysFull = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\nconst quickActions = ['Today', 'Yesterday', 'This Week', 'Last Week', 'This Month', 'Last Month'];\n\nconst months = [\n { value: 'january', label: 'January' },\n { value: 'february', label: 'February' },\n { value: 'march', label: 'March' },\n { value: 'april', label: 'April' },\n { value: 'may', label: 'May' },\n { value: 'june', label: 'June' },\n { value: 'july', label: 'July' },\n { value: 'august', label: 'August' },\n { value: 'september', label: 'September' },\n { value: 'october', label: 'October' },\n { value: 'november', label: 'November' },\n { value: 'december', label: 'December' }\n];\n\n// Pure helpers — no component state dependency\nconst getDaysInMonth = (year: number, month: number) => new Date(year, month + 1, 0).getDate();\nconst getFirstDayOfMonth = (year: number, month: number) => new Date(year, month, 1).getDay();\n\n\nexport const DatePicker: React.FC<DatePickerProps> = ({\n title = 'Select modified date',\n // isOpen = true,\n showHeader = true,\n initialStartDate,\n initialEndDate,\n onApply = () => {},\n onClose,\n shouldAllowFutureDateSelection = false,\n maxDays,\n disablePastDates = false,\n singleDateSelection = false,\n minYearOption,\n showQuickActions = false,\n showSingleMonth = false,\n className = '',\n automationId = 'datepicker',\n labels = {\n clear: 'Clear',\n apply: 'Apply'\n }\n}) => {\n const getDefaultDateRange = (): DateRange => {\n // If initial start and end dates are provided, use them\n if (initialStartDate && initialEndDate) {\n return {\n startDate: initialStartDate,\n endDate: initialEndDate\n };\n }\n\n // If no initial dates are provided, use today's date\n const endDate = new Date();\n endDate.setHours(23, 59, 59, 999); // End of today\n\n const startDate = new Date();\n startDate.setHours(0, 0, 0, 0); // Start of today\n\n return { startDate, endDate };\n };\n\n const getDefaultMonths = (): [Date, Date] => {\n const today = new Date();\n const lastMonth = new Date();\n\n // Set both to first day of their respective months\n today.setDate(1);\n lastMonth.setDate(1);\n\n if (!showSingleMonth) {\n lastMonth.setMonth(lastMonth.getMonth() - 1);\n }\n\n today.setHours(0, 0, 0, 0);\n lastMonth.setHours(0, 0, 0, 0);\n\n return [lastMonth, today];\n };\n\n const [selectedRange, setSelectedRange] = useState<DateRange>(getDefaultDateRange);\n const [defaultMonths, _] = useState(getDefaultMonths);\n const [leftMonth, setLeftMonth] = useState(() => defaultMonths[0]);\n const [rightMonth, setRightMonth] = useState(() => defaultMonths[1]);\n\n const ensureDateInCorrectOrder = (leftDate: Date, rightDate: Date): [Date, Date] => {\n if (leftDate.getTime() > rightDate.getTime()) {\n return [rightDate, leftDate];\n }\n return [leftDate, rightDate];\n };\n\n const handleMonthChange = (newDate: Date, isLeftCalendar: boolean) => {\n if (showSingleMonth) {\n setLeftMonth(newDate);\n return;\n }\n if (isLeftCalendar) {\n const [newLeft, newRight] = ensureDateInCorrectOrder(newDate, rightMonth);\n setLeftMonth(newLeft);\n if (newRight !== rightMonth) setRightMonth(newRight);\n } else {\n const [newLeft, newRight] = ensureDateInCorrectOrder(leftMonth, newDate);\n if (newLeft !== leftMonth) setLeftMonth(newLeft);\n setRightMonth(newRight);\n }\n };\n\n const {\n getGridCellProps,\n getLeftContainerProps,\n getRightContainerProps\n } = useDatePickerA11y({\n leftMonth,\n rightMonth,\n showSingleMonth,\n selectedRange,\n onMonthChange: handleMonthChange\n });\n\n const generateCalendarDays = (year: number, month: number) => {\n const daysInMonth = getDaysInMonth(year, month);\n const firstDay = getFirstDayOfMonth(year, month);\n const days = [];\n\n // Add empty cells for days before the first day of the month\n for (let i = 0; i < firstDay; i++) {\n days.push(null);\n }\n\n // Add the days of the month\n for (let day = 1; day <= daysInMonth; day++) {\n const date = new Date(year, month, day);\n date.setHours(0, 0, 0, 0); // Normalize to start of day for consistent comparisons\n days.push(date);\n }\n\n return days;\n };\n\n const isSameDay = (date1: Date, date2: Date): boolean => {\n return (\n date1.getDate() === date2.getDate() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getFullYear() === date2.getFullYear()\n );\n };\n\n const isDateInRange = (date: Date) => {\n if (!selectedRange.startDate || !selectedRange.endDate) return false;\n\n const compareDate = new Date(date);\n compareDate.setHours(12, 0, 0, 0); // Noon to avoid any timezone issues\n\n const startDate = new Date(selectedRange.startDate);\n startDate.setHours(0, 0, 0, 0);\n\n const endDate = new Date(selectedRange.endDate);\n endDate.setHours(23, 59, 59, 999);\n\n return compareDate >= startDate && compareDate <= endDate;\n };\n\n const isToday = (date: Date) => {\n const today = new Date();\n return (\n date.getDate() === today.getDate() &&\n date.getMonth() === today.getMonth() &&\n date.getFullYear() === today.getFullYear()\n );\n };\n\n const isDateDisabled = (date: Date | null) => {\n if (!date) return true;\n\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n const dateToCheck = new Date(date);\n dateToCheck.setHours(0, 0, 0, 0);\n\n // If disablePastDates is true, disable dates before today\n if (disablePastDates && dateToCheck < today) {\n return true;\n }\n\n // If maxDays is specified, disable dates after maxDays from today\n if (maxDays !== undefined && maxDays !== null) {\n const maxDate = new Date(today);\n maxDate.setDate(maxDate.getDate() + maxDays);\n maxDate.setHours(0, 0, 0, 0); // Normalize to start of day\n // Disable all dates after maxDays (dates strictly after maxDate should be disabled)\n // Dates up to and including maxDate (today + maxDays) are allowed\n if (dateToCheck > maxDate) {\n return true;\n }\n // If maxDays is set, we're done checking - don't check shouldAllowFutureDateSelection\n return false;\n }\n\n // If shouldAllowFutureDateSelection is false and maxDays is not specified, disable dates after today\n if (!shouldAllowFutureDateSelection) {\n return dateToCheck > today;\n }\n\n return false;\n };\n\n const handleDateClick = (date: Date) => {\n if (isDateDisabled(date)) return;\n\n const clickedDate = new Date(date);\n clickedDate.setHours(12, 0, 0, 0); // Set to noon to avoid timezone issues\n\n // Single date selection mode - immediately apply on click\n if (singleDateSelection) {\n setSelectedRange({ startDate: clickedDate, endDate: clickedDate });\n onApply({ startDate: clickedDate, endDate: clickedDate });\n onClose?.();\n return;\n }\n\n // Range selection mode (original behavior)\n if (!selectedRange.startDate || selectedRange.endDate) {\n // No dates selected yet, or both dates are selected - start new selection\n setSelectedRange({ startDate: clickedDate, endDate: null });\n } else {\n // Only start date is selected, set end date\n const currentStart = new Date(selectedRange.startDate);\n currentStart.setHours(12, 0, 0, 0);\n\n const endDate = clickedDate > currentStart ? clickedDate : currentStart;\n const startDate = clickedDate > currentStart ? currentStart : clickedDate;\n\n setSelectedRange({ startDate, endDate });\n }\n };\n\n const handleMonthNavigation = (date: Date, increment: boolean) => {\n const newDate = new Date(date);\n newDate.setMonth(newDate.getMonth() + (increment ? 1 : -1));\n return newDate;\n };\n\n const isStartDate = (date: Date): boolean => {\n if (!selectedRange?.startDate) return false;\n return isSameDay(date, selectedRange.startDate);\n };\n\n const isEndDate = (date: Date): boolean => {\n if (!selectedRange?.endDate) return false;\n return isSameDay(date, selectedRange?.endDate);\n };\n\n const isSameStartAndEndDate = (date: Date): boolean => {\n if (!selectedRange.startDate || !selectedRange.endDate) return false;\n return isSameDay(selectedRange.startDate, selectedRange.endDate) && isSameDay(date, selectedRange.startDate);\n };\n\n const getYearOptions = (currentYear: number, calendarYear: number) => {\n const startYear = minYearOption || currentYear - 10;\n let endYear = shouldAllowFutureDateSelection ? currentYear + 10 : currentYear;\n\n // If maxDays is specified, calculate the maximum year\n if (maxDays) {\n const today = new Date();\n const maxDate = new Date(today);\n maxDate.setDate(maxDate.getDate() + maxDays);\n const maxYear = maxDate.getFullYear();\n // Use the smaller of the two limits\n endYear = Math.min(endYear, maxYear);\n }\n\n endYear = Math.max(endYear, calendarYear);\n\n const yearCount = endYear - startYear + 1;\n\n return Array.from({ length: yearCount }, (_, i) => ({\n value: startYear + i,\n label: (startYear + i).toString()\n })).filter((year) => {\n if (year.value === calendarYear) {\n return true;\n }\n if (!shouldAllowFutureDateSelection && year.value > currentYear) {\n return false;\n }\n // If maxDays is specified, filter out years beyond maxDate\n if (maxDays) {\n const today = new Date();\n const maxDate = new Date(today);\n maxDate.setDate(maxDate.getDate() + maxDays);\n return year.value <= maxDate.getFullYear();\n }\n return true;\n });\n };\n\n const handleClear = () => {\n const today = new Date();\n const startDate = new Date();\n\n // Set start date to beginning of today\n startDate.setHours(0, 0, 0, 0);\n\n // Set end date to end of today\n today.setHours(23, 59, 59, 999);\n\n const defaultRange = { startDate, endDate: today };\n setSelectedRange(defaultRange);\n };\n\n const getStartOfDay = (date: Date) => {\n const newDate = new Date(date);\n newDate.setHours(0, 0, 0, 0);\n return newDate;\n };\n\n const getEndOfDay = (date: Date) => {\n const newDate = new Date(date);\n newDate.setHours(23, 59, 59, 999);\n return newDate;\n };\n\n const handleQuickAction = (action: string) => {\n const today = new Date();\n let startDate = new Date();\n let endDate = new Date();\n\n switch (action) {\n case 'Today':\n startDate = getStartOfDay(today);\n endDate = getEndOfDay(today);\n break;\n case 'Yesterday':\n startDate = getStartOfDay(new Date(today.setDate(today.getDate() - 1)));\n endDate = getEndOfDay(new Date(today));\n break;\n case 'This Week':\n const firstDayOfWeek = new Date(today.setDate(today.getDate() - today.getDay()));\n startDate = getStartOfDay(firstDayOfWeek);\n endDate = getEndOfDay(new Date());\n break;\n case 'Last Week':\n const lastWeekStart = new Date(today.setDate(today.getDate() - today.getDay() - 7));\n const lastWeekEnd = new Date(today.setDate(lastWeekStart.getDate() + 6));\n startDate = getStartOfDay(lastWeekStart);\n endDate = getEndOfDay(lastWeekEnd);\n break;\n case 'This Month':\n startDate = getStartOfDay(new Date(today.getFullYear(), today.getMonth(), 1));\n endDate = getEndOfDay(new Date());\n break;\n case 'Last Month':\n startDate = getStartOfDay(new Date(today.getFullYear(), today.getMonth() - 1, 1));\n endDate = getEndOfDay(new Date(today.getFullYear(), today.getMonth(), 0));\n break;\n }\n\n setSelectedRange({ startDate, endDate });\n };\n\n const renderQuickActions = () => {\n return (\n <div className=\"w-[147px] p-4 border-r border-[var(--color-gray-200)]\">\n <div role=\"group\" aria-label=\"Quick date selections\" className=\"flex flex-col gap-3\">\n {quickActions.map((action) => (\n <Button key={action} label={action} type=\"link\" onClick={() => handleQuickAction(action)} />\n ))}\n </div>\n </div>\n );\n };\n\n const handleApply = () => {\n const { startDate = null, endDate = null } = selectedRange;\n\n if (startDate && endDate) {\n onApply({ startDate, endDate });\n return;\n }\n\n if (startDate || endDate) {\n const selectedDate = startDate || endDate;\n onApply({ startDate: selectedDate, endDate: selectedDate });\n }\n };\n\n const renderCalendar = (date: Date) => {\n const year = date.getFullYear();\n const month = date.getMonth();\n const days = generateCalendarDays(year, month);\n const currentYear = new Date().getFullYear();\n const isLeftCalendar = date.getTime() === leftMonth.getTime();\n const yearOptions = getYearOptions(currentYear, year);\n const monthHeading = new Date(year, month, 1).toLocaleString('en-US', { month: 'long', year: 'numeric' });\n const getGridContainerProps = isLeftCalendar ? getLeftContainerProps : getRightContainerProps;\n const gridInstructionsId = `calendar-instructions-${isLeftCalendar ? 'left' : 'right'}`;\n const gridInstructions = singleDateSelection\n ? 'Press Enter or Space to select a date. Use arrow keys to navigate days, Page Up and Page Down to change months.'\n : 'Press Enter or Space to select a start date, then again to select an end date. Use arrow keys to navigate days, Page Up and Page Down to change months.';\n\n const getCellProps = getGridCellProps({ isLeftCalendar, isDateDisabled, handleDateClick });\n\n // Group flat days array into rows of 7 for ARIA grid row/gridcell structure\n const rows: (Date | null)[][] = [];\n for (let i = 0; i < days.length; i += 7) {\n const row = days.slice(i, i + 7);\n while (row.length < 7) row.push(null);\n rows.push(row);\n }\n\n const today = new Date();\n const isPrevMonthDisabled =\n disablePastDates &&\n date.getMonth() === today.getMonth() &&\n date.getFullYear() === today.getFullYear();\n const isNextMonthDisabled =\n (!shouldAllowFutureDateSelection &&\n month === today.getMonth() &&\n year === today.getFullYear()) ||\n (maxDays !== undefined &&\n (() => {\n const maxDate = new Date(today);\n maxDate.setDate(maxDate.getDate() + maxDays);\n return date.getMonth() === maxDate.getMonth() && date.getFullYear() === maxDate.getFullYear();\n })());\n\n return (\n <div className=\"se-design-calendar-container w-fit p-4\">\n <div className=\"flex justify-between items-center\">\n <Icon\n name=\"chevron\"\n rotation=\"90\"\n size={16}\n disabled={isPrevMonthDisabled}\n onClick={() => {\n const newDate = handleMonthNavigation(date, false);\n // Check if navigating back would go before today when disablePastDates is true\n if (disablePastDates) {\n const todayCheck = new Date();\n todayCheck.setHours(0, 0, 0, 0);\n if (newDate < todayCheck && newDate.getMonth() !== todayCheck.getMonth()) {\n return; // Don't navigate to past months\n }\n }\n handleMonthChange(newDate, isLeftCalendar);\n }}\n automationId={`${automationId}-previous-month`}\n ariaLabel={showSingleMonth ? 'Previous month' : isLeftCalendar ? 'Previous month of starting date' : 'Previous month of end date'}\n />\n\n <div className=\"flex gap-2\" onClick={(e) => e.stopPropagation()}>\n <Dropdown\n type=\"select\"\n dropDownOptions={months}\n defaultSelectedValue={months[month]}\n selectBy=\"label\"\n optionsUniqueBy=\"value\"\n displaySelected={true}\n ariaLabel={showSingleMonth ? 'Month' : isLeftCalendar ? 'Month of starting date' : 'Month of end date'}\n onOptionClick={(selectedOption) => {\n const newDate = new Date(date);\n newDate.setMonth(months.findIndex((m) => m.value === selectedOption.value));\n handleMonthChange(newDate, isLeftCalendar);\n }}\n className=\"w-[124px] dropdown-option-container\"\n />\n <Dropdown\n type=\"select\"\n dropDownOptions={yearOptions}\n defaultSelectedValue={yearOptions.find((y) => y.value === year)}\n selectBy=\"label\"\n optionsUniqueBy=\"value\"\n displaySelected={true}\n ariaLabel={showSingleMonth ? 'Year' : isLeftCalendar ? 'Year of starting date' : 'Year of end date'}\n onOptionClick={(selectedOption) => {\n const newDate = new Date(date);\n newDate.setFullYear(selectedOption.value);\n handleMonthChange(newDate, isLeftCalendar);\n }}\n className=\"w-[104px] dropdown-option-container\"\n />\n </div>\n\n <Icon\n name=\"chevron\"\n rotation=\"270\"\n size={16}\n disabled={isNextMonthDisabled}\n onClick={() => {\n const newDate = handleMonthNavigation(date, true);\n // Check if the new date would exceed maxDays\n if (maxDays !== undefined) {\n const today = new Date();\n const maxDate = new Date(today);\n maxDate.setDate(maxDate.getDate() + maxDays);\n if (newDate > maxDate) {\n return;\n }\n }\n handleMonthChange(newDate, isLeftCalendar);\n }}\n automationId={`${automationId}-next-month`}\n ariaLabel={showSingleMonth ? 'Next month' : isLeftCalendar ? 'Next month of starting date' : 'Next month of end date'}\n />\n </div>\n\n {/* Calendar grid with ARIA grid/row/gridcell/columnheader roles */}\n <span id={gridInstructionsId} className=\"sr-only\">\n {gridInstructions}\n </span>\n <div {...getGridContainerProps({ ariaLabel: monthHeading, ariaDescribedBy: gridInstructionsId })} className=\"mt-3\">\n {/* Column headers (week days) */}\n <div role=\"row\" className=\"grid grid-cols-7 gap-2\">\n {weekDays.map((day, index) => (\n <abbr\n key={`${day}-${index}`}\n role=\"columnheader\"\n aria-label={weekDaysFull[index]}\n title={weekDaysFull[index]}\n className=\"datepicker-weekdays\"\n >\n {day}\n </abbr>\n ))}\n </div>\n\n {/* Day rows */}\n {rows.map((row, rowIdx) => (\n <div key={rowIdx} role=\"row\" className=\"grid grid-cols-7 gap-2\">\n {row.map((cellDate, colIdx) => {\n if (!cellDate) {\n return (\n <div\n key={`empty-${rowIdx}-${colIdx}`}\n role=\"gridcell\"\n aria-hidden=\"true\"\n className=\"h-10 w-10\"\n />\n );\n }\n\n const cellId = formatDateId(cellDate);\n const isStart = isStartDate(cellDate);\n const isEnd = isEndDate(cellDate);\n const isSameStartEnd = isSameStartAndEndDate(cellDate);\n const inRange = !isStart && !isEnd && isDateInRange(cellDate);\n const todayDate = isToday(cellDate);\n const disabled = isDateDisabled(cellDate);\n\n const { ref: cellRef, ...cellProps } = getCellProps({\n cellId,\n cellDate,\n disabled,\n ariaLabel: getCellAriaLabel(cellDate, isStart, isEnd, isSameStartEnd, singleDateSelection),\n ariaSelected: isStart || isEnd || inRange,\n ariaCurrent: todayDate ? 'date' : undefined,\n ariaDisabled: disabled || undefined\n });\n\n return (\n <div\n key={cellId}\n {...cellProps}\n ref={cellRef as React.Ref<HTMLDivElement>}\n className={`\n relative h-10 w-10 flex items-center justify-center transition-colors rounded-md focus-outline\n ${\n disabled ? 'cursor-not-allowed text-[var(--color-gray-600)] hover:bg-transparent' : 'cursor-pointer'\n }\n ${\n isSameStartEnd\n ? 'bg-[var(--color-blue-500)] text-[var(--color-white)] hover:bg-[var(--color-blue-600)]'\n : ''\n }\n ${\n !isSameStartEnd && isStart\n ? 'bg-[var(--color-blue-500)] text-[var(--color-white)] hover:bg-[var(--color-blue-600)]'\n : ''\n }\n ${\n !isSameStartEnd && isEnd\n ? 'bg-[var(--color-blue-500)] text-[var(--color-white)] hover:bg-[var(--color-blue-600)]'\n : ''\n }\n ${!isStart && !isEnd && inRange ? 'bg-[var(--color-blue-100)] text-[var(--color-blue-600)] outline outline-1 outline-[var(--color-blue-500)]' : ''}\n ${!isStart && !isEnd && !inRange && !disabled ? 'hover:bg-[var(--color-blue-100)] hover:outline hover:outline-1 hover:outline-[var(--color-blue-500)]' : ''}\n ${todayDate && !isStart && !isEnd ? 'text-[var(--color-blue-500)] bg-[var(--color-blue-100)] outline outline-1 outline-[var(--color-blue-500)]' : ''}\n ${!disabled && !isStart && !isEnd && !todayDate ? 'text-[var(--color-blue-500)]' : ''}\n `}\n data-automation-id={`${automationId}-date-${cellDate.getDate()}`}\n >\n {cellDate.getDate()}\n {!isSameStartEnd && (isStart || isEnd) && (\n <div\n className={`absolute top-0 bottom-0 ${isStart ? 'right-[-8px]' : 'left-[-8px]'} w-[8px]\n bg-[var(--color-blue-100)] -z-10`}\n />\n )}\n </div>\n );\n })}\n </div>\n ))}\n </div>\n </div>\n );\n };\n\n return (\n <div\n className={`se-design-datepicker-container flex flex-col bg-[var(--color-white)] rounded-md shadow-md w-max max-w-full ${className}`}\n >\n {showHeader && (\n <div className=\"se-design-datepicker-header flex justify-between items-center border-b border-[var(--color-gray-200)] p-4\">\n <h2 className=\"datepicker-title\">{title}</h2>\n {onClose && (\n <Icon\n name=\"close\"\n size={16}\n onClick={onClose}\n className=\"cursor-pointer\"\n automationId={`${automationId}-close`}\n ariaLabel=\"Close date picker\"\n />\n )}\n </div>\n )}\n <div className=\"se-design-datepicker-content flex\">\n {showQuickActions && renderQuickActions()}\n <div className=\"flex\">\n {showSingleMonth ? (\n renderCalendar(leftMonth)\n ) : (\n <>\n {renderCalendar(leftMonth)}\n <div className=\"h-full w-[1px] border-r border-[var(--color-gray-200)]\" aria-hidden=\"true\"></div>\n {renderCalendar(rightMonth)}\n </>\n )}\n </div>\n </div>\n {!singleDateSelection && (\n <div className=\"se-design-datepicker-footer flex justify-end items-center gap-5 p-4 border-t border-[var(--color-gray-200)]\">\n <Button\n label={labels?.clear || 'Clear'}\n type=\"ghost\"\n onClick={handleClear}\n data-automation-id={`${automationId}-clear-button`}\n />\n <Button\n label={labels?.apply || 'Apply'}\n type=\"primary\"\n onClick={handleApply}\n data-automation-id={`${automationId}-apply-button`}\n />\n </div>\n )}\n\n </div>\n );\n};\n"],"names":["weekDays","weekDaysFull","quickActions","months","value","label","getDaysInMonth","year","month","Date","getDate","getFirstDayOfMonth","getDay","DatePicker","title","showHeader","initialStartDate","initialEndDate","onApply","onClose","shouldAllowFutureDateSelection","maxDays","disablePastDates","singleDateSelection","minYearOption","showQuickActions","showSingleMonth","className","automationId","labels","clear","apply","getDefaultDateRange","startDate","endDate","setHours","getDefaultMonths","today","lastMonth","setDate","setMonth","getMonth","selectedRange","setSelectedRange","useState","defaultMonths","leftMonth","setLeftMonth","rightMonth","setRightMonth","ensureDateInCorrectOrder","leftDate","rightDate","getTime","handleMonthChange","newDate","isLeftCalendar","newLeft","newRight","getGridCellProps","getLeftContainerProps","getRightContainerProps","useDatePickerA11y","onMonthChange","generateCalendarDays","daysInMonth","firstDay","days","i","push","day","date","isSameDay","date1","date2","getFullYear","isDateInRange","compareDate","isToday","isDateDisabled","dateToCheck","maxDate","handleDateClick","clickedDate","currentStart","handleMonthNavigation","increment","isStartDate","isEndDate","isSameStartAndEndDate","getYearOptions","currentYear","calendarYear","startYear","endYear","maxYear","Math","min","max","yearCount","Array","from","length","_","toString","filter","handleClear","getStartOfDay","getEndOfDay","handleQuickAction","action","firstDayOfWeek","lastWeekStart","lastWeekEnd","renderQuickActions","React","createElement","role","map","Button","key","type","onClick","handleApply","selectedDate","renderCalendar","yearOptions","monthHeading","toLocaleString","getGridContainerProps","gridInstructionsId","gridInstructions","getCellProps","rows","row","slice","isPrevMonthDisabled","isNextMonthDisabled","undefined","Icon","name","rotation","size","disabled","todayCheck","ariaLabel","e","stopPropagation","Dropdown","dropDownOptions","defaultSelectedValue","selectBy","optionsUniqueBy","displaySelected","onOptionClick","selectedOption","findIndex","m","find","y","setFullYear","id","_extends","ariaDescribedBy","index","rowIdx","cellDate","colIdx","cellId","formatDateId","isStart","isEnd","isSameStartEnd","inRange","todayDate","ref","cellRef","cellProps","getCellAriaLabel","ariaSelected","ariaCurrent","ariaDisabled","Fragment"],"mappings":"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"}
|
package/dist/index53.js
CHANGED
package/dist/index63.js
CHANGED
|
@@ -2,7 +2,7 @@ import F, { useState as ot, useRef as X, useEffect as $ } from "react";
|
|
|
2
2
|
import { createPortal as nt } from "react-dom";
|
|
3
3
|
import { Icon as it } from "./index6.js";
|
|
4
4
|
import { Button as rt } from "./index4.js";
|
|
5
|
-
import { debounce as lt } from "./
|
|
5
|
+
import { debounce as lt } from "./index217.js";
|
|
6
6
|
const q = 500, S = 50, U = 150, st = {
|
|
7
7
|
"top-left": {
|
|
8
8
|
rotate: "315",
|
package/dist/index76.js
CHANGED
package/package.json
CHANGED
package/dist/index236.js
DELETED
package/dist/index236.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index236.js","sources":["../src/utils/delay.ts"],"sourcesContent":["/**\n * Delays execution by the specified number of milliseconds\n * @param ms - The number of milliseconds to delay\n * @returns A Promise that resolves after the specified delay\n */\nexport function delay(ms: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, ms));\n} "],"names":["delay","ms","Promise","resolve","setTimeout"],"mappings":"AAKO,SAASA,EAAMC,GAA2B;AAC7C,SAAO,IAAIC,QAAQC,CAAAA,MAAWC,WAAWD,GAASF,CAAE,CAAC;AACzD;"}
|
package/dist/index239.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
function r(t, i) {
|
|
2
|
-
if (t == null) return {};
|
|
3
|
-
var o = {};
|
|
4
|
-
for (var e in t) if ({}.hasOwnProperty.call(t, e)) {
|
|
5
|
-
if (i.indexOf(e) !== -1) continue;
|
|
6
|
-
o[e] = t[e];
|
|
7
|
-
}
|
|
8
|
-
return o;
|
|
9
|
-
}
|
|
10
|
-
export {
|
|
11
|
-
r as default
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=index239.js.map
|
package/dist/index239.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index239.js","sources":["../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js"],"sourcesContent":["function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };"],"names":["_objectWithoutPropertiesLoose","r","e","t","n"],"mappings":"AAAA,SAASA,EAA8BC,GAAGC,GAAG;AAC3C,MAAYD,KAAR,KAAW,QAAO,CAAA;AACtB,MAAIE,IAAI,CAAA;AACR,WAASC,KAAKH,EAAG,KAAI,CAAA,EAAG,eAAe,KAAKA,GAAGG,CAAC,GAAG;AACjD,QAAWF,EAAE,QAAQE,CAAC,MAAlB,GAAqB;AACzB,IAAAD,EAAEC,CAAC,IAAIH,EAAEG,CAAC;AAAA,EACZ;AACA,SAAOD;AACT;","x_google_ignoreList":[0]}
|