@gravity-ui/date-components 1.6.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/Calendar/Calendar.d.ts +6 -5
- package/dist/cjs/components/Calendar/Calendar.js +4 -4
- package/dist/cjs/components/Calendar/index.d.ts +6 -6
- package/dist/cjs/components/Calendar/index.js +5 -5
- package/dist/cjs/components/{CalendarBase → CalendarView}/Calendar.css +9 -6
- package/dist/cjs/components/{CalendarBase/CalendarBase.d.ts → CalendarView/CalendarView.d.ts} +2 -2
- package/dist/cjs/components/{CalendarBase/CalendarBase.js → CalendarView/CalendarView.js} +4 -3
- package/dist/{esm/components/CalendarBase → cjs/components/CalendarView}/hooks/types.d.ts +37 -31
- package/dist/cjs/components/{CalendarBase → CalendarView}/hooks/useCalendarCellProps.js +1 -2
- package/dist/cjs/components/{CalendarBase → CalendarView}/hooks/useCalendarGridProps.d.ts +2 -2
- package/dist/{esm/components/CalendarBase → cjs/components/CalendarView}/hooks/useCalendarState.d.ts +1 -1
- package/dist/cjs/components/{CalendarBase → CalendarView}/hooks/useCalendarState.js +45 -23
- package/dist/cjs/components/CalendarView/hooks/useRangeCalendarState.d.ts +8 -0
- package/dist/cjs/components/{CalendarBase → CalendarView}/hooks/useRangeCalendarState.js +25 -14
- package/dist/cjs/components/DateField/DateField.d.ts +1 -4
- package/dist/cjs/components/DateField/DateField.js +3 -1
- package/dist/cjs/components/DateField/hooks/useBaseDateFieldState.d.ts +97 -0
- package/dist/cjs/components/DateField/hooks/useBaseDateFieldState.js +316 -0
- package/dist/cjs/components/DateField/hooks/useDateFieldProps.d.ts +6 -3
- package/dist/cjs/components/DateField/hooks/useDateFieldProps.js +14 -12
- package/dist/cjs/components/DateField/hooks/useDateFieldState.d.ts +2 -65
- package/dist/cjs/components/DateField/hooks/useDateFieldState.js +98 -410
- package/dist/cjs/components/DateField/index.d.ts +1 -0
- package/dist/cjs/components/DateField/index.js +1 -0
- package/dist/cjs/components/DateField/utils.d.ts +10 -1
- package/dist/cjs/components/DateField/utils.js +114 -2
- package/dist/cjs/components/DatePicker/DatePicker.d.ts +4 -4
- package/dist/cjs/components/DatePicker/DatePicker.js +6 -6
- package/dist/cjs/components/DatePicker/MobileCalendar.css +6 -6
- package/dist/cjs/components/DatePicker/MobileCalendar.js +17 -12
- package/dist/cjs/components/DatePicker/hooks/useDatePickerProps.js +5 -16
- package/dist/cjs/components/DatePicker/hooks/useDatePickerState.d.ts +5 -4
- package/dist/cjs/components/DatePicker/hooks/useDatePickerState.js +71 -56
- package/dist/cjs/components/RangeCalendar/RangeCalendar.d.ts +3 -3
- package/dist/cjs/components/RangeCalendar/RangeCalendar.js +4 -4
- package/dist/cjs/components/RangeDateField/RangeDateField.css +4 -0
- package/dist/cjs/components/RangeDateField/RangeDateField.d.ts +12 -0
- package/dist/cjs/components/RangeDateField/RangeDateField.js +25 -0
- package/dist/cjs/components/RangeDateField/hooks/useRangeDateFieldState.d.ts +9 -0
- package/dist/cjs/components/RangeDateField/hooks/useRangeDateFieldState.js +227 -0
- package/dist/cjs/components/RangeDateField/index.d.ts +2 -0
- package/dist/cjs/components/RangeDateField/index.js +5 -0
- package/dist/cjs/components/RangeDateField/utils/createPlaceholderRangeValue.d.ts +5 -0
- package/dist/cjs/components/RangeDateField/utils/createPlaceholderRangeValue.js +9 -0
- package/dist/cjs/components/RangeDateField/utils/getRangeEditableSections.d.ts +5 -0
- package/dist/cjs/components/RangeDateField/utils/getRangeEditableSections.js +42 -0
- package/dist/cjs/components/RangeDateField/utils/index.d.ts +3 -0
- package/dist/cjs/components/RangeDateField/utils/index.js +6 -0
- package/dist/cjs/components/RangeDateField/utils/isValidRange.d.ts +3 -0
- package/dist/cjs/components/RangeDateField/utils/isValidRange.js +8 -0
- package/dist/cjs/components/RelativeDateField/RelativeDateField.d.ts +2 -2
- package/dist/cjs/components/RelativeDateField/RelativeDateField.js +5 -2
- package/dist/cjs/components/RelativeDateField/hooks/useRelativeDateFieldProps.js +5 -11
- package/dist/cjs/components/RelativeDateField/hooks/useRelativeDateFieldState.d.ts +3 -1
- package/dist/cjs/components/RelativeDateField/hooks/useRelativeDateFieldState.js +5 -4
- package/dist/cjs/components/RelativeDatePicker/RelativeDatePicker.css +3 -0
- package/dist/cjs/components/RelativeDatePicker/RelativeDatePicker.d.ts +2 -2
- package/dist/cjs/components/RelativeDatePicker/RelativeDatePicker.js +13 -2
- package/dist/cjs/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.js +35 -27
- package/dist/cjs/components/RelativeDatePicker/hooks/useRelativeDatePickerState.d.ts +2 -2
- package/dist/cjs/components/RelativeDatePicker/hooks/useRelativeDatePickerState.js +12 -16
- package/dist/cjs/components/RelativeRangeDatePicker/RelativeRangeDatePicker.css +56 -0
- package/dist/cjs/components/RelativeRangeDatePicker/RelativeRangeDatePicker.d.ts +27 -0
- package/dist/cjs/components/RelativeRangeDatePicker/RelativeRangeDatePicker.js +90 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.css +32 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.d.ts +14 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.js +43 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/i18n/en.json +8 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/i18n/index.d.ts +1 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/i18n/index.js +9 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/i18n/ru.json +8 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.d.ts +16 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.js +104 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/Presets.css +26 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/Presets.d.ts +18 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/Presets.js +67 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.css +14 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.d.ts +7 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.js +90 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/defaultPresets.d.ts +9 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/defaultPresets.js +186 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/i18n/en.json +40 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/i18n/index.d.ts +1 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/i18n/index.js +9 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/i18n/ru.json +40 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/utils.d.ts +16 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/utils.js +85 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/Zones.css +3 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/Zones.d.ts +9 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/Zones.js +62 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/i18n/en.json +4 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/i18n/index.d.ts +1 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/i18n/index.js +9 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/i18n/ru.json +4 -0
- package/dist/cjs/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.d.ts +26 -0
- package/dist/cjs/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.js +58 -0
- package/dist/cjs/components/RelativeRangeDatePicker/i18n/en.json +8 -0
- package/dist/cjs/components/RelativeRangeDatePicker/i18n/index.d.ts +1 -0
- package/dist/cjs/components/RelativeRangeDatePicker/i18n/index.js +9 -0
- package/dist/cjs/components/RelativeRangeDatePicker/i18n/ru.json +8 -0
- package/dist/cjs/components/RelativeRangeDatePicker/index.d.ts +4 -0
- package/dist/cjs/components/RelativeRangeDatePicker/index.js +8 -0
- package/dist/cjs/components/RelativeRangeDatePicker/utils.d.ts +15 -0
- package/dist/cjs/components/RelativeRangeDatePicker/utils.js +53 -0
- package/dist/cjs/components/index.d.ts +3 -0
- package/dist/cjs/components/index.js +2 -0
- package/dist/cjs/components/types/datePicker.d.ts +5 -2
- package/dist/cjs/components/types/events.d.ts +4 -4
- package/dist/cjs/components/types/inputs.d.ts +10 -9
- package/dist/cjs/components/utils/dates.d.ts +1 -2
- package/dist/cjs/components/utils/useDefaultTimeZone.d.ts +2 -0
- package/dist/cjs/components/utils/useDefaultTimeZone.js +15 -0
- package/dist/cjs/components/utils/validation/datePicker.d.ts +6 -0
- package/dist/cjs/components/utils/validation/datePicker.js +30 -0
- package/dist/cjs/components/utils/validation/i18n/en.json +6 -0
- package/dist/cjs/components/utils/validation/i18n/index.d.ts +1 -0
- package/dist/cjs/components/utils/validation/i18n/index.js +9 -0
- package/dist/cjs/components/utils/validation/i18n/ru.json +6 -0
- package/dist/esm/components/Calendar/Calendar.d.ts +6 -5
- package/dist/esm/components/Calendar/Calendar.js +4 -4
- package/dist/esm/components/Calendar/index.d.ts +6 -6
- package/dist/esm/components/Calendar/index.js +5 -5
- package/dist/esm/components/{CalendarBase → CalendarView}/Calendar.css +9 -6
- package/dist/esm/components/{CalendarBase/CalendarBase.d.ts → CalendarView/CalendarView.d.ts} +2 -2
- package/dist/esm/components/{CalendarBase/CalendarBase.js → CalendarView/CalendarView.js} +3 -2
- package/dist/{cjs/components/CalendarBase → esm/components/CalendarView}/hooks/types.d.ts +37 -31
- package/dist/esm/components/{CalendarBase → CalendarView}/hooks/useCalendarCellProps.js +1 -2
- package/dist/esm/components/{CalendarBase → CalendarView}/hooks/useCalendarGridProps.d.ts +2 -2
- package/dist/esm/components/{CalendarBase → CalendarView}/hooks/useCalendarGridProps.js +0 -1
- package/dist/{cjs/components/CalendarBase → esm/components/CalendarView}/hooks/useCalendarState.d.ts +1 -1
- package/dist/esm/components/{CalendarBase → CalendarView}/hooks/useCalendarState.js +46 -24
- package/dist/esm/components/CalendarView/hooks/useRangeCalendarState.d.ts +8 -0
- package/dist/esm/components/{CalendarBase → CalendarView}/hooks/useRangeCalendarState.js +24 -13
- package/dist/esm/components/DateField/DateField.d.ts +1 -4
- package/dist/esm/components/DateField/DateField.js +4 -2
- package/dist/esm/components/DateField/hooks/useBaseDateFieldState.d.ts +97 -0
- package/dist/esm/components/DateField/hooks/useBaseDateFieldState.js +311 -0
- package/dist/esm/components/DateField/hooks/useDateFieldProps.d.ts +6 -3
- package/dist/esm/components/DateField/hooks/useDateFieldProps.js +14 -12
- package/dist/esm/components/DateField/hooks/useDateFieldState.d.ts +2 -65
- package/dist/esm/components/DateField/hooks/useDateFieldState.js +97 -409
- package/dist/esm/components/DateField/index.d.ts +1 -0
- package/dist/esm/components/DateField/index.js +1 -0
- package/dist/esm/components/DateField/utils.d.ts +10 -1
- package/dist/esm/components/DateField/utils.js +105 -2
- package/dist/esm/components/DatePicker/DatePicker.d.ts +4 -4
- package/dist/esm/components/DatePicker/DatePicker.js +6 -6
- package/dist/esm/components/DatePicker/MobileCalendar.css +6 -6
- package/dist/esm/components/DatePicker/MobileCalendar.js +17 -12
- package/dist/esm/components/DatePicker/hooks/useDatePickerProps.js +5 -16
- package/dist/esm/components/DatePicker/hooks/useDatePickerState.d.ts +5 -4
- package/dist/esm/components/DatePicker/hooks/useDatePickerState.js +71 -56
- package/dist/esm/components/RangeCalendar/RangeCalendar.d.ts +3 -3
- package/dist/esm/components/RangeCalendar/RangeCalendar.js +4 -4
- package/dist/esm/components/RangeDateField/RangeDateField.css +4 -0
- package/dist/esm/components/RangeDateField/RangeDateField.d.ts +12 -0
- package/dist/esm/components/RangeDateField/RangeDateField.js +21 -0
- package/dist/esm/components/RangeDateField/hooks/useRangeDateFieldState.d.ts +9 -0
- package/dist/esm/components/RangeDateField/hooks/useRangeDateFieldState.js +222 -0
- package/dist/esm/components/RangeDateField/index.d.ts +2 -0
- package/dist/esm/components/RangeDateField/index.js +2 -0
- package/dist/esm/components/RangeDateField/utils/createPlaceholderRangeValue.d.ts +5 -0
- package/dist/esm/components/RangeDateField/utils/createPlaceholderRangeValue.js +5 -0
- package/dist/esm/components/RangeDateField/utils/getRangeEditableSections.d.ts +5 -0
- package/dist/esm/components/RangeDateField/utils/getRangeEditableSections.js +38 -0
- package/dist/esm/components/RangeDateField/utils/index.d.ts +3 -0
- package/dist/esm/components/RangeDateField/utils/index.js +3 -0
- package/dist/esm/components/RangeDateField/utils/isValidRange.d.ts +3 -0
- package/dist/esm/components/RangeDateField/utils/isValidRange.js +4 -0
- package/dist/esm/components/RelativeDateField/RelativeDateField.d.ts +2 -2
- package/dist/esm/components/RelativeDateField/RelativeDateField.js +5 -2
- package/dist/esm/components/RelativeDateField/hooks/useRelativeDateFieldProps.js +5 -11
- package/dist/esm/components/RelativeDateField/hooks/useRelativeDateFieldState.d.ts +3 -1
- package/dist/esm/components/RelativeDateField/hooks/useRelativeDateFieldState.js +5 -4
- package/dist/esm/components/RelativeDatePicker/RelativeDatePicker.css +3 -0
- package/dist/esm/components/RelativeDatePicker/RelativeDatePicker.d.ts +2 -2
- package/dist/esm/components/RelativeDatePicker/RelativeDatePicker.js +13 -2
- package/dist/esm/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.js +35 -27
- package/dist/esm/components/RelativeDatePicker/hooks/useRelativeDatePickerState.d.ts +2 -2
- package/dist/esm/components/RelativeDatePicker/hooks/useRelativeDatePickerState.js +12 -16
- package/dist/esm/components/RelativeRangeDatePicker/RelativeRangeDatePicker.css +56 -0
- package/dist/esm/components/RelativeRangeDatePicker/RelativeRangeDatePicker.d.ts +27 -0
- package/dist/esm/components/RelativeRangeDatePicker/RelativeRangeDatePicker.js +85 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.css +32 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.d.ts +14 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.js +39 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/i18n/en.json +8 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/i18n/index.d.ts +1 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/i18n/index.js +5 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/i18n/ru.json +8 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.d.ts +16 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.js +99 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/Presets.css +26 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/Presets.d.ts +18 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/Presets.js +62 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.css +14 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.d.ts +7 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.js +85 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/defaultPresets.d.ts +9 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/defaultPresets.js +183 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/i18n/en.json +40 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/i18n/index.d.ts +1 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/i18n/index.js +5 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/i18n/ru.json +40 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/utils.d.ts +16 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/utils.js +78 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/Zones/Zones.css +3 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/Zones/Zones.d.ts +9 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/Zones/Zones.js +58 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/Zones/i18n/en.json +4 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/Zones/i18n/index.d.ts +1 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/Zones/i18n/index.js +5 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/Zones/i18n/ru.json +4 -0
- package/dist/esm/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.d.ts +26 -0
- package/dist/esm/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.js +53 -0
- package/dist/esm/components/RelativeRangeDatePicker/i18n/en.json +8 -0
- package/dist/esm/components/RelativeRangeDatePicker/i18n/index.d.ts +1 -0
- package/dist/esm/components/RelativeRangeDatePicker/i18n/index.js +5 -0
- package/dist/esm/components/RelativeRangeDatePicker/i18n/ru.json +8 -0
- package/dist/esm/components/RelativeRangeDatePicker/index.d.ts +4 -0
- package/dist/esm/components/RelativeRangeDatePicker/index.js +3 -0
- package/dist/esm/components/RelativeRangeDatePicker/utils.d.ts +15 -0
- package/dist/esm/components/RelativeRangeDatePicker/utils.js +46 -0
- package/dist/esm/components/index.d.ts +3 -0
- package/dist/esm/components/index.js +2 -0
- package/dist/esm/components/types/datePicker.d.ts +5 -2
- package/dist/esm/components/types/events.d.ts +4 -4
- package/dist/esm/components/types/inputs.d.ts +10 -9
- package/dist/esm/components/utils/dates.d.ts +1 -2
- package/dist/esm/components/utils/useDefaultTimeZone.d.ts +2 -0
- package/dist/esm/components/utils/useDefaultTimeZone.js +10 -0
- package/dist/esm/components/utils/validation/datePicker.d.ts +6 -0
- package/dist/esm/components/utils/validation/datePicker.js +26 -0
- package/dist/esm/components/utils/validation/i18n/en.json +6 -0
- package/dist/esm/components/utils/validation/i18n/index.d.ts +1 -0
- package/dist/esm/components/utils/validation/i18n/index.js +5 -0
- package/dist/esm/components/utils/validation/i18n/ru.json +6 -0
- package/package.json +27 -27
- package/dist/cjs/components/CalendarBase/hooks/useRangeCalendarState.d.ts +0 -7
- package/dist/cjs/components/hooks/useControlledState.d.ts +0 -1
- package/dist/cjs/components/hooks/useControlledState.js +0 -28
- package/dist/esm/components/CalendarBase/hooks/useRangeCalendarState.d.ts +0 -7
- package/dist/esm/components/hooks/useControlledState.d.ts +0 -1
- package/dist/esm/components/hooks/useControlledState.js +0 -23
- /package/dist/cjs/components/{CalendarBase → CalendarView}/hooks/types.js +0 -0
- /package/dist/cjs/components/{CalendarBase → CalendarView}/hooks/useCalendarCellProps.d.ts +0 -0
- /package/dist/cjs/components/{CalendarBase → CalendarView}/hooks/useCalendarGridProps.js +0 -0
- /package/dist/cjs/components/{CalendarBase → CalendarView}/hooks/useCalendarProps.d.ts +0 -0
- /package/dist/cjs/components/{CalendarBase → CalendarView}/hooks/useCalendarProps.js +0 -0
- /package/dist/cjs/components/{CalendarBase → CalendarView}/i18n/en.json +0 -0
- /package/dist/cjs/components/{CalendarBase → CalendarView}/i18n/index.d.ts +0 -0
- /package/dist/cjs/components/{CalendarBase → CalendarView}/i18n/index.js +0 -0
- /package/dist/cjs/components/{CalendarBase → CalendarView}/i18n/ru.json +0 -0
- /package/dist/cjs/components/{CalendarBase → CalendarView}/utils.d.ts +0 -0
- /package/dist/cjs/components/{CalendarBase → CalendarView}/utils.js +0 -0
- /package/dist/esm/components/{CalendarBase → CalendarView}/hooks/types.js +0 -0
- /package/dist/esm/components/{CalendarBase → CalendarView}/hooks/useCalendarCellProps.d.ts +0 -0
- /package/dist/esm/components/{CalendarBase → CalendarView}/hooks/useCalendarProps.d.ts +0 -0
- /package/dist/esm/components/{CalendarBase → CalendarView}/hooks/useCalendarProps.js +0 -0
- /package/dist/esm/components/{CalendarBase → CalendarView}/i18n/en.json +0 -0
- /package/dist/esm/components/{CalendarBase → CalendarView}/i18n/index.d.ts +0 -0
- /package/dist/esm/components/{CalendarBase → CalendarView}/i18n/index.js +0 -0
- /package/dist/esm/components/{CalendarBase → CalendarView}/i18n/ru.json +0 -0
- /package/dist/esm/components/{CalendarBase → CalendarView}/utils.d.ts +0 -0
- /package/dist/esm/components/{CalendarBase → CalendarView}/utils.js +0 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useRelativeRangeDatePickerState = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = tslib_1.__importDefault(require("react"));
|
|
6
|
+
const date_utils_1 = require("@gravity-ui/date-utils");
|
|
7
|
+
const uikit_1 = require("@gravity-ui/uikit");
|
|
8
|
+
const datePicker_1 = require("../../utils/validation/datePicker");
|
|
9
|
+
const i18n_1 = require("../i18n");
|
|
10
|
+
function useRelativeRangeDatePickerState(props) {
|
|
11
|
+
var _a, _b;
|
|
12
|
+
const [value, setValue] = (0, uikit_1.useControlledState)(props.value, (_a = props.defaultValue) !== null && _a !== void 0 ? _a : null);
|
|
13
|
+
const [timeZone, setTimeZone] = (0, uikit_1.useControlledState)(props.timeZone, (_b = props.defaultTimeZone) !== null && _b !== void 0 ? _b : 'default', props.onUpdateTimeZone);
|
|
14
|
+
const validation = react_1.default.useMemo(() => getRangeValidationResult(value, props.allowNullableValues, props.minValue, props.maxValue, props.isDateUnavailable, timeZone), [
|
|
15
|
+
value,
|
|
16
|
+
props.allowNullableValues,
|
|
17
|
+
props.isDateUnavailable,
|
|
18
|
+
props.maxValue,
|
|
19
|
+
props.minValue,
|
|
20
|
+
timeZone,
|
|
21
|
+
]);
|
|
22
|
+
return Object.assign({ value,
|
|
23
|
+
timeZone,
|
|
24
|
+
setValue(v, tz) {
|
|
25
|
+
var _a;
|
|
26
|
+
setValue(v);
|
|
27
|
+
setTimeZone(tz);
|
|
28
|
+
if (value !== v || (value && timeZone !== tz)) {
|
|
29
|
+
(_a = props.onUpdate) === null || _a === void 0 ? void 0 : _a.call(props, v, tz);
|
|
30
|
+
}
|
|
31
|
+
} }, validation);
|
|
32
|
+
}
|
|
33
|
+
exports.useRelativeRangeDatePickerState = useRelativeRangeDatePickerState;
|
|
34
|
+
function getRangeValidationResult(value, allowNullableValues, minValue, maxValue, isDateUnavailable, timeZone) {
|
|
35
|
+
if (!value) {
|
|
36
|
+
return { isInvalid: false, errors: [] };
|
|
37
|
+
}
|
|
38
|
+
const startDate = value.start ? (0, date_utils_1.dateTimeParse)(value.start.value, { timeZone }) : null;
|
|
39
|
+
const endDate = value.end ? (0, date_utils_1.dateTimeParse)(value.end.value, { timeZone, roundUp: true }) : null;
|
|
40
|
+
const startValidationResult = (0, datePicker_1.getValidationResult)(startDate, minValue, maxValue, isDateUnavailable, timeZone, (0, i18n_1.i18n)('"From"'));
|
|
41
|
+
if (!startDate && !allowNullableValues) {
|
|
42
|
+
startValidationResult.isInvalid = true;
|
|
43
|
+
startValidationResult.errors.push((0, i18n_1.i18n)('"From" is required.'));
|
|
44
|
+
}
|
|
45
|
+
const endValidationResult = (0, datePicker_1.getValidationResult)(endDate, minValue, maxValue, isDateUnavailable, timeZone, (0, i18n_1.i18n)('"To"'));
|
|
46
|
+
if (!endDate && !allowNullableValues) {
|
|
47
|
+
endValidationResult.isInvalid = true;
|
|
48
|
+
endValidationResult.errors.push((0, i18n_1.i18n)('"To" is required.'));
|
|
49
|
+
}
|
|
50
|
+
if (startDate && endDate && endDate.isBefore(startDate)) {
|
|
51
|
+
startValidationResult.isInvalid = true;
|
|
52
|
+
startValidationResult.errors.push((0, i18n_1.i18n)(`"From" can't be after "To".`));
|
|
53
|
+
}
|
|
54
|
+
return {
|
|
55
|
+
isInvalid: startValidationResult.isInvalid || endValidationResult.isInvalid,
|
|
56
|
+
errors: startValidationResult.errors.concat(endValidationResult.errors),
|
|
57
|
+
};
|
|
58
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const i18n: (key: "\"From\"" | "\"From\" is required." | "\"To\"" | "\"To\" is required." | "\"From\" can't be after \"To\"." | "to", params?: import("@gravity-ui/i18n").Params | undefined) => string;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.i18n = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const i18n_1 = require("@gravity-ui/uikit/i18n");
|
|
6
|
+
const cn_1 = require("../../../utils/cn");
|
|
7
|
+
const en_json_1 = tslib_1.__importDefault(require("./en.json"));
|
|
8
|
+
const ru_json_1 = tslib_1.__importDefault(require("./ru.json"));
|
|
9
|
+
exports.i18n = (0, i18n_1.addComponentKeysets)({ en: en_json_1.default, ru: ru_json_1.default }, `${cn_1.NAMESPACE}relative-range-date-picker`);
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './RelativeRangeDatePicker';
|
|
2
|
+
export { PickerDialog as RelativeRangeDatePickerDialog } from './components/PickerDialog/PickerDialog';
|
|
3
|
+
export type { PickerDialogProps as RelativeRangeDatePickerDialogProps } from './components/PickerDialog/PickerDialog';
|
|
4
|
+
export * from './hooks/useRelativeRangeDatePickerState';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RelativeRangeDatePickerDialog = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
tslib_1.__exportStar(require("./RelativeRangeDatePicker"), exports);
|
|
6
|
+
var PickerDialog_1 = require("./components/PickerDialog/PickerDialog");
|
|
7
|
+
Object.defineProperty(exports, "RelativeRangeDatePickerDialog", { enumerable: true, get: function () { return PickerDialog_1.PickerDialog; } });
|
|
8
|
+
tslib_1.__exportStar(require("./hooks/useRelativeRangeDatePickerState"), exports);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Value } from '../RelativeDatePicker';
|
|
2
|
+
import type { RangeValue } from '../types';
|
|
3
|
+
import type { Preset } from './components/Presets/defaultPresets';
|
|
4
|
+
export declare function resolveTimeZone(timeZone: string): string;
|
|
5
|
+
export declare function normalizeTimeZone(timeZone: string): string;
|
|
6
|
+
export declare function getTimeZoneOffset(timeZone: string): string;
|
|
7
|
+
interface GetDefaultTitleArgs {
|
|
8
|
+
value: RangeValue<Value | null> | null;
|
|
9
|
+
timeZone: string;
|
|
10
|
+
alwaysShowAsAbsolute?: boolean;
|
|
11
|
+
format?: string;
|
|
12
|
+
presets?: Preset[];
|
|
13
|
+
}
|
|
14
|
+
export declare function getDefaultTitle({ value, timeZone, alwaysShowAsAbsolute, format, presets, }: GetDefaultTitleArgs): string;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getDefaultTitle = exports.getTimeZoneOffset = exports.normalizeTimeZone = exports.resolveTimeZone = void 0;
|
|
4
|
+
const date_utils_1 = require("@gravity-ui/date-utils");
|
|
5
|
+
const utils_1 = require("./components/Presets/utils");
|
|
6
|
+
function resolveTimeZone(timeZone) {
|
|
7
|
+
if (timeZone === 'default' || timeZone === 'system') {
|
|
8
|
+
return (0, date_utils_1.dateTime)({ timeZone }).timeZone();
|
|
9
|
+
}
|
|
10
|
+
return timeZone;
|
|
11
|
+
}
|
|
12
|
+
exports.resolveTimeZone = resolveTimeZone;
|
|
13
|
+
function normalizeTimeZone(timeZone) {
|
|
14
|
+
const lowered = timeZone.toLowerCase();
|
|
15
|
+
if (lowered === 'default' || lowered === 'system') {
|
|
16
|
+
return lowered;
|
|
17
|
+
}
|
|
18
|
+
return resolveTimeZone(timeZone);
|
|
19
|
+
}
|
|
20
|
+
exports.normalizeTimeZone = normalizeTimeZone;
|
|
21
|
+
function getTimeZoneOffset(timeZone) {
|
|
22
|
+
return `UTC ${(0, date_utils_1.dateTime)({ timeZone }).format('Z')}`;
|
|
23
|
+
}
|
|
24
|
+
exports.getTimeZoneOffset = getTimeZoneOffset;
|
|
25
|
+
function getDefaultTitle({ value, timeZone, alwaysShowAsAbsolute, format = 'L', presets, }) {
|
|
26
|
+
var _a, _b, _c, _d, _e, _f;
|
|
27
|
+
if (!value) {
|
|
28
|
+
return '';
|
|
29
|
+
}
|
|
30
|
+
const tz = timeZone === 'system' ? '' : ` (${getTimeZoneOffset(timeZone)})`;
|
|
31
|
+
let from = '';
|
|
32
|
+
if (value.start) {
|
|
33
|
+
from =
|
|
34
|
+
value.start.type === 'relative' && !alwaysShowAsAbsolute
|
|
35
|
+
? value.start.value
|
|
36
|
+
: (_b = (_a = (0, date_utils_1.dateTimeParse)(value.start.value, { timeZone })) === null || _a === void 0 ? void 0 : _a.format(format)) !== null && _b !== void 0 ? _b : '';
|
|
37
|
+
}
|
|
38
|
+
let to = '';
|
|
39
|
+
if (value.end) {
|
|
40
|
+
to =
|
|
41
|
+
value.end.type === 'relative' && !alwaysShowAsAbsolute
|
|
42
|
+
? value.end.value
|
|
43
|
+
: (_d = (_c = (0, date_utils_1.dateTimeParse)(value.end.value, { timeZone, roundUp: true })) === null || _c === void 0 ? void 0 : _c.format(format)) !== null && _d !== void 0 ? _d : '';
|
|
44
|
+
}
|
|
45
|
+
if (!alwaysShowAsAbsolute &&
|
|
46
|
+
((_e = value.start) === null || _e === void 0 ? void 0 : _e.type) === 'relative' &&
|
|
47
|
+
((_f = value.end) === null || _f === void 0 ? void 0 : _f.type) === 'relative') {
|
|
48
|
+
return `${(0, utils_1.getPresetTitle)(value.start.value, value.end.value, presets)}${tz}`;
|
|
49
|
+
}
|
|
50
|
+
const delimiter = ' — ';
|
|
51
|
+
return `${from}${delimiter}${to}${tz}`;
|
|
52
|
+
}
|
|
53
|
+
exports.getDefaultTitle = getDefaultTitle;
|
|
@@ -7,3 +7,5 @@ tslib_1.__exportStar(require("./DateField"), exports);
|
|
|
7
7
|
tslib_1.__exportStar(require("./DatePicker"), exports);
|
|
8
8
|
tslib_1.__exportStar(require("./RelativeDateField"), exports);
|
|
9
9
|
tslib_1.__exportStar(require("./RelativeDatePicker"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./RangeDateField"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./RelativeRangeDatePicker"), exports);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { DateTime } from '@gravity-ui/date-utils';
|
|
2
2
|
import type { InputBase, Validation, ValueBase } from './inputs';
|
|
3
|
-
export interface DateFieldBase<T = DateTime> extends ValueBase<T
|
|
3
|
+
export interface DateFieldBase<T = DateTime> extends ValueBase<T | null>, InputBase, Validation {
|
|
4
4
|
/** The minimum allowed date that a user may select. */
|
|
5
5
|
minValue?: DateTime;
|
|
6
6
|
/** The maximum allowed date that a user may select. */
|
|
@@ -11,6 +11,9 @@ export interface DateFieldBase<T = DateTime> extends ValueBase<T, T | null>, Inp
|
|
|
11
11
|
format?: string;
|
|
12
12
|
/** A placeholder date that controls the default values of each segment when the user first interacts with them. Defaults to today's date at midnight. */
|
|
13
13
|
placeholderValue?: DateTime;
|
|
14
|
-
/**
|
|
14
|
+
/**
|
|
15
|
+
* Which timezone use to show values. Example: 'default', 'system', 'Europe/Amsterdam'.
|
|
16
|
+
* @default The timezone of the `value` or `defaultValue` or `placeholderValue`, 'default' otherwise.
|
|
17
|
+
*/
|
|
15
18
|
timeZone?: string;
|
|
16
19
|
}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
export interface KeyboardEvents {
|
|
3
3
|
/** Handler that is called when a key is pressed. */
|
|
4
|
-
onKeyDown
|
|
4
|
+
onKeyDown?(e: React.KeyboardEvent): void;
|
|
5
5
|
/** Handler that is called when a key is released. */
|
|
6
|
-
onKeyUp
|
|
6
|
+
onKeyUp?(e: React.KeyboardEvent): void;
|
|
7
7
|
}
|
|
8
8
|
export interface FocusEvents<Target = Element> {
|
|
9
9
|
/** Handler that is called when the element receives focus. */
|
|
10
|
-
onFocus
|
|
10
|
+
onFocus?(e: React.FocusEvent<Target>): void;
|
|
11
11
|
/** Handler that is called when the element loses focus. */
|
|
12
|
-
onBlur
|
|
12
|
+
onBlur?(e: React.FocusEvent<Target>): void;
|
|
13
13
|
}
|
|
14
14
|
export interface FocusableProps<Target = Element> extends FocusEvents<Target> {
|
|
15
15
|
/** Whether the element should receive focus on render. */
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import type { TextInputProps as TextInputBaseProps, TextInputPin, TextInputSize, TextInputView } from '@gravity-ui/uikit';
|
|
3
2
|
export type ValidationState = 'invalid';
|
|
4
3
|
export interface AccessibilityProps {
|
|
@@ -13,22 +12,24 @@ export interface AccessibilityProps {
|
|
|
13
12
|
}
|
|
14
13
|
export interface ValueBase<T, C = T> {
|
|
15
14
|
/** The current value (controlled). */
|
|
16
|
-
value?: T
|
|
15
|
+
value?: T;
|
|
17
16
|
/** The default value (uncontrolled). */
|
|
18
17
|
defaultValue?: T;
|
|
19
18
|
/** Handler that is called when the value changes. */
|
|
20
19
|
onUpdate?: (value: C) => void;
|
|
21
20
|
}
|
|
22
|
-
export interface Validation {
|
|
23
|
-
/** Whether the input should display its "invalid" visual styling */
|
|
24
|
-
validationState?: ValidationState;
|
|
25
|
-
/** An error message for the field */
|
|
26
|
-
errorMessage?: React.ReactNode;
|
|
21
|
+
export interface Validation extends Pick<TextInputBaseProps, 'validationState' | 'errorMessage' | 'errorPlacement'> {
|
|
27
22
|
}
|
|
28
23
|
export interface DomProps {
|
|
29
24
|
/** The element's unique identifier. */
|
|
30
25
|
id?: string;
|
|
31
26
|
}
|
|
27
|
+
export interface InputDOMProps {
|
|
28
|
+
/**
|
|
29
|
+
* The name of the input element, used when submitting an HTML form.
|
|
30
|
+
*/
|
|
31
|
+
name?: string;
|
|
32
|
+
}
|
|
32
33
|
export interface InputBase {
|
|
33
34
|
/**
|
|
34
35
|
* Whether the field is disabled.
|
|
@@ -65,11 +66,11 @@ export interface TextInputExtendProps {
|
|
|
65
66
|
/**
|
|
66
67
|
* User`s node rendered before label and input
|
|
67
68
|
*/
|
|
68
|
-
|
|
69
|
+
startContent?: TextInputBaseProps['startContent'];
|
|
69
70
|
/**
|
|
70
71
|
* User`s node rendered after input and clear button
|
|
71
72
|
*/
|
|
72
|
-
|
|
73
|
+
endContent?: TextInputBaseProps['endContent'];
|
|
73
74
|
}
|
|
74
75
|
export interface RangeValue<T> {
|
|
75
76
|
/** The start value of the range. */
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import type { DateTime } from '@gravity-ui/date-utils';
|
|
2
|
-
interface PlaceholderValueOptions {
|
|
2
|
+
export interface PlaceholderValueOptions {
|
|
3
3
|
placeholderValue?: DateTime;
|
|
4
4
|
timeZone?: string;
|
|
5
5
|
}
|
|
6
6
|
export declare function createPlaceholderValue({ placeholderValue, timeZone }: PlaceholderValueOptions): DateTime;
|
|
7
7
|
export declare function isInvalid(value: DateTime | null | undefined, minValue: DateTime | undefined, maxValue: DateTime | undefined): boolean;
|
|
8
8
|
export declare function mergeDateTime(date: DateTime, time: DateTime): DateTime;
|
|
9
|
-
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useDefaultTimeZone = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = tslib_1.__importDefault(require("react"));
|
|
6
|
+
function useDefaultTimeZone(date) {
|
|
7
|
+
const defaultTimeZone = date ? date.timeZone() : 'default';
|
|
8
|
+
const [lastValue, setLastValue] = react_1.default.useState(defaultTimeZone);
|
|
9
|
+
if (date && defaultTimeZone !== lastValue) {
|
|
10
|
+
setLastValue(defaultTimeZone);
|
|
11
|
+
}
|
|
12
|
+
const timeZone = date ? defaultTimeZone : lastValue;
|
|
13
|
+
return timeZone;
|
|
14
|
+
}
|
|
15
|
+
exports.useDefaultTimeZone = useDefaultTimeZone;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { DateTime } from '@gravity-ui/date-utils';
|
|
2
|
+
export interface ValidationResult {
|
|
3
|
+
isInvalid: boolean;
|
|
4
|
+
errors: string[];
|
|
5
|
+
}
|
|
6
|
+
export declare function getValidationResult(value: DateTime | null | undefined, minValue: DateTime | undefined, maxValue: DateTime | undefined, isDateUnavailable: ((v: DateTime) => boolean) | undefined, timeZone: string, valueTitle?: string): ValidationResult;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getValidationResult = void 0;
|
|
4
|
+
const i18n_1 = require("./i18n");
|
|
5
|
+
function getValidationResult(value, minValue, maxValue, isDateUnavailable, timeZone, valueTitle = 'Value') {
|
|
6
|
+
const rangeOverflow = value && maxValue && maxValue.isBefore(value);
|
|
7
|
+
const rangeUnderflow = value && minValue && value.isBefore(minValue);
|
|
8
|
+
const isUnavailable = (value && (isDateUnavailable === null || isDateUnavailable === void 0 ? void 0 : isDateUnavailable(value))) || false;
|
|
9
|
+
const isInvalid = rangeOverflow || rangeUnderflow || isUnavailable;
|
|
10
|
+
const errors = [];
|
|
11
|
+
if (isInvalid) {
|
|
12
|
+
if (rangeUnderflow) {
|
|
13
|
+
errors.push((0, i18n_1.i18n)('Value must be {minValue} or later.', {
|
|
14
|
+
minValue: minValue.timeZone(timeZone).format(),
|
|
15
|
+
value: valueTitle,
|
|
16
|
+
}));
|
|
17
|
+
}
|
|
18
|
+
if (rangeOverflow) {
|
|
19
|
+
errors.push((0, i18n_1.i18n)('Value must be {maxValue} or earlier.', {
|
|
20
|
+
maxValue: maxValue.timeZone(timeZone).format(),
|
|
21
|
+
value: valueTitle,
|
|
22
|
+
}));
|
|
23
|
+
}
|
|
24
|
+
if (isUnavailable) {
|
|
25
|
+
errors.push((0, i18n_1.i18n)('Selected date unavailable.'));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return { isInvalid, errors };
|
|
29
|
+
}
|
|
30
|
+
exports.getValidationResult = getValidationResult;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Value must be {minValue} or later.": "{{value}} must be {{minValue}} or later.",
|
|
3
|
+
"Value must be {maxValue} or earlier.": "{{value}} must be {{maxValue}} or earlier.",
|
|
4
|
+
"Selected date unavailable.": "Selected date unavailable.",
|
|
5
|
+
"Value is required.": "{{value}} is required."
|
|
6
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const i18n: (key: "Selected date unavailable." | "Value must be {minValue} or later." | "Value must be {maxValue} or earlier." | "Value is required.", params?: import("@gravity-ui/i18n").Params | undefined) => string;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.i18n = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const i18n_1 = require("@gravity-ui/uikit/i18n");
|
|
6
|
+
const cn_1 = require("../../../../utils/cn");
|
|
7
|
+
const en_json_1 = tslib_1.__importDefault(require("./en.json"));
|
|
8
|
+
const ru_json_1 = tslib_1.__importDefault(require("./ru.json"));
|
|
9
|
+
exports.i18n = (0, i18n_1.addComponentKeysets)({ en: en_json_1.default, ru: ru_json_1.default }, `${cn_1.NAMESPACE}validation`);
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Value must be {minValue} or later.": "{value} должно ровняться {minValue} или быть позже.",
|
|
3
|
+
"Value must be {maxValue} or earlier.": "{value} должно ровняться {maxValue} или быть раньше.",
|
|
4
|
+
"Selected date unavailable.": "Выбранная дата недоступна.",
|
|
5
|
+
"Value is required.": "{value} обязательно."
|
|
6
|
+
}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
2
|
+
import type { DateTime } from '@gravity-ui/date-utils';
|
|
3
|
+
import type { CalendarInstance, CalendarSize } from '../CalendarView/CalendarView';
|
|
4
|
+
import type { CalendarStateOptions } from '../CalendarView/hooks/useCalendarState';
|
|
4
5
|
import type { AccessibilityProps, DomProps, FocusEvents, StyleProps } from '../types';
|
|
5
|
-
import '../
|
|
6
|
-
export interface CalendarProps extends CalendarStateOptions
|
|
6
|
+
import '../CalendarView/Calendar.css';
|
|
7
|
+
export interface CalendarProps<T = DateTime> extends CalendarStateOptions<T>, DomProps, StyleProps, FocusEvents, AccessibilityProps {
|
|
7
8
|
/**
|
|
8
9
|
* The size of the element.
|
|
9
10
|
* @default m
|
|
10
11
|
*/
|
|
11
12
|
size?: CalendarSize;
|
|
12
13
|
}
|
|
13
|
-
export declare const Calendar: React.ForwardRefExoticComponent<CalendarProps & React.RefAttributes<CalendarInstance>>;
|
|
14
|
+
export declare const Calendar: React.ForwardRefExoticComponent<CalendarProps<DateTime> & React.RefAttributes<CalendarInstance>>;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import {
|
|
4
|
-
import { useCalendarState } from '../
|
|
5
|
-
import '../
|
|
3
|
+
import { CalendarView } from '../CalendarView/CalendarView';
|
|
4
|
+
import { useCalendarState } from '../CalendarView/hooks/useCalendarState';
|
|
5
|
+
import '../CalendarView/Calendar.css';
|
|
6
6
|
export const Calendar = React.forwardRef(function Calendar(props, ref) {
|
|
7
7
|
const state = useCalendarState(props);
|
|
8
|
-
return _jsx(
|
|
8
|
+
return _jsx(CalendarView, Object.assign({ ref: ref }, props, { state: state }));
|
|
9
9
|
});
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export * from './Calendar';
|
|
2
2
|
export * from '../RangeCalendar/RangeCalendar';
|
|
3
|
-
export type { CalendarInstance } from '../
|
|
4
|
-
export * from '../
|
|
5
|
-
export * from '../
|
|
6
|
-
export * from '../
|
|
7
|
-
export * from '../
|
|
8
|
-
export * from '../
|
|
3
|
+
export type { CalendarInstance } from '../CalendarView/CalendarView';
|
|
4
|
+
export * from '../CalendarView/hooks/useCalendarState';
|
|
5
|
+
export * from '../CalendarView/hooks/useRangeCalendarState';
|
|
6
|
+
export * from '../CalendarView/hooks/useCalendarProps';
|
|
7
|
+
export * from '../CalendarView/hooks/useCalendarGridProps';
|
|
8
|
+
export * from '../CalendarView/hooks/useCalendarCellProps';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export * from './Calendar';
|
|
2
2
|
export * from '../RangeCalendar/RangeCalendar';
|
|
3
|
-
export * from '../
|
|
4
|
-
export * from '../
|
|
5
|
-
export * from '../
|
|
6
|
-
export * from '../
|
|
7
|
-
export * from '../
|
|
3
|
+
export * from '../CalendarView/hooks/useCalendarState';
|
|
4
|
+
export * from '../CalendarView/hooks/useRangeCalendarState';
|
|
5
|
+
export * from '../CalendarView/hooks/useCalendarProps';
|
|
6
|
+
export * from '../CalendarView/hooks/useCalendarGridProps';
|
|
7
|
+
export * from '../CalendarView/hooks/useCalendarCellProps';
|
|
@@ -30,7 +30,10 @@
|
|
|
30
30
|
color: var(--g-color-text-secondary);
|
|
31
31
|
}
|
|
32
32
|
.g-date-calendar__controls {
|
|
33
|
-
margin-
|
|
33
|
+
margin-inline-start: auto;
|
|
34
|
+
}
|
|
35
|
+
.g-date-calendar__control-icon {
|
|
36
|
+
transform: scaleX(var(--g-flow-direction));
|
|
34
37
|
}
|
|
35
38
|
.g-date-calendar__grid {
|
|
36
39
|
position: relative;
|
|
@@ -41,8 +44,8 @@
|
|
|
41
44
|
}
|
|
42
45
|
.g-date-calendar__content {
|
|
43
46
|
position: absolute;
|
|
44
|
-
|
|
45
|
-
|
|
47
|
+
inset-block-start: 0;
|
|
48
|
+
inset-inline-start: 0;
|
|
46
49
|
display: grid;
|
|
47
50
|
grid-template-rows: var(--_--calendar-day-size) 1fr;
|
|
48
51
|
box-sizing: border-box;
|
|
@@ -111,14 +114,14 @@
|
|
|
111
114
|
animation: calendar-forward 0.25s ease forwards;
|
|
112
115
|
}
|
|
113
116
|
.g-date-calendar__content_animation_forward.g-date-calendar__current-state {
|
|
114
|
-
|
|
117
|
+
inset-inline-start: calc(var(--g-flow-direction) * -100%);
|
|
115
118
|
}
|
|
116
119
|
.g-date-calendar__content_animation_backward {
|
|
117
120
|
transform: translateX(0);
|
|
118
121
|
animation: calendar-backward 0.25s ease forwards;
|
|
119
122
|
}
|
|
120
123
|
.g-date-calendar__content_animation_backward.g-date-calendar__current-state {
|
|
121
|
-
|
|
124
|
+
inset-inline-start: calc(var(--g-flow-direction) * 100%);
|
|
122
125
|
}
|
|
123
126
|
.g-date-calendar__content_animation_zoom-in {
|
|
124
127
|
transform: scale();
|
|
@@ -206,7 +209,7 @@
|
|
|
206
209
|
}
|
|
207
210
|
.g-date-calendar__button_current::before {
|
|
208
211
|
position: absolute;
|
|
209
|
-
|
|
212
|
+
inset-block-start: 50%;
|
|
210
213
|
display: block;
|
|
211
214
|
width: 4px;
|
|
212
215
|
height: 4px;
|
package/dist/esm/components/{CalendarBase/CalendarBase.d.ts → CalendarView/CalendarView.d.ts}
RENAMED
|
@@ -7,7 +7,7 @@ export type CalendarSize = 'm' | 'l' | 'xl';
|
|
|
7
7
|
export interface CalendarInstance {
|
|
8
8
|
focus: () => void;
|
|
9
9
|
}
|
|
10
|
-
export interface
|
|
10
|
+
export interface CalendarViewProps extends DomProps, StyleProps, FocusEvents, AccessibilityProps {
|
|
11
11
|
state: CalendarState | RangeCalendarState;
|
|
12
12
|
/**
|
|
13
13
|
* The size of the element.
|
|
@@ -15,4 +15,4 @@ export interface CalendarBaseProps extends DomProps, StyleProps, FocusEvents, Ac
|
|
|
15
15
|
*/
|
|
16
16
|
size?: CalendarSize;
|
|
17
17
|
}
|
|
18
|
-
export declare const
|
|
18
|
+
export declare const CalendarView: React.ForwardRefExoticComponent<CalendarViewProps & React.RefAttributes<CalendarInstance>>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import React from 'react';
|
|
3
|
+
import { ChevronLeft, ChevronRight } from '@gravity-ui/icons';
|
|
3
4
|
import { ArrowToggle, Button } from '@gravity-ui/uikit';
|
|
4
5
|
import { block } from '../../utils/cn';
|
|
5
6
|
import { useCalendarCellProps } from './hooks/useCalendarCellProps';
|
|
@@ -8,7 +9,7 @@ import { useCalendarProps } from './hooks/useCalendarProps';
|
|
|
8
9
|
import { calendarLayouts, getDaysInPeriod, getWeekDays } from './utils';
|
|
9
10
|
import './Calendar.css';
|
|
10
11
|
const b = block('calendar');
|
|
11
|
-
export const
|
|
12
|
+
export const CalendarView = React.forwardRef(function Calendar(props, ref) {
|
|
12
13
|
const { state } = props;
|
|
13
14
|
const { calendarProps, modeButtonProps, nextButtonProps, previousButtonProps } = useCalendarProps(props, state);
|
|
14
15
|
React.useImperativeHandle(ref, () => ({
|
|
@@ -20,7 +21,7 @@ export const CalendarBase = React.forwardRef(function Calendar(props, ref) {
|
|
|
20
21
|
state.availableModes.length ? (_jsx("span", { className: b('mode-label', b(`years-label`)), children: modeButtonProps.children }, "label")) : ([
|
|
21
22
|
_jsx("span", { className: b('mode-label'), children: modeButtonProps.children }, "label"),
|
|
22
23
|
_jsx(Button.Icon, { children: _jsx(ArrowToggle, { direction: "bottom" }) }, "icon"),
|
|
23
|
-
]) })), _jsxs("div", { className: b('controls'), children: [_jsx(Button, Object.assign({}, previousButtonProps, { view: "flat", size: props.size, children: _jsx(Button.Icon, { children: _jsx(
|
|
24
|
+
]) })), _jsxs("div", { className: b('controls'), children: [_jsx(Button, Object.assign({}, previousButtonProps, { view: "flat", size: props.size, children: _jsx(Button.Icon, { children: _jsx(ChevronLeft, { className: b('control-icon') }) }) })), _jsx(Button, Object.assign({}, nextButtonProps, { view: "flat", size: props.size, children: _jsx(Button.Icon, { children: _jsx(ChevronRight, { className: b('control-icon') }) }) }))] })] }), _jsx(CalendarGrid, { state: state })] })));
|
|
24
25
|
});
|
|
25
26
|
function CalendarGrid({ state }) {
|
|
26
27
|
const [prevState, setPrevState] = React.useState(() => (Object.assign(Object.assign({}, state), { isFocused: false })));
|