@gravity-ui/date-components 1.6.0 → 2.1.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/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/cjs/components/{CalendarBase → CalendarView}/hooks/useCalendarProps.js +17 -0
- 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/CalendarView/i18n/en.json +7 -0
- package/dist/cjs/components/CalendarView/i18n/index.d.ts +1 -0
- package/dist/cjs/components/CalendarView/i18n/ru.json +7 -0
- 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 +8 -6
- package/dist/cjs/components/DatePicker/MobileCalendar.css +7 -32
- package/dist/cjs/components/DatePicker/MobileCalendar.d.ts +0 -5
- package/dist/cjs/components/DatePicker/MobileCalendar.js +18 -20
- package/dist/cjs/components/DatePicker/StubButton.css +26 -0
- package/dist/cjs/components/DatePicker/StubButton.d.ts +8 -0
- package/dist/cjs/components/DatePicker/StubButton.js +12 -0
- package/dist/cjs/components/DatePicker/hooks/useDatePickerProps.js +7 -17
- 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 +15 -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/esm/components/{CalendarBase → CalendarView}/hooks/useCalendarProps.js +17 -0
- 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/CalendarView/i18n/en.json +7 -0
- package/dist/esm/components/CalendarView/i18n/index.d.ts +1 -0
- package/dist/esm/components/CalendarView/i18n/ru.json +7 -0
- 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 +10 -8
- package/dist/esm/components/DatePicker/MobileCalendar.css +7 -32
- package/dist/esm/components/DatePicker/MobileCalendar.d.ts +0 -5
- package/dist/esm/components/DatePicker/MobileCalendar.js +17 -18
- package/dist/esm/components/DatePicker/StubButton.css +26 -0
- package/dist/esm/components/DatePicker/StubButton.d.ts +8 -0
- package/dist/esm/components/DatePicker/StubButton.js +8 -0
- package/dist/esm/components/DatePicker/hooks/useDatePickerProps.js +7 -17
- 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 +17 -4
- 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 +28 -28
- package/dist/cjs/components/CalendarBase/hooks/useRangeCalendarState.d.ts +0 -7
- package/dist/cjs/components/CalendarBase/i18n/en.json +0 -4
- package/dist/cjs/components/CalendarBase/i18n/index.d.ts +0 -1
- package/dist/cjs/components/CalendarBase/i18n/ru.json +0 -4
- 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/CalendarBase/i18n/en.json +0 -4
- package/dist/esm/components/CalendarBase/i18n/index.d.ts +0 -1
- package/dist/esm/components/CalendarBase/i18n/ru.json +0 -4
- 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}/i18n/index.js +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}/i18n/index.js +0 -0
- /package/dist/esm/components/{CalendarBase → CalendarView}/utils.d.ts +0 -0
- /package/dist/esm/components/{CalendarBase → CalendarView}/utils.js +0 -0
package/dist/esm/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { DateTime } from '@gravity-ui/date-utils';
|
|
2
|
+
import type { Value } from '../../RelativeDatePicker';
|
|
3
|
+
import type { RangeValue } from '../../types';
|
|
4
|
+
export interface RelativeRangeDatePickerState {
|
|
5
|
+
value: RangeValue<Value | null> | null;
|
|
6
|
+
timeZone: string;
|
|
7
|
+
setValue: (value: RangeValue<Value | null> | null, timeZone: string) => void;
|
|
8
|
+
isInvalid: boolean;
|
|
9
|
+
errors: string[];
|
|
10
|
+
}
|
|
11
|
+
export interface RelativeRangeDatePickerStateOptions {
|
|
12
|
+
value?: RangeValue<Value | null> | null;
|
|
13
|
+
defaultValue?: RangeValue<Value | null>;
|
|
14
|
+
onUpdate?: (value: RangeValue<Value | null> | null, timeZone: string) => void;
|
|
15
|
+
timeZone?: string;
|
|
16
|
+
defaultTimeZone?: string;
|
|
17
|
+
onUpdateTimeZone?: (timeZone: string) => void;
|
|
18
|
+
/** The minimum allowed date that a user may select. */
|
|
19
|
+
minValue?: DateTime;
|
|
20
|
+
/** The maximum allowed date that a user may select. */
|
|
21
|
+
maxValue?: DateTime;
|
|
22
|
+
/** Callback that is called for each date of the calendar. If it returns true, then the date is unavailable. */
|
|
23
|
+
isDateUnavailable?: (date: DateTime) => boolean;
|
|
24
|
+
allowNullableValues?: boolean;
|
|
25
|
+
}
|
|
26
|
+
export declare function useRelativeRangeDatePickerState(props: RelativeRangeDatePickerStateOptions): RelativeRangeDatePickerState;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { dateTimeParse } from '@gravity-ui/date-utils';
|
|
3
|
+
import { useControlledState } from '@gravity-ui/uikit';
|
|
4
|
+
import { getValidationResult } from '../../utils/validation/datePicker';
|
|
5
|
+
import { i18n } from '../i18n';
|
|
6
|
+
export function useRelativeRangeDatePickerState(props) {
|
|
7
|
+
var _a, _b;
|
|
8
|
+
const [value, setValue] = useControlledState(props.value, (_a = props.defaultValue) !== null && _a !== void 0 ? _a : null);
|
|
9
|
+
const [timeZone, setTimeZone] = useControlledState(props.timeZone, (_b = props.defaultTimeZone) !== null && _b !== void 0 ? _b : 'default', props.onUpdateTimeZone);
|
|
10
|
+
const validation = React.useMemo(() => getRangeValidationResult(value, props.allowNullableValues, props.minValue, props.maxValue, props.isDateUnavailable, timeZone), [
|
|
11
|
+
value,
|
|
12
|
+
props.allowNullableValues,
|
|
13
|
+
props.isDateUnavailable,
|
|
14
|
+
props.maxValue,
|
|
15
|
+
props.minValue,
|
|
16
|
+
timeZone,
|
|
17
|
+
]);
|
|
18
|
+
return Object.assign({ value,
|
|
19
|
+
timeZone,
|
|
20
|
+
setValue(v, tz) {
|
|
21
|
+
var _a;
|
|
22
|
+
setValue(v);
|
|
23
|
+
setTimeZone(tz);
|
|
24
|
+
if (value !== v || (value && timeZone !== tz)) {
|
|
25
|
+
(_a = props.onUpdate) === null || _a === void 0 ? void 0 : _a.call(props, v, tz);
|
|
26
|
+
}
|
|
27
|
+
} }, validation);
|
|
28
|
+
}
|
|
29
|
+
function getRangeValidationResult(value, allowNullableValues, minValue, maxValue, isDateUnavailable, timeZone) {
|
|
30
|
+
if (!value) {
|
|
31
|
+
return { isInvalid: false, errors: [] };
|
|
32
|
+
}
|
|
33
|
+
const startDate = value.start ? dateTimeParse(value.start.value, { timeZone }) : null;
|
|
34
|
+
const endDate = value.end ? dateTimeParse(value.end.value, { timeZone, roundUp: true }) : null;
|
|
35
|
+
const startValidationResult = getValidationResult(startDate, minValue, maxValue, isDateUnavailable, timeZone, i18n('"From"'));
|
|
36
|
+
if (!startDate && !allowNullableValues) {
|
|
37
|
+
startValidationResult.isInvalid = true;
|
|
38
|
+
startValidationResult.errors.push(i18n('"From" is required.'));
|
|
39
|
+
}
|
|
40
|
+
const endValidationResult = getValidationResult(endDate, minValue, maxValue, isDateUnavailable, timeZone, i18n('"To"'));
|
|
41
|
+
if (!endDate && !allowNullableValues) {
|
|
42
|
+
endValidationResult.isInvalid = true;
|
|
43
|
+
endValidationResult.errors.push(i18n('"To" is required.'));
|
|
44
|
+
}
|
|
45
|
+
if (startDate && endDate && endDate.isBefore(startDate)) {
|
|
46
|
+
startValidationResult.isInvalid = true;
|
|
47
|
+
startValidationResult.errors.push(i18n(`"From" can't be after "To".`));
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
isInvalid: startValidationResult.isInvalid || endValidationResult.isInvalid,
|
|
51
|
+
errors: startValidationResult.errors.concat(endValidationResult.errors),
|
|
52
|
+
};
|
|
53
|
+
}
|
|
@@ -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,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,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,46 @@
|
|
|
1
|
+
import { dateTime, dateTimeParse } from '@gravity-ui/date-utils';
|
|
2
|
+
import { getPresetTitle } from './components/Presets/utils';
|
|
3
|
+
export function resolveTimeZone(timeZone) {
|
|
4
|
+
if (timeZone === 'default' || timeZone === 'system') {
|
|
5
|
+
return dateTime({ timeZone }).timeZone();
|
|
6
|
+
}
|
|
7
|
+
return timeZone;
|
|
8
|
+
}
|
|
9
|
+
export function normalizeTimeZone(timeZone) {
|
|
10
|
+
const lowered = timeZone.toLowerCase();
|
|
11
|
+
if (lowered === 'default' || lowered === 'system') {
|
|
12
|
+
return lowered;
|
|
13
|
+
}
|
|
14
|
+
return resolveTimeZone(timeZone);
|
|
15
|
+
}
|
|
16
|
+
export function getTimeZoneOffset(timeZone) {
|
|
17
|
+
return `UTC ${dateTime({ timeZone }).format('Z')}`;
|
|
18
|
+
}
|
|
19
|
+
export function getDefaultTitle({ value, timeZone, alwaysShowAsAbsolute, format = 'L', presets, }) {
|
|
20
|
+
var _a, _b, _c, _d, _e, _f;
|
|
21
|
+
if (!value) {
|
|
22
|
+
return '';
|
|
23
|
+
}
|
|
24
|
+
const tz = timeZone === 'system' ? '' : ` (${getTimeZoneOffset(timeZone)})`;
|
|
25
|
+
let from = '';
|
|
26
|
+
if (value.start) {
|
|
27
|
+
from =
|
|
28
|
+
value.start.type === 'relative' && !alwaysShowAsAbsolute
|
|
29
|
+
? value.start.value
|
|
30
|
+
: (_b = (_a = dateTimeParse(value.start.value, { timeZone })) === null || _a === void 0 ? void 0 : _a.format(format)) !== null && _b !== void 0 ? _b : '';
|
|
31
|
+
}
|
|
32
|
+
let to = '';
|
|
33
|
+
if (value.end) {
|
|
34
|
+
to =
|
|
35
|
+
value.end.type === 'relative' && !alwaysShowAsAbsolute
|
|
36
|
+
? value.end.value
|
|
37
|
+
: (_d = (_c = dateTimeParse(value.end.value, { timeZone, roundUp: true })) === null || _c === void 0 ? void 0 : _c.format(format)) !== null && _d !== void 0 ? _d : '';
|
|
38
|
+
}
|
|
39
|
+
if (!alwaysShowAsAbsolute &&
|
|
40
|
+
((_e = value.start) === null || _e === void 0 ? void 0 : _e.type) === 'relative' &&
|
|
41
|
+
((_f = value.end) === null || _f === void 0 ? void 0 : _f.type) === 'relative') {
|
|
42
|
+
return `${getPresetTitle(value.start.value, value.end.value, presets)}${tz}`;
|
|
43
|
+
}
|
|
44
|
+
const delimiter = ' — ';
|
|
45
|
+
return `${from}${delimiter}${to}${tz}`;
|
|
46
|
+
}
|
|
@@ -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,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export function useDefaultTimeZone(date) {
|
|
3
|
+
const defaultTimeZone = date ? date.timeZone() : 'default';
|
|
4
|
+
const [lastValue, setLastValue] = React.useState(defaultTimeZone);
|
|
5
|
+
if (date && defaultTimeZone !== lastValue) {
|
|
6
|
+
setLastValue(defaultTimeZone);
|
|
7
|
+
}
|
|
8
|
+
const timeZone = date ? defaultTimeZone : lastValue;
|
|
9
|
+
return timeZone;
|
|
10
|
+
}
|
|
@@ -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,26 @@
|
|
|
1
|
+
import { i18n } from './i18n';
|
|
2
|
+
export function getValidationResult(value, minValue, maxValue, isDateUnavailable, timeZone, valueTitle = 'Value') {
|
|
3
|
+
const rangeOverflow = value && maxValue && maxValue.isBefore(value);
|
|
4
|
+
const rangeUnderflow = value && minValue && value.isBefore(minValue);
|
|
5
|
+
const isUnavailable = (value && (isDateUnavailable === null || isDateUnavailable === void 0 ? void 0 : isDateUnavailable(value))) || false;
|
|
6
|
+
const isInvalid = rangeOverflow || rangeUnderflow || isUnavailable;
|
|
7
|
+
const errors = [];
|
|
8
|
+
if (isInvalid) {
|
|
9
|
+
if (rangeUnderflow) {
|
|
10
|
+
errors.push(i18n('Value must be {minValue} or later.', {
|
|
11
|
+
minValue: minValue.timeZone(timeZone).format(),
|
|
12
|
+
value: valueTitle,
|
|
13
|
+
}));
|
|
14
|
+
}
|
|
15
|
+
if (rangeOverflow) {
|
|
16
|
+
errors.push(i18n('Value must be {maxValue} or earlier.', {
|
|
17
|
+
maxValue: maxValue.timeZone(timeZone).format(),
|
|
18
|
+
value: valueTitle,
|
|
19
|
+
}));
|
|
20
|
+
}
|
|
21
|
+
if (isUnavailable) {
|
|
22
|
+
errors.push(i18n('Selected date unavailable.'));
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return { isInvalid, errors };
|
|
26
|
+
}
|
|
@@ -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,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
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gravity-ui/date-components",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "dist/cjs/index.js",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
},
|
|
31
31
|
"homepage": "https://github.com/gravity-ui/date-components#readme",
|
|
32
32
|
"scripts": {
|
|
33
|
-
"prepare": "husky
|
|
33
|
+
"prepare": "husky",
|
|
34
34
|
"lint": "run-p lint:*",
|
|
35
35
|
"lint:js": "eslint --ext .js,.jsx,.ts,.tsx --report-unused-disable-directives .",
|
|
36
36
|
"lint:styles": "stylelint --report-needless-disables 'src/**/*.scss'",
|
|
@@ -46,9 +46,9 @@
|
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
48
|
"@bem-react/classname": "^1.6.0",
|
|
49
|
-
"@gravity-ui/date-utils": "^
|
|
49
|
+
"@gravity-ui/date-utils": "^2.0.1",
|
|
50
50
|
"@gravity-ui/icons": "^2.2.0",
|
|
51
|
-
"tslib": "2.6.2"
|
|
51
|
+
"tslib": "^2.6.2"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
54
|
"@babel/preset-env": "^7.22.9",
|
|
@@ -60,24 +60,23 @@
|
|
|
60
60
|
"@gravity-ui/prettier-config": "^1.1.0",
|
|
61
61
|
"@gravity-ui/stylelint-config": "^4.0.1",
|
|
62
62
|
"@gravity-ui/tsconfig": "^1.0.0",
|
|
63
|
-
"@gravity-ui/uikit": "^
|
|
64
|
-
"@storybook/addon-a11y": "^7.6.
|
|
65
|
-
"@storybook/addon-essentials": "^7.6.
|
|
66
|
-
"@storybook/addon-viewport": "^7.6.
|
|
67
|
-
"@storybook/addons": "^7.6.
|
|
68
|
-
"@storybook/api": "^7.6.
|
|
69
|
-
"@storybook/blocks": "^7.6.
|
|
63
|
+
"@gravity-ui/uikit": "^6.1.1",
|
|
64
|
+
"@storybook/addon-a11y": "^7.6.15",
|
|
65
|
+
"@storybook/addon-essentials": "^7.6.15",
|
|
66
|
+
"@storybook/addon-viewport": "^7.6.15",
|
|
67
|
+
"@storybook/addons": "^7.6.15",
|
|
68
|
+
"@storybook/api": "^7.6.15",
|
|
69
|
+
"@storybook/blocks": "^7.6.15",
|
|
70
70
|
"@storybook/preset-scss": "^1.0.3",
|
|
71
|
-
"@storybook/react": "^7.6.
|
|
72
|
-
"@storybook/react-webpack5": "^7.6.
|
|
73
|
-
"@storybook/theming": "^7.6.
|
|
74
|
-
"@testing-library/jest-dom": "^6.
|
|
75
|
-
"@testing-library/react": "^14.1
|
|
71
|
+
"@storybook/react": "^7.6.15",
|
|
72
|
+
"@storybook/react-webpack5": "^7.6.15",
|
|
73
|
+
"@storybook/theming": "^7.6.15",
|
|
74
|
+
"@testing-library/jest-dom": "^6.4.2",
|
|
75
|
+
"@testing-library/react": "^14.2.1",
|
|
76
76
|
"@testing-library/user-event": "^14.5.2",
|
|
77
|
-
"@types/jest": "^29.5.
|
|
78
|
-
"@types/react": "^18.2.
|
|
79
|
-
"@types/react-dom": "^18.2.
|
|
80
|
-
"cross-env": "^7.0.3",
|
|
77
|
+
"@types/jest": "^29.5.12",
|
|
78
|
+
"@types/react": "^18.2.55",
|
|
79
|
+
"@types/react-dom": "^18.2.19",
|
|
81
80
|
"eslint": "^8.56.0",
|
|
82
81
|
"eslint-plugin-testing-library": "^6.2.0",
|
|
83
82
|
"gulp": "^4.0.2",
|
|
@@ -85,27 +84,28 @@
|
|
|
85
84
|
"gulp-dart-sass": "^1.1.0",
|
|
86
85
|
"gulp-replace": "^1.1.4",
|
|
87
86
|
"gulp-typescript": "^5.0.1",
|
|
88
|
-
"husky": "^
|
|
87
|
+
"husky": "^9.0.11",
|
|
89
88
|
"jest": "^29.5.0",
|
|
90
89
|
"jest-environment-jsdom": "^29.5.0",
|
|
91
90
|
"jest-transform-css": "^6.0.1",
|
|
92
91
|
"nano-staged": "^0.8.0",
|
|
93
92
|
"npm-run-all": "^4.1.5",
|
|
94
|
-
"prettier": "^3.
|
|
93
|
+
"prettier": "^3.2.5",
|
|
95
94
|
"react": "^18.2.0",
|
|
96
95
|
"react-dom": "^18.2.0",
|
|
97
96
|
"rimraf": "5.0.5",
|
|
98
|
-
"sass": "^1.
|
|
97
|
+
"sass": "^1.70.0",
|
|
99
98
|
"sass-loader": "^13.3.3",
|
|
100
|
-
"storybook": "^7.6.
|
|
101
|
-
"style-loader": "^3.3.
|
|
102
|
-
"stylelint": "^15.
|
|
103
|
-
"
|
|
99
|
+
"storybook": "^7.6.15",
|
|
100
|
+
"style-loader": "^3.3.4",
|
|
101
|
+
"stylelint": "^15.11.0",
|
|
102
|
+
"stylelint-use-logical": "^2.1.0",
|
|
103
|
+
"ts-jest": "^29.1.2",
|
|
104
104
|
"ts-node": "^10.9.2",
|
|
105
105
|
"typescript": "^5.3.3"
|
|
106
106
|
},
|
|
107
107
|
"peerDependencies": {
|
|
108
|
-
"@gravity-ui/uikit": "^
|
|
108
|
+
"@gravity-ui/uikit": "^6.0.0",
|
|
109
109
|
"react": "^17.0.0 || ^18.0.0",
|
|
110
110
|
"react-dom": "^17.0.0 || ^18.0.0"
|
|
111
111
|
},
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { DateTime } from '@gravity-ui/date-utils';
|
|
2
|
-
import type { RangeValue, ValueBase } from '../../types';
|
|
3
|
-
import type { CalendarStateOptionsBase, RangeCalendarState } from './types';
|
|
4
|
-
export interface RangeCalendarStateOptions extends ValueBase<RangeValue<DateTime>>, CalendarStateOptionsBase {
|
|
5
|
-
}
|
|
6
|
-
export type { RangeCalendarState } from './types';
|
|
7
|
-
export declare function useRangeCalendarState(props: RangeCalendarStateOptions): RangeCalendarState;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const i18n: (key: "Previous" | "Next", params?: import("@gravity-ui/i18n").Params | undefined) => string;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function useControlledState<T, C extends T = T>(value: T, defaultValue: T, onUpdate?: (value: C, ...args: any[]) => void): readonly [T, (newValue: C, ...args: any[]) => void];
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useControlledState = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const react_1 = tslib_1.__importDefault(require("react"));
|
|
6
|
-
function useControlledState(value, defaultValue, onUpdate) {
|
|
7
|
-
const [innerValue, setInnerValue] = react_1.default.useState(defaultValue);
|
|
8
|
-
const [wasControlled] = react_1.default.useState(value !== undefined);
|
|
9
|
-
const isControlled = value !== undefined;
|
|
10
|
-
if (wasControlled !== isControlled) {
|
|
11
|
-
console.warn(`WARN: A component changed from ${wasControlled ? 'controlled' : 'uncontrolled'} to ${isControlled ? 'controlled' : 'uncontrolled'}.`);
|
|
12
|
-
}
|
|
13
|
-
const currentValueRef = react_1.default.useRef(isControlled ? value : defaultValue);
|
|
14
|
-
react_1.default.useEffect(() => {
|
|
15
|
-
currentValueRef.current = value;
|
|
16
|
-
}, [value]);
|
|
17
|
-
const setState = react_1.default.useCallback((newValue, ...args) => {
|
|
18
|
-
if (!Object.is(currentValueRef.current, newValue)) {
|
|
19
|
-
onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(newValue, ...args);
|
|
20
|
-
}
|
|
21
|
-
if (!isControlled) {
|
|
22
|
-
currentValueRef.current = newValue;
|
|
23
|
-
setInnerValue(newValue);
|
|
24
|
-
}
|
|
25
|
-
}, [isControlled, onUpdate]);
|
|
26
|
-
return [isControlled ? value : innerValue, setState];
|
|
27
|
-
}
|
|
28
|
-
exports.useControlledState = useControlledState;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { DateTime } from '@gravity-ui/date-utils';
|
|
2
|
-
import type { RangeValue, ValueBase } from '../../types';
|
|
3
|
-
import type { CalendarStateOptionsBase, RangeCalendarState } from './types';
|
|
4
|
-
export interface RangeCalendarStateOptions extends ValueBase<RangeValue<DateTime>>, CalendarStateOptionsBase {
|
|
5
|
-
}
|
|
6
|
-
export type { RangeCalendarState } from './types';
|
|
7
|
-
export declare function useRangeCalendarState(props: RangeCalendarStateOptions): RangeCalendarState;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const i18n: (key: "Previous" | "Next", params?: import("@gravity-ui/i18n").Params | undefined) => string;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function useControlledState<T, C extends T = T>(value: T, defaultValue: T, onUpdate?: (value: C, ...args: any[]) => void): readonly [T, (newValue: C, ...args: any[]) => void];
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
export function useControlledState(value, defaultValue, onUpdate) {
|
|
3
|
-
const [innerValue, setInnerValue] = React.useState(defaultValue);
|
|
4
|
-
const [wasControlled] = React.useState(value !== undefined);
|
|
5
|
-
const isControlled = value !== undefined;
|
|
6
|
-
if (wasControlled !== isControlled) {
|
|
7
|
-
console.warn(`WARN: A component changed from ${wasControlled ? 'controlled' : 'uncontrolled'} to ${isControlled ? 'controlled' : 'uncontrolled'}.`);
|
|
8
|
-
}
|
|
9
|
-
const currentValueRef = React.useRef(isControlled ? value : defaultValue);
|
|
10
|
-
React.useEffect(() => {
|
|
11
|
-
currentValueRef.current = value;
|
|
12
|
-
}, [value]);
|
|
13
|
-
const setState = React.useCallback((newValue, ...args) => {
|
|
14
|
-
if (!Object.is(currentValueRef.current, newValue)) {
|
|
15
|
-
onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(newValue, ...args);
|
|
16
|
-
}
|
|
17
|
-
if (!isControlled) {
|
|
18
|
-
currentValueRef.current = newValue;
|
|
19
|
-
setInnerValue(newValue);
|
|
20
|
-
}
|
|
21
|
-
}, [isControlled, onUpdate]);
|
|
22
|
-
return [isControlled ? value : innerValue, setState];
|
|
23
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|