@mantine/dates 7.17.0 → 8.0.0-alpha.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.
- package/cjs/components/Calendar/Calendar.cjs +13 -17
- package/cjs/components/Calendar/Calendar.cjs.map +1 -1
- package/cjs/components/CalendarHeader/CalendarHeader.cjs.map +1 -1
- package/cjs/components/DateInput/DateInput.cjs +3 -9
- package/cjs/components/DateInput/DateInput.cjs.map +1 -1
- package/cjs/components/DateInput/date-string-parser/date-string-parser.cjs +8 -5
- package/cjs/components/DateInput/date-string-parser/date-string-parser.cjs.map +1 -1
- package/cjs/components/DateInput/is-date-valid/is-date-valid.cjs +1 -1
- package/cjs/components/DateInput/is-date-valid/is-date-valid.cjs.map +1 -1
- package/cjs/components/DatePicker/DatePicker.cjs +3 -10
- package/cjs/components/DatePicker/DatePicker.cjs.map +1 -1
- package/cjs/components/DatePickerInput/DatePickerInput.cjs +3 -9
- package/cjs/components/DatePickerInput/DatePickerInput.cjs.map +1 -1
- package/cjs/components/DateTimePicker/DateTimePicker.cjs +34 -34
- package/cjs/components/DateTimePicker/DateTimePicker.cjs.map +1 -1
- package/cjs/components/DateTimePicker/get-min-max-time/get-min-max-time.cjs +21 -0
- package/cjs/components/DateTimePicker/get-min-max-time/get-min-max-time.cjs.map +1 -0
- package/cjs/components/DatesProvider/DatesProvider.cjs +0 -1
- package/cjs/components/DatesProvider/DatesProvider.cjs.map +1 -1
- package/cjs/components/DatesProvider/use-dates-context.cjs +0 -5
- package/cjs/components/DatesProvider/use-dates-context.cjs.map +1 -1
- package/cjs/components/Day/Day.cjs +1 -5
- package/cjs/components/Day/Day.cjs.map +1 -1
- package/cjs/components/DecadeLevel/DecadeLevel.cjs.map +1 -1
- package/cjs/components/DecadeLevel/get-decade-range/get-decade-range.cjs.map +1 -1
- package/cjs/components/DecadeLevelGroup/DecadeLevelGroup.cjs +2 -3
- package/cjs/components/DecadeLevelGroup/DecadeLevelGroup.cjs.map +1 -1
- package/cjs/components/HiddenDatesInput/HiddenDatesInput.cjs +17 -15
- package/cjs/components/HiddenDatesInput/HiddenDatesInput.cjs.map +1 -1
- package/cjs/components/Month/Month.cjs +7 -6
- package/cjs/components/Month/Month.cjs.map +1 -1
- package/cjs/components/Month/get-date-in-tab-order/get-date-in-tab-order.cjs +11 -3
- package/cjs/components/Month/get-date-in-tab-order/get-date-in-tab-order.cjs.map +1 -1
- package/cjs/components/Month/get-end-of-week/get-end-of-week.cjs +1 -1
- package/cjs/components/Month/get-end-of-week/get-end-of-week.cjs.map +1 -1
- package/cjs/components/Month/get-month-days/get-month-days.cjs +10 -11
- package/cjs/components/Month/get-month-days/get-month-days.cjs.map +1 -1
- package/cjs/components/Month/get-start-of-week/get-start-of-week.cjs +1 -1
- package/cjs/components/Month/get-start-of-week/get-start-of-week.cjs.map +1 -1
- package/cjs/components/Month/get-week-number/get-week-number.cjs.map +1 -1
- package/cjs/components/Month/is-after-min-date/is-after-min-date.cjs +1 -1
- package/cjs/components/Month/is-after-min-date/is-after-min-date.cjs.map +1 -1
- package/cjs/components/Month/is-before-max-date/is-before-max-date.cjs +1 -1
- package/cjs/components/Month/is-before-max-date/is-before-max-date.cjs.map +1 -1
- package/cjs/components/MonthLevel/MonthLevel.cjs.map +1 -1
- package/cjs/components/MonthLevelGroup/MonthLevelGroup.cjs +2 -3
- package/cjs/components/MonthLevelGroup/MonthLevelGroup.cjs.map +1 -1
- package/cjs/components/MonthPicker/MonthPicker.cjs +3 -10
- package/cjs/components/MonthPicker/MonthPicker.cjs.map +1 -1
- package/cjs/components/MonthPickerInput/MonthPickerInput.cjs +2 -8
- package/cjs/components/MonthPickerInput/MonthPickerInput.cjs.map +1 -1
- package/cjs/components/MonthsList/MonthsList.cjs +12 -2
- package/cjs/components/MonthsList/MonthsList.cjs.map +1 -1
- package/cjs/components/MonthsList/get-month-in-tab-order/get-month-in-tab-order.cjs +7 -2
- package/cjs/components/MonthsList/get-month-in-tab-order/get-month-in-tab-order.cjs.map +1 -1
- package/cjs/components/MonthsList/get-months-data/get-months-data.cjs +1 -1
- package/cjs/components/MonthsList/get-months-data/get-months-data.cjs.map +1 -1
- package/cjs/components/MonthsList/is-month-disabled/is-month-disabled.cjs +1 -1
- package/cjs/components/MonthsList/is-month-disabled/is-month-disabled.cjs.map +1 -1
- package/cjs/components/PickerControl/PickerControl.cjs.map +1 -1
- package/cjs/components/PickerInputBase/PickerInputBase.cjs +4 -1
- package/cjs/components/PickerInputBase/PickerInputBase.cjs.map +1 -1
- package/cjs/components/SpinInput/SpinInput.cjs +115 -0
- package/cjs/components/SpinInput/SpinInput.cjs.map +1 -0
- package/cjs/components/TimeGrid/TimeGrid.cjs +104 -0
- package/cjs/components/TimeGrid/TimeGrid.cjs.map +1 -0
- package/cjs/components/TimeGrid/TimeGrid.context.cjs +12 -0
- package/cjs/components/TimeGrid/TimeGrid.context.cjs.map +1 -0
- package/cjs/components/TimeGrid/TimeGrid.module.css.cjs +7 -0
- package/cjs/components/TimeGrid/TimeGrid.module.css.cjs.map +1 -0
- package/cjs/components/TimeGrid/TimeGridControl.cjs +37 -0
- package/cjs/components/TimeGrid/TimeGridControl.cjs.map +1 -0
- package/cjs/components/TimeGrid/compare-time.cjs +15 -0
- package/cjs/components/TimeGrid/compare-time.cjs.map +1 -0
- package/cjs/components/TimeInput/TimeInput.cjs.map +1 -1
- package/cjs/components/TimePicker/AmPmInput/AmPmInput.cjs +72 -0
- package/cjs/components/TimePicker/AmPmInput/AmPmInput.cjs.map +1 -0
- package/cjs/components/TimePicker/TimeControlsList/AmPmControlsList.cjs +16 -0
- package/cjs/components/TimePicker/TimeControlsList/AmPmControlsList.cjs.map +1 -0
- package/cjs/components/TimePicker/TimeControlsList/TimeControl.cjs +27 -0
- package/cjs/components/TimePicker/TimeControlsList/TimeControl.cjs.map +1 -0
- package/cjs/components/TimePicker/TimeControlsList/TimeControlsList.cjs +54 -0
- package/cjs/components/TimePicker/TimeControlsList/TimeControlsList.cjs.map +1 -0
- package/cjs/components/TimePicker/TimePicker.cjs +387 -0
- package/cjs/components/TimePicker/TimePicker.cjs.map +1 -0
- package/cjs/components/TimePicker/TimePicker.context.cjs +12 -0
- package/cjs/components/TimePicker/TimePicker.context.cjs.map +1 -0
- package/cjs/components/TimePicker/TimePicker.module.css.cjs +7 -0
- package/cjs/components/TimePicker/TimePicker.module.css.cjs.map +1 -0
- package/cjs/components/TimePicker/TimePresets/TimePresetControl.cjs +31 -0
- package/cjs/components/TimePicker/TimePresets/TimePresetControl.cjs.map +1 -0
- package/cjs/components/TimePicker/TimePresets/TimePresetGroup.cjs +39 -0
- package/cjs/components/TimePicker/TimePresets/TimePresetGroup.cjs.map +1 -0
- package/cjs/components/TimePicker/TimePresets/TimePresets.cjs +73 -0
- package/cjs/components/TimePicker/TimePresets/TimePresets.cjs.map +1 -0
- package/cjs/components/TimePicker/use-time-picker.cjs +164 -0
- package/cjs/components/TimePicker/use-time-picker.cjs.map +1 -0
- package/cjs/components/TimePicker/utils/clamp-time/clamp-time.cjs +15 -0
- package/cjs/components/TimePicker/utils/clamp-time/clamp-time.cjs.map +1 -0
- package/cjs/components/TimePicker/utils/get-parsed-time/get-parsed-time.cjs +38 -0
- package/cjs/components/TimePicker/utils/get-parsed-time/get-parsed-time.cjs.map +1 -0
- package/cjs/components/TimePicker/utils/get-time-range/get-time-range.cjs +18 -0
- package/cjs/components/TimePicker/utils/get-time-range/get-time-range.cjs.map +1 -0
- package/cjs/components/TimePicker/utils/get-time-string/get-time-string.cjs +51 -0
- package/cjs/components/TimePicker/utils/get-time-string/get-time-string.cjs.map +1 -0
- package/cjs/components/TimePicker/utils/is-same-time/is-same-time.cjs +16 -0
- package/cjs/components/TimePicker/utils/is-same-time/is-same-time.cjs.map +1 -0
- package/cjs/components/TimePicker/utils/pad-time/pad-time.cjs +9 -0
- package/cjs/components/TimePicker/utils/pad-time/pad-time.cjs.map +1 -0
- package/cjs/components/TimePicker/utils/split-time-string/split-time-string.cjs +10 -0
- package/cjs/components/TimePicker/utils/split-time-string/split-time-string.cjs.map +1 -0
- package/cjs/components/TimePicker/utils/time-to-seconds/time-to-seconds.cjs +24 -0
- package/cjs/components/TimePicker/utils/time-to-seconds/time-to-seconds.cjs.map +1 -0
- package/cjs/components/TimeValue/TimeValue.cjs +18 -0
- package/cjs/components/TimeValue/TimeValue.cjs.map +1 -0
- package/cjs/components/TimeValue/get-formatted-time/get-formatted-time.cjs +31 -0
- package/cjs/components/TimeValue/get-formatted-time/get-formatted-time.cjs.map +1 -0
- package/cjs/components/WeekdaysRow/WeekdaysRow.cjs.map +1 -1
- package/cjs/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.cjs +1 -1
- package/cjs/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.cjs.map +1 -1
- package/cjs/components/YearLevel/YearLevel.cjs.map +1 -1
- package/cjs/components/YearLevelGroup/YearLevelGroup.cjs +2 -3
- package/cjs/components/YearLevelGroup/YearLevelGroup.cjs.map +1 -1
- package/cjs/components/YearPicker/YearPicker.cjs +3 -10
- package/cjs/components/YearPicker/YearPicker.cjs.map +1 -1
- package/cjs/components/YearPickerInput/YearPickerInput.cjs +3 -9
- package/cjs/components/YearPickerInput/YearPickerInput.cjs.map +1 -1
- package/cjs/components/YearsList/YearsList.cjs +7 -2
- package/cjs/components/YearsList/YearsList.cjs.map +1 -1
- package/cjs/components/YearsList/get-year-in-tab-order/get-year-in-tab-order.cjs +7 -2
- package/cjs/components/YearsList/get-year-in-tab-order/get-year-in-tab-order.cjs.map +1 -1
- package/cjs/components/YearsList/get-years-data/get-years-data.cjs +8 -2
- package/cjs/components/YearsList/get-years-data/get-years-data.cjs.map +1 -1
- package/cjs/components/YearsList/is-year-disabled/is-year-disabled.cjs +1 -1
- package/cjs/components/YearsList/is-year-disabled/is-year-disabled.cjs.map +1 -1
- package/cjs/hooks/use-dates-input/use-dates-input.cjs +7 -4
- package/cjs/hooks/use-dates-input/use-dates-input.cjs.map +1 -1
- package/cjs/hooks/use-dates-state/is-in-range/is-in-range.cjs +1 -1
- package/cjs/hooks/use-dates-state/is-in-range/is-in-range.cjs.map +1 -1
- package/cjs/hooks/use-dates-state/use-dates-state.cjs +10 -12
- package/cjs/hooks/use-dates-state/use-dates-state.cjs.map +1 -1
- package/cjs/hooks/use-uncontrolled-dates/use-uncontrolled-dates.cjs +10 -34
- package/cjs/hooks/use-uncontrolled-dates/use-uncontrolled-dates.cjs.map +1 -1
- package/cjs/index.cjs +19 -5
- package/cjs/index.cjs.map +1 -1
- package/cjs/utils/assign-time/assign-time.cjs +16 -13
- package/cjs/utils/assign-time/assign-time.cjs.map +1 -1
- package/cjs/utils/clamp-date/clamp-date.cjs +25 -0
- package/cjs/utils/clamp-date/clamp-date.cjs.map +1 -0
- package/cjs/utils/get-default-clamped-date/get-default-clamped-date.cjs +29 -0
- package/cjs/utils/get-default-clamped-date/get-default-clamped-date.cjs.map +1 -0
- package/cjs/utils/get-formatted-date/get-formatted-date.cjs +41 -0
- package/cjs/utils/get-formatted-date/get-formatted-date.cjs.map +1 -0
- package/cjs/utils/handle-control-key-down/handle-control-key-down.cjs +158 -0
- package/cjs/utils/handle-control-key-down/handle-control-key-down.cjs.map +1 -0
- package/cjs/utils/to-date-string/to-date-string.cjs +19 -0
- package/cjs/utils/to-date-string/to-date-string.cjs.map +1 -0
- package/esm/components/Calendar/Calendar.mjs +13 -17
- package/esm/components/Calendar/Calendar.mjs.map +1 -1
- package/esm/components/CalendarHeader/CalendarHeader.mjs.map +1 -1
- package/esm/components/DateInput/DateInput.mjs +3 -9
- package/esm/components/DateInput/DateInput.mjs.map +1 -1
- package/esm/components/DateInput/date-string-parser/date-string-parser.mjs +4 -5
- package/esm/components/DateInput/date-string-parser/date-string-parser.mjs.map +1 -1
- package/esm/components/DateInput/is-date-valid/is-date-valid.mjs +1 -1
- package/esm/components/DateInput/is-date-valid/is-date-valid.mjs.map +1 -1
- package/esm/components/DatePicker/DatePicker.mjs +3 -10
- package/esm/components/DatePicker/DatePicker.mjs.map +1 -1
- package/esm/components/DatePickerInput/DatePickerInput.mjs +3 -9
- package/esm/components/DatePickerInput/DatePickerInput.mjs.map +1 -1
- package/esm/components/DateTimePicker/DateTimePicker.mjs +34 -34
- package/esm/components/DateTimePicker/DateTimePicker.mjs.map +1 -1
- package/esm/components/DateTimePicker/get-min-max-time/get-min-max-time.mjs +14 -0
- package/esm/components/DateTimePicker/get-min-max-time/get-min-max-time.mjs.map +1 -0
- package/esm/components/DatesProvider/DatesProvider.mjs +0 -1
- package/esm/components/DatesProvider/DatesProvider.mjs.map +1 -1
- package/esm/components/DatesProvider/use-dates-context.mjs +0 -5
- package/esm/components/DatesProvider/use-dates-context.mjs.map +1 -1
- package/esm/components/Day/Day.mjs +1 -5
- package/esm/components/Day/Day.mjs.map +1 -1
- package/esm/components/DecadeLevel/DecadeLevel.mjs.map +1 -1
- package/esm/components/DecadeLevel/get-decade-range/get-decade-range.mjs.map +1 -1
- package/esm/components/DecadeLevelGroup/DecadeLevelGroup.mjs +2 -3
- package/esm/components/DecadeLevelGroup/DecadeLevelGroup.mjs.map +1 -1
- package/esm/components/HiddenDatesInput/HiddenDatesInput.mjs +17 -15
- package/esm/components/HiddenDatesInput/HiddenDatesInput.mjs.map +1 -1
- package/esm/components/Month/Month.mjs +7 -6
- package/esm/components/Month/Month.mjs.map +1 -1
- package/esm/components/Month/get-date-in-tab-order/get-date-in-tab-order.mjs +11 -3
- package/esm/components/Month/get-date-in-tab-order/get-date-in-tab-order.mjs.map +1 -1
- package/esm/components/Month/get-end-of-week/get-end-of-week.mjs +1 -1
- package/esm/components/Month/get-end-of-week/get-end-of-week.mjs.map +1 -1
- package/esm/components/Month/get-month-days/get-month-days.mjs +10 -11
- package/esm/components/Month/get-month-days/get-month-days.mjs.map +1 -1
- package/esm/components/Month/get-start-of-week/get-start-of-week.mjs +1 -1
- package/esm/components/Month/get-start-of-week/get-start-of-week.mjs.map +1 -1
- package/esm/components/Month/get-week-number/get-week-number.mjs.map +1 -1
- package/esm/components/Month/is-after-min-date/is-after-min-date.mjs +1 -1
- package/esm/components/Month/is-after-min-date/is-after-min-date.mjs.map +1 -1
- package/esm/components/Month/is-before-max-date/is-before-max-date.mjs +1 -1
- package/esm/components/Month/is-before-max-date/is-before-max-date.mjs.map +1 -1
- package/esm/components/MonthLevel/MonthLevel.mjs.map +1 -1
- package/esm/components/MonthLevelGroup/MonthLevelGroup.mjs +2 -3
- package/esm/components/MonthLevelGroup/MonthLevelGroup.mjs.map +1 -1
- package/esm/components/MonthPicker/MonthPicker.mjs +3 -10
- package/esm/components/MonthPicker/MonthPicker.mjs.map +1 -1
- package/esm/components/MonthPickerInput/MonthPickerInput.mjs +2 -8
- package/esm/components/MonthPickerInput/MonthPickerInput.mjs.map +1 -1
- package/esm/components/MonthsList/MonthsList.mjs +12 -2
- package/esm/components/MonthsList/MonthsList.mjs.map +1 -1
- package/esm/components/MonthsList/get-month-in-tab-order/get-month-in-tab-order.mjs +7 -2
- package/esm/components/MonthsList/get-month-in-tab-order/get-month-in-tab-order.mjs.map +1 -1
- package/esm/components/MonthsList/get-months-data/get-months-data.mjs +1 -1
- package/esm/components/MonthsList/get-months-data/get-months-data.mjs.map +1 -1
- package/esm/components/MonthsList/is-month-disabled/is-month-disabled.mjs +1 -1
- package/esm/components/MonthsList/is-month-disabled/is-month-disabled.mjs.map +1 -1
- package/esm/components/PickerControl/PickerControl.mjs.map +1 -1
- package/esm/components/PickerInputBase/PickerInputBase.mjs +4 -1
- package/esm/components/PickerInputBase/PickerInputBase.mjs.map +1 -1
- package/esm/components/SpinInput/SpinInput.mjs +113 -0
- package/esm/components/SpinInput/SpinInput.mjs.map +1 -0
- package/esm/components/TimeGrid/TimeGrid.context.mjs +9 -0
- package/esm/components/TimeGrid/TimeGrid.context.mjs.map +1 -0
- package/esm/components/TimeGrid/TimeGrid.mjs +102 -0
- package/esm/components/TimeGrid/TimeGrid.mjs.map +1 -0
- package/esm/components/TimeGrid/TimeGrid.module.css.mjs +5 -0
- package/esm/components/TimeGrid/TimeGrid.module.css.mjs.map +1 -0
- package/esm/components/TimeGrid/TimeGridControl.mjs +31 -0
- package/esm/components/TimeGrid/TimeGridControl.mjs.map +1 -0
- package/esm/components/TimeGrid/compare-time.mjs +12 -0
- package/esm/components/TimeGrid/compare-time.mjs.map +1 -0
- package/esm/components/TimeInput/TimeInput.mjs.map +1 -1
- package/esm/components/TimePicker/AmPmInput/AmPmInput.mjs +70 -0
- package/esm/components/TimePicker/AmPmInput/AmPmInput.mjs.map +1 -0
- package/esm/components/TimePicker/TimeControlsList/AmPmControlsList.mjs +14 -0
- package/esm/components/TimePicker/TimeControlsList/AmPmControlsList.mjs.map +1 -0
- package/esm/components/TimePicker/TimeControlsList/TimeControl.mjs +25 -0
- package/esm/components/TimePicker/TimeControlsList/TimeControl.mjs.map +1 -0
- package/esm/components/TimePicker/TimeControlsList/TimeControlsList.mjs +52 -0
- package/esm/components/TimePicker/TimeControlsList/TimeControlsList.mjs.map +1 -0
- package/esm/components/TimePicker/TimePicker.context.mjs +9 -0
- package/esm/components/TimePicker/TimePicker.context.mjs.map +1 -0
- package/esm/components/TimePicker/TimePicker.mjs +385 -0
- package/esm/components/TimePicker/TimePicker.mjs.map +1 -0
- package/esm/components/TimePicker/TimePicker.module.css.mjs +5 -0
- package/esm/components/TimePicker/TimePicker.module.css.mjs.map +1 -0
- package/esm/components/TimePicker/TimePresets/TimePresetControl.mjs +29 -0
- package/esm/components/TimePicker/TimePresets/TimePresetControl.mjs.map +1 -0
- package/esm/components/TimePicker/TimePresets/TimePresetGroup.mjs +37 -0
- package/esm/components/TimePicker/TimePresets/TimePresetGroup.mjs.map +1 -0
- package/esm/components/TimePicker/TimePresets/TimePresets.mjs +71 -0
- package/esm/components/TimePicker/TimePresets/TimePresets.mjs.map +1 -0
- package/esm/components/TimePicker/use-time-picker.mjs +162 -0
- package/esm/components/TimePicker/use-time-picker.mjs.map +1 -0
- package/esm/components/TimePicker/utils/clamp-time/clamp-time.mjs +13 -0
- package/esm/components/TimePicker/utils/clamp-time/clamp-time.mjs.map +1 -0
- package/esm/components/TimePicker/utils/get-parsed-time/get-parsed-time.mjs +35 -0
- package/esm/components/TimePicker/utils/get-parsed-time/get-parsed-time.mjs.map +1 -0
- package/esm/components/TimePicker/utils/get-time-range/get-time-range.mjs +16 -0
- package/esm/components/TimePicker/utils/get-time-range/get-time-range.mjs.map +1 -0
- package/esm/components/TimePicker/utils/get-time-string/get-time-string.mjs +49 -0
- package/esm/components/TimePicker/utils/get-time-string/get-time-string.mjs.map +1 -0
- package/esm/components/TimePicker/utils/is-same-time/is-same-time.mjs +14 -0
- package/esm/components/TimePicker/utils/is-same-time/is-same-time.mjs.map +1 -0
- package/esm/components/TimePicker/utils/pad-time/pad-time.mjs +7 -0
- package/esm/components/TimePicker/utils/pad-time/pad-time.mjs.map +1 -0
- package/esm/components/TimePicker/utils/split-time-string/split-time-string.mjs +8 -0
- package/esm/components/TimePicker/utils/split-time-string/split-time-string.mjs.map +1 -0
- package/esm/components/TimePicker/utils/time-to-seconds/time-to-seconds.mjs +21 -0
- package/esm/components/TimePicker/utils/time-to-seconds/time-to-seconds.mjs.map +1 -0
- package/esm/components/TimeValue/TimeValue.mjs +16 -0
- package/esm/components/TimeValue/TimeValue.mjs.map +1 -0
- package/esm/components/TimeValue/get-formatted-time/get-formatted-time.mjs +29 -0
- package/esm/components/TimeValue/get-formatted-time/get-formatted-time.mjs.map +1 -0
- package/esm/components/WeekdaysRow/WeekdaysRow.mjs.map +1 -1
- package/esm/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.mjs +1 -1
- package/esm/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.mjs.map +1 -1
- package/esm/components/YearLevel/YearLevel.mjs.map +1 -1
- package/esm/components/YearLevelGroup/YearLevelGroup.mjs +2 -3
- package/esm/components/YearLevelGroup/YearLevelGroup.mjs.map +1 -1
- package/esm/components/YearPicker/YearPicker.mjs +3 -10
- package/esm/components/YearPicker/YearPicker.mjs.map +1 -1
- package/esm/components/YearPickerInput/YearPickerInput.mjs +3 -9
- package/esm/components/YearPickerInput/YearPickerInput.mjs.map +1 -1
- package/esm/components/YearsList/YearsList.mjs +7 -2
- package/esm/components/YearsList/YearsList.mjs.map +1 -1
- package/esm/components/YearsList/get-year-in-tab-order/get-year-in-tab-order.mjs +7 -2
- package/esm/components/YearsList/get-year-in-tab-order/get-year-in-tab-order.mjs.map +1 -1
- package/esm/components/YearsList/get-years-data/get-years-data.mjs +4 -2
- package/esm/components/YearsList/get-years-data/get-years-data.mjs.map +1 -1
- package/esm/components/YearsList/is-year-disabled/is-year-disabled.mjs +1 -1
- package/esm/components/YearsList/is-year-disabled/is-year-disabled.mjs.map +1 -1
- package/esm/hooks/use-dates-input/use-dates-input.mjs +3 -4
- package/esm/hooks/use-dates-input/use-dates-input.mjs.map +1 -1
- package/esm/hooks/use-dates-state/is-in-range/is-in-range.mjs +1 -1
- package/esm/hooks/use-dates-state/is-in-range/is-in-range.mjs.map +1 -1
- package/esm/hooks/use-dates-state/use-dates-state.mjs +10 -12
- package/esm/hooks/use-dates-state/use-dates-state.mjs.map +1 -1
- package/esm/hooks/use-uncontrolled-dates/use-uncontrolled-dates.mjs +10 -35
- package/esm/hooks/use-uncontrolled-dates/use-uncontrolled-dates.mjs.map +1 -1
- package/esm/index.mjs +10 -4
- package/esm/index.mjs.map +1 -1
- package/esm/utils/assign-time/assign-time.mjs +12 -13
- package/esm/utils/assign-time/assign-time.mjs.map +1 -1
- package/esm/utils/clamp-date/clamp-date.mjs +19 -0
- package/esm/utils/clamp-date/clamp-date.mjs.map +1 -0
- package/esm/utils/get-default-clamped-date/get-default-clamped-date.mjs +23 -0
- package/esm/utils/get-default-clamped-date/get-default-clamped-date.mjs.map +1 -0
- package/esm/utils/get-formatted-date/get-formatted-date.mjs +34 -0
- package/esm/utils/get-formatted-date/get-formatted-date.mjs.map +1 -0
- package/esm/utils/handle-control-key-down/handle-control-key-down.mjs +156 -0
- package/esm/utils/handle-control-key-down/handle-control-key-down.mjs.map +1 -0
- package/esm/utils/to-date-string/to-date-string.mjs +12 -0
- package/esm/utils/to-date-string/to-date-string.mjs.map +1 -0
- package/lib/components/Calendar/Calendar.d.ts +31 -33
- package/lib/components/CalendarHeader/CalendarHeader.d.ts +12 -12
- package/lib/components/DateInput/DateInput.d.ts +18 -20
- package/lib/components/DateInput/date-string-parser/date-string-parser.d.ts +2 -1
- package/lib/components/DateInput/is-date-valid/is-date-valid.d.ts +4 -3
- package/lib/components/DateInputMask/DateInputMask.d.ts +63 -0
- package/lib/components/DateInputMask/use-date-input-mask.d.ts +1 -0
- package/lib/components/DatePicker/DatePicker.d.ts +3 -3
- package/lib/components/DatePickerInput/DatePickerInput.d.ts +1 -1
- package/lib/components/DateTimePicker/DateTimePicker.d.ts +9 -11
- package/lib/components/DateTimePicker/get-min-max-time/get-min-max-time.d.ts +12 -0
- package/lib/components/DatesProvider/DatesProvider.d.ts +0 -1
- package/lib/components/DatesProvider/use-dates-context.d.ts +0 -2
- package/lib/components/Day/Day.d.ts +7 -5
- package/lib/components/Day/index.d.ts +1 -1
- package/lib/components/DecadeLevel/DecadeLevel.d.ts +6 -5
- package/lib/components/DecadeLevel/get-decade-range/get-decade-range.d.ts +2 -1
- package/lib/components/DecadeLevelGroup/DecadeLevelGroup.d.ts +6 -5
- package/lib/components/HiddenDatesInput/HiddenDatesInput.d.ts +2 -1
- package/lib/components/Month/Month.d.ts +25 -25
- package/lib/components/Month/get-date-in-tab-order/get-date-in-tab-order.d.ts +12 -1
- package/lib/components/Month/get-end-of-week/get-end-of-week.d.ts +2 -2
- package/lib/components/Month/get-month-days/get-month-days.d.ts +3 -3
- package/lib/components/Month/get-start-of-week/get-start-of-week.d.ts +2 -2
- package/lib/components/Month/get-week-number/get-week-number.d.ts +2 -1
- package/lib/components/Month/is-after-min-date/is-after-min-date.d.ts +2 -1
- package/lib/components/Month/is-before-max-date/is-before-max-date.d.ts +2 -1
- package/lib/components/MonthLevel/MonthLevel.d.ts +4 -3
- package/lib/components/MonthLevelGroup/MonthLevelGroup.d.ts +7 -6
- package/lib/components/MonthPicker/MonthPicker.d.ts +8 -8
- package/lib/components/MonthPickerInput/MonthPickerInput.d.ts +1 -1
- package/lib/components/MonthsList/MonthsList.d.ts +8 -8
- package/lib/components/MonthsList/get-month-in-tab-order/get-month-in-tab-order.d.ts +9 -1
- package/lib/components/MonthsList/get-months-data/get-months-data.d.ts +2 -1
- package/lib/components/MonthsList/is-month-disabled/is-month-disabled.d.ts +8 -1
- package/lib/components/PickerControl/PickerControl.d.ts +5 -5
- package/lib/components/PickerInputBase/PickerInputBase.d.ts +11 -8
- package/lib/components/SpinInput/SpinInput.d.ts +12 -0
- package/lib/components/SpinInput/index.d.ts +1 -0
- package/lib/components/TimeGrid/TimeGrid.context.d.ts +10 -0
- package/lib/components/TimeGrid/TimeGrid.d.ts +52 -0
- package/lib/components/TimeGrid/TimeGridControl.d.ts +10 -0
- package/lib/components/TimeGrid/compare-time.d.ts +2 -0
- package/lib/components/TimeGrid/index.d.ts +3 -0
- package/lib/components/TimeInput/TimeInput.d.ts +3 -3
- package/lib/components/TimePicker/AmPmInput/AmPmInput.d.ts +13 -0
- package/lib/components/TimePicker/TimeControlsList/AmPmControlsList.d.ts +13 -0
- package/lib/components/TimePicker/TimeControlsList/TimeControl.d.ts +10 -0
- package/lib/components/TimePicker/TimeControlsList/TimeControlsList.d.ts +12 -0
- package/lib/components/TimePicker/TimePicker.context.d.ts +12 -0
- package/lib/components/TimePicker/TimePicker.d.ts +98 -0
- package/lib/components/TimePicker/TimePicker.types.d.ts +22 -0
- package/lib/components/TimePicker/TimePresets/TimePresetControl.d.ts +14 -0
- package/lib/components/TimePicker/TimePresets/TimePresetGroup.d.ts +14 -0
- package/lib/components/TimePicker/TimePresets/TimePresets.d.ts +14 -0
- package/lib/components/TimePicker/index.d.ts +4 -0
- package/lib/components/TimePicker/use-time-picker.d.ts +40 -0
- package/lib/components/TimePicker/utils/clamp-time/clamp-time.d.ts +6 -0
- package/lib/components/TimePicker/utils/get-parsed-time/get-parsed-time.d.ts +35 -0
- package/lib/components/TimePicker/utils/get-time-range/get-time-range.d.ts +7 -0
- package/lib/components/TimePicker/utils/get-time-string/get-time-string.d.ts +15 -0
- package/lib/components/TimePicker/utils/is-same-time/is-same-time.d.ts +7 -0
- package/lib/components/TimePicker/utils/pad-time/pad-time.d.ts +1 -0
- package/lib/components/TimePicker/utils/split-time-string/split-time-string.d.ts +5 -0
- package/lib/components/TimePicker/utils/time-to-seconds/time-to-seconds.d.ts +7 -0
- package/lib/components/TimeValue/TimeValue.d.ts +15 -0
- package/lib/components/TimeValue/get-formatted-time/get-formatted-time.d.ts +8 -0
- package/lib/components/TimeValue/index.d.ts +2 -0
- package/lib/components/WeekdaysRow/WeekdaysRow.d.ts +7 -7
- package/lib/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.d.ts +2 -2
- package/lib/components/YearLevel/YearLevel.d.ts +6 -5
- package/lib/components/YearLevelGroup/YearLevelGroup.d.ts +6 -5
- package/lib/components/YearPicker/YearPicker.d.ts +2 -2
- package/lib/components/YearPickerInput/YearPickerInput.d.ts +1 -1
- package/lib/components/YearsList/YearsList.d.ts +7 -7
- package/lib/components/YearsList/get-year-in-tab-order/get-year-in-tab-order.d.ts +9 -1
- package/lib/components/YearsList/get-years-data/get-years-data.d.ts +2 -1
- package/lib/components/YearsList/is-year-disabled/is-year-disabled.d.ts +8 -1
- package/lib/hooks/use-dates-state/is-in-range/is-in-range.d.ts +2 -1
- package/lib/hooks/use-dates-state/use-dates-state.d.ts +5 -6
- package/lib/hooks/use-uncontrolled-dates/use-uncontrolled-dates.d.ts +5 -4
- package/lib/index.d.mts +3 -0
- package/lib/index.d.ts +3 -0
- package/lib/types/ControlsGroupSettings.d.ts +7 -7
- package/lib/types/DatePickerValue.d.ts +4 -3
- package/lib/types/GeneralTypes.d.ts +4 -1
- package/lib/types/PickerBaseProps.d.ts +2 -1
- package/lib/utils/assign-time/assign-time.d.ts +3 -1
- package/lib/utils/clamp-date/clamp-date.d.ts +2 -0
- package/lib/utils/get-default-clamped-date/get-default-clamped-date.d.ts +7 -0
- package/lib/utils/get-formatted-date/get-formatted-date.d.ts +15 -0
- package/lib/utils/handle-control-key-down/handle-control-key-down.d.ts +11 -0
- package/lib/utils/index.d.ts +6 -5
- package/lib/utils/to-date-string/to-date-string.d.ts +4 -0
- package/package.json +4 -4
- package/styles.css +241 -4
- package/styles.layer.css +241 -4
package/esm/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
import dayjs from 'dayjs';
|
|
3
|
+
|
|
4
|
+
function assignTime(dateValue, timeString) {
|
|
5
|
+
let date = dateValue ? dayjs(dateValue) : dayjs();
|
|
6
|
+
if (timeString === "") {
|
|
7
|
+
return date.format("YYYY-MM-DD HH:mm:ss");
|
|
5
8
|
}
|
|
6
|
-
const hours =
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
result.setMinutes(minutes);
|
|
13
|
-
result.setSeconds(seconds);
|
|
14
|
-
result.setMilliseconds(ms);
|
|
15
|
-
return result;
|
|
9
|
+
const [hours, minutes, seconds = 0] = timeString.split(":").map(Number);
|
|
10
|
+
date = date.set("hour", hours);
|
|
11
|
+
date = date.set("minute", minutes);
|
|
12
|
+
date = date.set("second", seconds);
|
|
13
|
+
date = date.set("millisecond", 0);
|
|
14
|
+
return date.format("YYYY-MM-DD HH:mm:ss");
|
|
16
15
|
}
|
|
17
16
|
|
|
18
17
|
export { assignTime };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assign-time.mjs","sources":["../../../src/utils/assign-time/assign-time.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"assign-time.mjs","sources":["../../../src/utils/assign-time/assign-time.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport { DateStringValue } from '../../types';\n\nexport function assignTime(\n dateValue: DateStringValue | null, // Date to assign time to\n timeString: string // HH:mm:ss format\n): DateStringValue | null {\n let date = dateValue ? dayjs(dateValue) : dayjs();\n\n if (timeString === '') {\n return date.format('YYYY-MM-DD HH:mm:ss');\n }\n\n const [hours, minutes, seconds = 0] = timeString.split(':').map(Number);\n\n date = date.set('hour', hours);\n date = date.set('minute', minutes);\n date = date.set('second', seconds);\n date = date.set('millisecond', 0);\n\n return date.format('YYYY-MM-DD HH:mm:ss');\n}\n"],"names":[],"mappings":";;;AAGgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACd,WACA,UACwB,CAAA,CAAA,CAAA;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA;AAEhD,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA;AACrB,CAAA,CAAA,CAAA,CAAO,OAAA,CAAA,CAAA,CAAA,CAAA,CAAK,OAAO,qBAAqB,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA;AAG1C,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,GAAA,CAAC,CAAI,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,KAAM,CAAA,CAAA,CAAA,CAAG,CAAE,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA;AAEtE,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAK,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA;AAC7B,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAK,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA;AACjC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAK,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA;AACjC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAK,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAC,CAAA,CAAA;AAEhC,CAAA,CAAO,OAAA,CAAA,CAAA,CAAA,CAAA,CAAK,OAAO,qBAAqB,CAAA,CAAA;AAC1C,CAAA;;"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import dayjs from 'dayjs';
|
|
3
|
+
import { toDateTimeString } from '../to-date-string/to-date-string.mjs';
|
|
4
|
+
|
|
5
|
+
function clampDate(minDate, maxDate, date) {
|
|
6
|
+
if (!minDate && !maxDate) {
|
|
7
|
+
return toDateTimeString(date);
|
|
8
|
+
}
|
|
9
|
+
if (minDate && dayjs(date).isBefore(minDate)) {
|
|
10
|
+
return toDateTimeString(minDate);
|
|
11
|
+
}
|
|
12
|
+
if (maxDate && dayjs(date).isAfter(maxDate)) {
|
|
13
|
+
return toDateTimeString(maxDate);
|
|
14
|
+
}
|
|
15
|
+
return toDateTimeString(date);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export { clampDate };
|
|
19
|
+
//# sourceMappingURL=clamp-date.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clamp-date.mjs","sources":["../../../src/utils/clamp-date/clamp-date.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport { DateStringValue } from '../../types';\nimport { toDateTimeString } from '../to-date-string/to-date-string';\n\nexport function clampDate(\n minDate: DateStringValue | Date | undefined,\n maxDate: DateStringValue | Date | undefined,\n date: DateStringValue | Date\n): DateStringValue {\n if (!minDate && !maxDate) {\n return toDateTimeString(date)!;\n }\n\n if (minDate && dayjs(date).isBefore(minDate)) {\n return toDateTimeString(minDate)!;\n }\n\n if (maxDate && dayjs(date).isAfter(maxDate)) {\n return toDateTimeString(maxDate)!;\n }\n\n return toDateTimeString(date)!;\n}\n"],"names":[],"mappings":";;;;AAIgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,IACiB,CAAA,CAAA,CAAA;AACjB,CAAA,CAAI,IAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAC,OAAS,CAAA,CAAA,CAAA;AACxB,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAiB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA;AAG9B,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAI,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA;AAC5C,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA;AAGjC,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAI,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA;AAC3C,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA;AAGjC,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAiB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA;AAC9B,CAAA;;"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import dayjs from 'dayjs';
|
|
3
|
+
import { toDateString } from '../to-date-string/to-date-string.mjs';
|
|
4
|
+
|
|
5
|
+
function getDefaultClampedDate({
|
|
6
|
+
minDate,
|
|
7
|
+
maxDate
|
|
8
|
+
}) {
|
|
9
|
+
const today = dayjs();
|
|
10
|
+
if (!minDate && !maxDate) {
|
|
11
|
+
return toDateString(today);
|
|
12
|
+
}
|
|
13
|
+
if (minDate && dayjs(today).isBefore(minDate)) {
|
|
14
|
+
return toDateString(minDate);
|
|
15
|
+
}
|
|
16
|
+
if (maxDate && dayjs(today).isAfter(maxDate)) {
|
|
17
|
+
return toDateString(maxDate);
|
|
18
|
+
}
|
|
19
|
+
return toDateString(today);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export { getDefaultClampedDate };
|
|
23
|
+
//# sourceMappingURL=get-default-clamped-date.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-default-clamped-date.mjs","sources":["../../../src/utils/get-default-clamped-date/get-default-clamped-date.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport { DateStringValue } from '../../types';\nimport { toDateString } from '../to-date-string/to-date-string';\n\ninterface GetDefaultClampedDate {\n minDate: DateStringValue | Date | undefined;\n maxDate: DateStringValue | Date | undefined;\n}\n\nexport function getDefaultClampedDate({\n minDate,\n maxDate,\n}: GetDefaultClampedDate): DateStringValue {\n const today = dayjs();\n\n if (!minDate && !maxDate) {\n return toDateString(today)!;\n }\n\n if (minDate && dayjs(today).isBefore(minDate)) {\n return toDateString(minDate)!;\n }\n\n if (maxDate && dayjs(today).isAfter(maxDate)) {\n return toDateString(maxDate)!;\n }\n\n return toDateString(today)!;\n}\n"],"names":[],"mappings":";;;;AASO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,qBAAsB,CAAA,CAAA;AAAA,CAAA,CACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACF,CAA2C,CAAA,CAAA,CAAA;AACzC,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA;AAEpB,CAAA,CAAI,IAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAC,OAAS,CAAA,CAAA,CAAA;AACxB,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAa,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA;AAG3B,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA;AAC7C,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA;AAG7B,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA;AAC5C,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA;AAG7B,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAa,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA;AAC3B,CAAA;;"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import dayjs from 'dayjs';
|
|
3
|
+
|
|
4
|
+
function defaultDateFormatter({
|
|
5
|
+
type,
|
|
6
|
+
date,
|
|
7
|
+
locale,
|
|
8
|
+
format,
|
|
9
|
+
labelSeparator
|
|
10
|
+
}) {
|
|
11
|
+
const formatDate = (value) => dayjs(value).locale(locale).format(format);
|
|
12
|
+
if (type === "default") {
|
|
13
|
+
return date === null ? "" : formatDate(date);
|
|
14
|
+
}
|
|
15
|
+
if (type === "multiple") {
|
|
16
|
+
return date.map(formatDate).join(", ");
|
|
17
|
+
}
|
|
18
|
+
if (type === "range" && Array.isArray(date)) {
|
|
19
|
+
if (date[0] && date[1]) {
|
|
20
|
+
return `${formatDate(date[0])} ${labelSeparator} ${formatDate(date[1])}`;
|
|
21
|
+
}
|
|
22
|
+
if (date[0]) {
|
|
23
|
+
return `${formatDate(date[0])} ${labelSeparator} `;
|
|
24
|
+
}
|
|
25
|
+
return "";
|
|
26
|
+
}
|
|
27
|
+
return "";
|
|
28
|
+
}
|
|
29
|
+
function getFormattedDate({ formatter, ...others }) {
|
|
30
|
+
return (formatter || defaultDateFormatter)(others);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export { defaultDateFormatter, getFormattedDate };
|
|
34
|
+
//# sourceMappingURL=get-formatted-date.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-formatted-date.mjs","sources":["../../../src/utils/get-formatted-date/get-formatted-date.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport { DatePickerType, DatePickerValue, DateStringValue } from '../../types';\n\ninterface DateFormatterInput {\n type: DatePickerType;\n date: DatePickerValue<DatePickerType>;\n locale: string;\n format: string;\n labelSeparator: string;\n}\n\nexport type DateFormatter = (input: DateFormatterInput) => string;\n\nexport function defaultDateFormatter({\n type,\n date,\n locale,\n format,\n labelSeparator,\n}: DateFormatterInput) {\n const formatDate = (value: DateStringValue | Date) => dayjs(value).locale(locale).format(format);\n\n if (type === 'default') {\n return date === null ? '' : formatDate(date as DateStringValue);\n }\n\n if (type === 'multiple') {\n return (date as DateStringValue[]).map(formatDate).join(', ');\n }\n\n if (type === 'range' && Array.isArray(date)) {\n if (date[0] && date[1]) {\n return `${formatDate(date[0])} ${labelSeparator} ${formatDate(date[1])}`;\n }\n\n if (date[0]) {\n return `${formatDate(date[0])} ${labelSeparator} `;\n }\n\n return '';\n }\n\n return '';\n}\n\ninterface GetFormattedDateInput extends DateFormatterInput {\n formatter?: DateFormatter;\n}\n\nexport function getFormattedDate({ formatter, ...others }: GetFormattedDateInput) {\n return (formatter || defaultDateFormatter)(others);\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
function getNextIndex({ direction, levelIndex, rowIndex, cellIndex, size }) {
|
|
3
|
+
switch (direction) {
|
|
4
|
+
case "up":
|
|
5
|
+
if (levelIndex === 0 && rowIndex === 0) {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
8
|
+
if (rowIndex === 0) {
|
|
9
|
+
return {
|
|
10
|
+
levelIndex: levelIndex - 1,
|
|
11
|
+
rowIndex: cellIndex <= size[levelIndex - 1][size[levelIndex - 1].length - 1] - 1 ? size[levelIndex - 1].length - 1 : size[levelIndex - 1].length - 2,
|
|
12
|
+
cellIndex
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
return {
|
|
16
|
+
levelIndex,
|
|
17
|
+
rowIndex: rowIndex - 1,
|
|
18
|
+
cellIndex
|
|
19
|
+
};
|
|
20
|
+
case "down":
|
|
21
|
+
if (rowIndex === size[levelIndex].length - 1) {
|
|
22
|
+
return {
|
|
23
|
+
levelIndex: levelIndex + 1,
|
|
24
|
+
rowIndex: 0,
|
|
25
|
+
cellIndex
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
if (rowIndex === size[levelIndex].length - 2 && cellIndex >= size[levelIndex][size[levelIndex].length - 1]) {
|
|
29
|
+
return {
|
|
30
|
+
levelIndex: levelIndex + 1,
|
|
31
|
+
rowIndex: 0,
|
|
32
|
+
cellIndex
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
levelIndex,
|
|
37
|
+
rowIndex: rowIndex + 1,
|
|
38
|
+
cellIndex
|
|
39
|
+
};
|
|
40
|
+
case "left":
|
|
41
|
+
if (levelIndex === 0 && rowIndex === 0 && cellIndex === 0) {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
if (rowIndex === 0 && cellIndex === 0) {
|
|
45
|
+
return {
|
|
46
|
+
levelIndex: levelIndex - 1,
|
|
47
|
+
rowIndex: size[levelIndex - 1].length - 1,
|
|
48
|
+
cellIndex: size[levelIndex - 1][size[levelIndex - 1].length - 1] - 1
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
if (cellIndex === 0) {
|
|
52
|
+
return {
|
|
53
|
+
levelIndex,
|
|
54
|
+
rowIndex: rowIndex - 1,
|
|
55
|
+
cellIndex: size[levelIndex][rowIndex - 1] - 1
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
return {
|
|
59
|
+
levelIndex,
|
|
60
|
+
rowIndex,
|
|
61
|
+
cellIndex: cellIndex - 1
|
|
62
|
+
};
|
|
63
|
+
case "right":
|
|
64
|
+
if (rowIndex === size[levelIndex].length - 1 && cellIndex === size[levelIndex][rowIndex] - 1) {
|
|
65
|
+
return {
|
|
66
|
+
levelIndex: levelIndex + 1,
|
|
67
|
+
rowIndex: 0,
|
|
68
|
+
cellIndex: 0
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
if (cellIndex === size[levelIndex][rowIndex] - 1) {
|
|
72
|
+
return {
|
|
73
|
+
levelIndex,
|
|
74
|
+
rowIndex: rowIndex + 1,
|
|
75
|
+
cellIndex: 0
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
return {
|
|
79
|
+
levelIndex,
|
|
80
|
+
rowIndex,
|
|
81
|
+
cellIndex: cellIndex + 1
|
|
82
|
+
};
|
|
83
|
+
default:
|
|
84
|
+
return { levelIndex, rowIndex, cellIndex };
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
function focusOnNextFocusableControl({
|
|
88
|
+
controlsRef,
|
|
89
|
+
direction,
|
|
90
|
+
levelIndex,
|
|
91
|
+
rowIndex,
|
|
92
|
+
cellIndex,
|
|
93
|
+
size
|
|
94
|
+
}) {
|
|
95
|
+
const nextIndex = getNextIndex({ direction, size, rowIndex, cellIndex, levelIndex });
|
|
96
|
+
if (!nextIndex) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
const controlToFocus = controlsRef.current?.[nextIndex.levelIndex]?.[nextIndex.rowIndex]?.[nextIndex.cellIndex];
|
|
100
|
+
if (!controlToFocus) {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
if (controlToFocus.disabled || controlToFocus.getAttribute("data-hidden") || controlToFocus.getAttribute("data-outside")) {
|
|
104
|
+
focusOnNextFocusableControl({
|
|
105
|
+
controlsRef,
|
|
106
|
+
direction,
|
|
107
|
+
levelIndex: nextIndex.levelIndex,
|
|
108
|
+
cellIndex: nextIndex.cellIndex,
|
|
109
|
+
rowIndex: nextIndex.rowIndex,
|
|
110
|
+
size
|
|
111
|
+
});
|
|
112
|
+
} else {
|
|
113
|
+
controlToFocus.focus();
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
function getDirection(key) {
|
|
117
|
+
switch (key) {
|
|
118
|
+
case "ArrowDown":
|
|
119
|
+
return "down";
|
|
120
|
+
case "ArrowUp":
|
|
121
|
+
return "up";
|
|
122
|
+
case "ArrowRight":
|
|
123
|
+
return "right";
|
|
124
|
+
case "ArrowLeft":
|
|
125
|
+
return "left";
|
|
126
|
+
default:
|
|
127
|
+
return null;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
function getControlsSize(controlsRef) {
|
|
131
|
+
return controlsRef.current?.map((column) => column.map((row) => row.length));
|
|
132
|
+
}
|
|
133
|
+
function handleControlKeyDown({
|
|
134
|
+
controlsRef,
|
|
135
|
+
levelIndex,
|
|
136
|
+
rowIndex,
|
|
137
|
+
cellIndex,
|
|
138
|
+
event
|
|
139
|
+
}) {
|
|
140
|
+
const direction = getDirection(event.key);
|
|
141
|
+
if (direction) {
|
|
142
|
+
event.preventDefault();
|
|
143
|
+
const size = getControlsSize(controlsRef);
|
|
144
|
+
focusOnNextFocusableControl({
|
|
145
|
+
controlsRef,
|
|
146
|
+
direction,
|
|
147
|
+
levelIndex,
|
|
148
|
+
rowIndex,
|
|
149
|
+
cellIndex,
|
|
150
|
+
size
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
export { handleControlKeyDown };
|
|
156
|
+
//# sourceMappingURL=handle-control-key-down.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handle-control-key-down.mjs","sources":["../../../src/utils/handle-control-key-down/handle-control-key-down.ts"],"sourcesContent":["import { RefObject } from 'react';\n\ntype ControlsRef = RefObject<HTMLButtonElement[][][]>;\ntype Direction = 'up' | 'down' | 'left' | 'right';\n\ntype NextIndexInput = Omit<ShiftFocusInput, 'controlsRef'>;\n\nfunction getNextIndex({ direction, levelIndex, rowIndex, cellIndex, size }: NextIndexInput) {\n switch (direction) {\n case 'up':\n if (levelIndex === 0 && rowIndex === 0) {\n return null;\n }\n if (rowIndex === 0) {\n return {\n levelIndex: levelIndex - 1,\n rowIndex:\n cellIndex <= size[levelIndex - 1][size[levelIndex - 1].length - 1] - 1\n ? size[levelIndex - 1].length - 1\n : size[levelIndex - 1].length - 2,\n cellIndex,\n };\n }\n return {\n levelIndex,\n rowIndex: rowIndex - 1,\n cellIndex,\n };\n\n case 'down':\n if (rowIndex === size[levelIndex].length - 1) {\n return {\n levelIndex: levelIndex + 1,\n rowIndex: 0,\n cellIndex,\n };\n }\n if (\n rowIndex === size[levelIndex].length - 2 &&\n cellIndex >= size[levelIndex][size[levelIndex].length - 1]\n ) {\n return {\n levelIndex: levelIndex + 1,\n rowIndex: 0,\n cellIndex,\n };\n }\n return {\n levelIndex,\n rowIndex: rowIndex + 1,\n cellIndex,\n };\n\n case 'left':\n if (levelIndex === 0 && rowIndex === 0 && cellIndex === 0) {\n return null;\n }\n if (rowIndex === 0 && cellIndex === 0) {\n return {\n levelIndex: levelIndex - 1,\n rowIndex: size[levelIndex - 1].length - 1,\n cellIndex: size[levelIndex - 1][size[levelIndex - 1].length - 1] - 1,\n };\n }\n if (cellIndex === 0) {\n return {\n levelIndex,\n rowIndex: rowIndex - 1,\n cellIndex: size[levelIndex][rowIndex - 1] - 1,\n };\n }\n return {\n levelIndex,\n rowIndex,\n cellIndex: cellIndex - 1,\n };\n\n case 'right':\n if (\n rowIndex === size[levelIndex].length - 1 &&\n cellIndex === size[levelIndex][rowIndex] - 1\n ) {\n return {\n levelIndex: levelIndex + 1,\n rowIndex: 0,\n cellIndex: 0,\n };\n }\n if (cellIndex === size[levelIndex][rowIndex] - 1) {\n return {\n levelIndex,\n rowIndex: rowIndex + 1,\n cellIndex: 0,\n };\n }\n return {\n levelIndex,\n rowIndex,\n cellIndex: cellIndex + 1,\n };\n\n default:\n return { levelIndex, rowIndex, cellIndex };\n }\n}\n\ninterface ShiftFocusInput {\n controlsRef: ControlsRef;\n direction: Direction;\n levelIndex: number;\n rowIndex: number;\n cellIndex: number;\n size: number[][];\n}\n\nfunction focusOnNextFocusableControl({\n controlsRef,\n direction,\n levelIndex,\n rowIndex,\n cellIndex,\n size,\n}: ShiftFocusInput) {\n const nextIndex = getNextIndex({ direction, size, rowIndex, cellIndex, levelIndex });\n\n if (!nextIndex) {\n return;\n }\n\n const controlToFocus =\n controlsRef.current?.[nextIndex.levelIndex]?.[nextIndex.rowIndex]?.[nextIndex.cellIndex];\n\n if (!controlToFocus) {\n return;\n }\n\n if (\n controlToFocus.disabled ||\n controlToFocus.getAttribute('data-hidden') ||\n controlToFocus.getAttribute('data-outside')\n ) {\n focusOnNextFocusableControl({\n controlsRef,\n direction,\n levelIndex: nextIndex.levelIndex,\n cellIndex: nextIndex.cellIndex,\n rowIndex: nextIndex.rowIndex,\n size,\n });\n } else {\n controlToFocus.focus();\n }\n}\n\nfunction getDirection(key: KeyboardEvent['key']): Direction {\n switch (key) {\n case 'ArrowDown':\n return 'down';\n case 'ArrowUp':\n return 'up';\n case 'ArrowRight':\n return 'right';\n case 'ArrowLeft':\n return 'left';\n default:\n return null!;\n }\n}\n\nfunction getControlsSize(controlsRef: ControlsRef) {\n return controlsRef.current?.map((column) => column.map((row) => row.length));\n}\n\ninterface HandleControlKeyDownInput {\n controlsRef: ControlsRef;\n levelIndex: number;\n rowIndex: number;\n cellIndex: number;\n event: React.KeyboardEvent<HTMLButtonElement>;\n}\n\nexport function handleControlKeyDown({\n controlsRef,\n levelIndex,\n rowIndex,\n cellIndex,\n event,\n}: HandleControlKeyDownInput) {\n const direction = getDirection(event.key);\n\n if (direction) {\n event.preventDefault();\n\n const size = getControlsSize(controlsRef)!;\n\n focusOnNextFocusableControl({\n controlsRef,\n direction,\n levelIndex,\n rowIndex,\n cellIndex,\n size,\n });\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import dayjs from 'dayjs';
|
|
3
|
+
|
|
4
|
+
function toDateString(value) {
|
|
5
|
+
return value == null ? value : dayjs(value).format("YYYY-MM-DD");
|
|
6
|
+
}
|
|
7
|
+
function toDateTimeString(value) {
|
|
8
|
+
return value == null ? value : dayjs(value).format("YYYY-MM-DD HH:mm:ss");
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export { toDateString, toDateTimeString };
|
|
12
|
+
//# sourceMappingURL=to-date-string.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to-date-string.mjs","sources":["../../../src/utils/to-date-string/to-date-string.ts"],"sourcesContent":["import dayjs, { Dayjs } from 'dayjs';\nimport { DateStringValue } from '../../types';\n\nexport function toDateString(\n value: string | number | Date | Dayjs | undefined | null\n): DateStringValue | undefined | null {\n return value == null ? value : dayjs(value).format('YYYY-MM-DD');\n}\n\nexport function toDateTimeString(\n value: string | number | Date | Dayjs | undefined | null\n): DateStringValue | undefined | null {\n return value == null ? value : dayjs(value).format('YYYY-MM-DD HH:mm:ss');\n}\n"],"names":[],"mappings":";;;AAGO,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EACd,CAAA,CAAA,CAAA,CAAA,CACoC,CAAA,CAAA,CAAA;AACpC,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,MAAM,KAAK,CAAA,CAAE,OAAO,YAAY,CAAA,CAAA;AACjE,CAAA;AAEO,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EACd,CAAA,CAAA,CAAA,CAAA,CACoC,CAAA,CAAA,CAAA;AACpC,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,MAAM,KAAK,CAAA,CAAE,OAAO,qBAAqB,CAAA,CAAA;AAC1E,CAAA;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BoxProps, ElementProps, Factory, StylesApiProps } from '@mantine/core';
|
|
2
|
-
import { CalendarLevel } from '../../types';
|
|
2
|
+
import { CalendarLevel, DateStringValue } from '../../types';
|
|
3
3
|
import { DecadeLevelSettings } from '../DecadeLevel';
|
|
4
4
|
import { DecadeLevelGroupStylesNames } from '../DecadeLevelGroup';
|
|
5
5
|
import { MonthLevelSettings } from '../MonthLevel';
|
|
@@ -19,59 +19,57 @@ export interface CalendarAriaLabels {
|
|
|
19
19
|
}
|
|
20
20
|
type OmittedSettings = 'onNext' | 'onPrevious' | 'onLevelClick' | 'withNext' | 'withPrevious' | 'nextDisabled' | 'previousDisabled';
|
|
21
21
|
export interface CalendarSettings extends Omit<DecadeLevelSettings, OmittedSettings>, Omit<YearLevelSettings, OmittedSettings>, Omit<MonthLevelSettings, OmittedSettings> {
|
|
22
|
-
/** Initial
|
|
22
|
+
/** Initial displayed level in uncontrolled mode */
|
|
23
23
|
defaultLevel?: CalendarLevel;
|
|
24
|
-
/** Current level displayed
|
|
24
|
+
/** Current displayed level displayed in controlled mode */
|
|
25
25
|
level?: CalendarLevel;
|
|
26
26
|
/** Called when level changes */
|
|
27
27
|
onLevelChange?: (level: CalendarLevel) => void;
|
|
28
|
-
/** Called when user
|
|
29
|
-
onYearSelect?: (date:
|
|
30
|
-
/** Called when user
|
|
31
|
-
onMonthSelect?: (date:
|
|
28
|
+
/** Called when user selects year */
|
|
29
|
+
onYearSelect?: (date: DateStringValue) => void;
|
|
30
|
+
/** Called when user selects month */
|
|
31
|
+
onMonthSelect?: (date: DateStringValue) => void;
|
|
32
32
|
/** Called when mouse enters year control */
|
|
33
|
-
onYearMouseEnter?: (event: React.MouseEvent<HTMLButtonElement>, date:
|
|
33
|
+
onYearMouseEnter?: (event: React.MouseEvent<HTMLButtonElement>, date: DateStringValue) => void;
|
|
34
34
|
/** Called when mouse enters month control */
|
|
35
|
-
onMonthMouseEnter?: (event: React.MouseEvent<HTMLButtonElement>, date:
|
|
35
|
+
onMonthMouseEnter?: (event: React.MouseEvent<HTMLButtonElement>, date: DateStringValue) => void;
|
|
36
36
|
}
|
|
37
37
|
export interface CalendarBaseProps {
|
|
38
38
|
__staticSelector?: string;
|
|
39
|
-
/** Internal Variable to check if timezones were applied by parent component */
|
|
40
|
-
__timezoneApplied?: boolean;
|
|
41
39
|
/** Prevents focus shift when buttons are clicked */
|
|
42
40
|
__preventFocus?: boolean;
|
|
43
41
|
/** Determines whether date should be updated when year control is clicked */
|
|
44
42
|
__updateDateOnYearSelect?: boolean;
|
|
45
43
|
/** Determines whether date should be updated when month control is clicked */
|
|
46
44
|
__updateDateOnMonthSelect?: boolean;
|
|
47
|
-
/** Initial
|
|
48
|
-
defaultDate?: Date;
|
|
49
|
-
/**
|
|
50
|
-
date?: Date;
|
|
45
|
+
/** Initial displayed date in uncontrolled mode */
|
|
46
|
+
defaultDate?: DateStringValue | Date;
|
|
47
|
+
/** Displayed date in controlled mode */
|
|
48
|
+
date?: DateStringValue | Date;
|
|
51
49
|
/** Called when date changes */
|
|
52
|
-
onDateChange?: (date:
|
|
53
|
-
/** Number of columns
|
|
50
|
+
onDateChange?: (date: DateStringValue) => void;
|
|
51
|
+
/** Number of columns displayed next to each other, `1` by default */
|
|
54
52
|
numberOfColumns?: number;
|
|
55
|
-
/** Number of columns to scroll
|
|
53
|
+
/** Number of columns to scroll with next/prev buttons, same as `numberOfColumns` if not set explicitly */
|
|
56
54
|
columnsToScroll?: number;
|
|
57
|
-
/**
|
|
55
|
+
/** `aria-label` attributes for controls on different levels */
|
|
58
56
|
ariaLabels?: CalendarAriaLabels;
|
|
59
|
-
/**
|
|
57
|
+
/** Next button `aria-label` */
|
|
60
58
|
nextLabel?: string;
|
|
61
|
-
/**
|
|
59
|
+
/** Previous button `aria-label` */
|
|
62
60
|
previousLabel?: string;
|
|
63
|
-
/** Called when next decade button is clicked */
|
|
64
|
-
onNextDecade?: (date:
|
|
65
|
-
/** Called when previous decade button is clicked */
|
|
66
|
-
onPreviousDecade?: (date:
|
|
67
|
-
/** Called when next year button is clicked */
|
|
68
|
-
onNextYear?: (date:
|
|
69
|
-
/** Called when previous year button is clicked */
|
|
70
|
-
onPreviousYear?: (date:
|
|
71
|
-
/** Called when next month button is clicked */
|
|
72
|
-
onNextMonth?: (date:
|
|
73
|
-
/** Called when previous month button is clicked */
|
|
74
|
-
onPreviousMonth?: (date:
|
|
61
|
+
/** Called when the next decade button is clicked */
|
|
62
|
+
onNextDecade?: (date: DateStringValue) => void;
|
|
63
|
+
/** Called when the previous decade button is clicked */
|
|
64
|
+
onPreviousDecade?: (date: DateStringValue) => void;
|
|
65
|
+
/** Called when the next year button is clicked */
|
|
66
|
+
onNextYear?: (date: DateStringValue) => void;
|
|
67
|
+
/** Called when the previous year button is clicked */
|
|
68
|
+
onPreviousYear?: (date: DateStringValue) => void;
|
|
69
|
+
/** Called when the next month button is clicked */
|
|
70
|
+
onNextMonth?: (date: DateStringValue) => void;
|
|
71
|
+
/** Called when the previous month button is clicked */
|
|
72
|
+
onPreviousMonth?: (date: DateStringValue) => void;
|
|
75
73
|
}
|
|
76
74
|
export interface CalendarProps extends BoxProps, CalendarSettings, CalendarBaseProps, StylesApiProps<CalendarFactory>, ElementProps<'div'> {
|
|
77
75
|
/** Max level that user can go up to (decade, year, month), defaults to decade */
|
|
@@ -5,31 +5,31 @@ export type CalendarHeaderCssVariables = {
|
|
|
5
5
|
};
|
|
6
6
|
export interface CalendarHeaderSettings {
|
|
7
7
|
__preventFocus?: boolean;
|
|
8
|
-
/** Determines whether propagation for Escape key should be stopped */
|
|
8
|
+
/** Determines whether propagation for `Escape` key should be stopped */
|
|
9
9
|
__stopPropagation?: boolean;
|
|
10
10
|
/** Change next icon */
|
|
11
11
|
nextIcon?: React.ReactNode;
|
|
12
12
|
/** Change previous icon */
|
|
13
13
|
previousIcon?: React.ReactNode;
|
|
14
|
-
/**
|
|
14
|
+
/** Next button `aria-label` */
|
|
15
15
|
nextLabel?: string;
|
|
16
|
-
/**
|
|
16
|
+
/** Previous button `aria-label` */
|
|
17
17
|
previousLabel?: string;
|
|
18
|
-
/** Called when next button is clicked */
|
|
18
|
+
/** Called when the next button is clicked */
|
|
19
19
|
onNext?: () => void;
|
|
20
|
-
/** Called when previous button is clicked */
|
|
20
|
+
/** Called when the previous button is clicked */
|
|
21
21
|
onPrevious?: () => void;
|
|
22
|
-
/** Called when level button is clicked */
|
|
22
|
+
/** Called when the level button is clicked */
|
|
23
23
|
onLevelClick?: () => void;
|
|
24
|
-
/**
|
|
24
|
+
/** Disables next control */
|
|
25
25
|
nextDisabled?: boolean;
|
|
26
|
-
/**
|
|
26
|
+
/** Disables previous control */
|
|
27
27
|
previousDisabled?: boolean;
|
|
28
|
-
/** Determines whether next level button should be enabled,
|
|
28
|
+
/** Determines whether next level button should be enabled, `true` by default */
|
|
29
29
|
hasNextLevel?: boolean;
|
|
30
|
-
/** Determines whether next control should be rendered,
|
|
30
|
+
/** Determines whether next control should be rendered, `true` by default */
|
|
31
31
|
withNext?: boolean;
|
|
32
|
-
/** Determines whether previous control should be rendered,
|
|
32
|
+
/** Determines whether previous control should be rendered, `true` by default */
|
|
33
33
|
withPrevious?: boolean;
|
|
34
34
|
/** Component size */
|
|
35
35
|
size?: MantineSize;
|
|
@@ -38,7 +38,7 @@ export interface CalendarHeaderProps extends BoxProps, CalendarHeaderSettings, S
|
|
|
38
38
|
__staticSelector?: string;
|
|
39
39
|
/** Label displayed between next and previous buttons */
|
|
40
40
|
label: React.ReactNode;
|
|
41
|
-
/**
|
|
41
|
+
/** Level control `aria-label` */
|
|
42
42
|
levelControlAriaLabel?: string;
|
|
43
43
|
}
|
|
44
44
|
export type CalendarHeaderFactory = Factory<{
|
|
@@ -1,40 +1,38 @@
|
|
|
1
1
|
import { __BaseInputProps, __InputStylesNames, BoxProps, ElementProps, Factory, InputVariant, PopoverProps, StylesApiProps } from '@mantine/core';
|
|
2
|
-
import { CalendarLevel, DateValue } from '../../types';
|
|
2
|
+
import { CalendarLevel, DateStringValue, DateValue } from '../../types';
|
|
3
3
|
import { CalendarBaseProps, CalendarStylesNames } from '../Calendar';
|
|
4
4
|
import { DecadeLevelSettings } from '../DecadeLevel';
|
|
5
5
|
import { MonthLevelSettings } from '../MonthLevel';
|
|
6
6
|
import { YearLevelSettings } from '../YearLevel';
|
|
7
7
|
export type DateInputStylesNames = __InputStylesNames | CalendarStylesNames;
|
|
8
8
|
export interface DateInputProps extends BoxProps, Omit<__BaseInputProps, 'size'>, CalendarBaseProps, DecadeLevelSettings, YearLevelSettings, MonthLevelSettings, StylesApiProps<DateInputFactory>, ElementProps<'input', 'size' | 'value' | 'defaultValue' | 'onChange'> {
|
|
9
|
-
/** Parses user input to convert it to
|
|
10
|
-
dateParser?: (value: string) => Date | null;
|
|
11
|
-
/**
|
|
12
|
-
value?: DateValue;
|
|
13
|
-
/**
|
|
14
|
-
defaultValue?: DateValue;
|
|
9
|
+
/** Parses user input to convert it to date string value */
|
|
10
|
+
dateParser?: (value: string) => DateStringValue | Date | null;
|
|
11
|
+
/** Controlled component value */
|
|
12
|
+
value?: DateValue | Date;
|
|
13
|
+
/** Uncontrolled component default value */
|
|
14
|
+
defaultValue?: DateValue | Date;
|
|
15
15
|
/** Called when value changes */
|
|
16
|
-
onChange?: (value:
|
|
17
|
-
/** Props
|
|
16
|
+
onChange?: (value: DateStringValue) => void;
|
|
17
|
+
/** Props passed down to `Popover` component */
|
|
18
18
|
popoverProps?: Partial<Omit<PopoverProps, 'children'>>;
|
|
19
|
-
/**
|
|
19
|
+
/** If set, clear button is displayed in the `rightSection` when the component has value. Ignored if `rightSection` prop is set. `false` by default */
|
|
20
20
|
clearable?: boolean;
|
|
21
|
-
/** Props
|
|
21
|
+
/** Props passed down to clear button */
|
|
22
22
|
clearButtonProps?: React.ComponentPropsWithoutRef<'button'>;
|
|
23
|
-
/**
|
|
23
|
+
/** dayjs format to display input value, `"MMMM D, YYYY"` by default */
|
|
24
24
|
valueFormat?: string;
|
|
25
|
-
/**
|
|
25
|
+
/** If set to `false`, invalid user input is preserved and the input value is not corrected on blur */
|
|
26
26
|
fixOnBlur?: boolean;
|
|
27
|
-
/**
|
|
27
|
+
/** If set, the value can be deselected by deleting everything from the input or by clicking the selected date in the dropdown. By default, `true` if `clearable` prop is set, `false` otherwise. */
|
|
28
28
|
allowDeselect?: boolean;
|
|
29
|
-
/**
|
|
30
|
-
preserveTime?: boolean;
|
|
31
|
-
/** Max level that user can go up to (decade, year, month), defaults to decade */
|
|
29
|
+
/** Max level that user can go up to, `'decade'` by default */
|
|
32
30
|
maxLevel?: CalendarLevel;
|
|
33
|
-
/** Initial
|
|
31
|
+
/** Initial displayed level (uncontrolled) */
|
|
34
32
|
defaultLevel?: CalendarLevel;
|
|
35
|
-
/** Current
|
|
33
|
+
/** Current displayed level (controlled) */
|
|
36
34
|
level?: CalendarLevel;
|
|
37
|
-
/** Called when level changes */
|
|
35
|
+
/** Called when the level changes */
|
|
38
36
|
onLevelChange?: (level: CalendarLevel) => void;
|
|
39
37
|
}
|
|
40
38
|
export type DateInputFactory = Factory<{
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import { DateStringValue } from '../../../types';
|
|
2
|
+
export declare function dateStringParser(dateString: string | null): DateStringValue | null;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { DateStringValue } from '../../../types';
|
|
1
2
|
interface IsDateValid {
|
|
2
|
-
date: Date;
|
|
3
|
-
maxDate: Date | null | undefined;
|
|
4
|
-
minDate: Date | null | undefined;
|
|
3
|
+
date: DateStringValue | Date;
|
|
4
|
+
maxDate: DateStringValue | Date | null | undefined;
|
|
5
|
+
minDate: DateStringValue | Date | null | undefined;
|
|
5
6
|
}
|
|
6
7
|
export declare function isDateValid({ date, maxDate, minDate }: IsDateValid): boolean;
|
|
7
8
|
export {};
|