@spothero/ui 17.1.0-beta.0 → 17.1.0-beta.3

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.
Files changed (40) hide show
  1. package/dist/components/{DatepickerRange → Datepicker/Range}/DatepickerRange.js +7 -4
  2. package/dist/components/{DatepickerRange → Datepicker/Range}/DatepickerRange.stories.js +26 -10
  3. package/dist/components/{DatepickerRange → Datepicker/Range}/components/DateRow.js +30 -29
  4. package/dist/components/{DatepickerRange → Datepicker/Range/components}/DatepickerRangeContainer.js +110 -41
  5. package/dist/components/{DatepickerRange → Datepicker/Range}/components/DatepickerRangeControls.js +7 -4
  6. package/dist/components/Datepicker/Range/components/index.js +31 -0
  7. package/dist/components/Datepicker/Range/utils/propTypes.js +158 -0
  8. package/dist/components/Datepicker/{Datepicker.stories.js → Single/Datepicker.stories.js} +49 -30
  9. package/dist/components/Datepicker/{DatepickerContext.js → Single/DatepickerContext.js} +4 -4
  10. package/dist/components/Datepicker/{DatepickerSingle.js → Single/DatepickerSingle.js} +7 -4
  11. package/dist/components/Datepicker/{components → Single/components}/DateRow.js +19 -18
  12. package/dist/components/Datepicker/{DatepickerContainer.js → Single/components/DatepickerContainer.js} +84 -31
  13. package/dist/components/Datepicker/Single/components/DatepickerControl.js +51 -0
  14. package/dist/components/Datepicker/Single/components/index.js +31 -0
  15. package/dist/components/Datepicker/Single/utils/propTypes.js +88 -0
  16. package/dist/components/Datepicker/{components → common/components}/DatepickerDays.js +19 -16
  17. package/dist/components/Datepicker/{components → common/components}/DatepickerHeader.js +28 -23
  18. package/dist/components/Datepicker/common/components/DatepickerInput.js +127 -0
  19. package/dist/components/{DatepickerRange → Datepicker/common}/components/WithPopoverAnchor.js +3 -1
  20. package/dist/components/Datepicker/common/components/WithPortal.js +26 -0
  21. package/dist/components/Datepicker/common/components/index.js +39 -0
  22. package/dist/components/Datepicker/common/utils/constants.js +43 -0
  23. package/dist/components/{DatepickerRange/utils/dateRowArithmentic.js → Datepicker/common/utils/dateRowCalculations.js} +14 -15
  24. package/dist/components/Datepicker/{utils/propTypes.js → common/utils/sharedPropTypes.js} +8 -62
  25. package/dist/components/Datepicker/index.js +23 -0
  26. package/dist/components/index.js +3 -5
  27. package/package.json +1 -1
  28. package/dist/components/Datepicker/components/DatepickerControl.js +0 -83
  29. package/dist/components/Datepicker/constants.js +0 -31
  30. package/dist/components/Datepicker/utils/dateRowArithmentic.js +0 -58
  31. package/dist/components/DatepickerRange/components/DatepickerDays.js +0 -108
  32. package/dist/components/DatepickerRange/components/DatepickerHeader.js +0 -116
  33. package/dist/components/DatepickerRange/components/DatepickerRangeInput.js +0 -90
  34. package/dist/components/DatepickerRange/constants.js +0 -31
  35. package/dist/components/DatepickerRange/utils/generalCalculations.js +0 -71
  36. package/dist/components/DatepickerRange/utils/getWeeksOfMonth.js +0 -51
  37. package/dist/components/DatepickerRange/utils/propTypes.js +0 -245
  38. /package/dist/components/{DatepickerRange → Datepicker/Range}/DatepickerRangeContext.js +0 -0
  39. /package/dist/components/Datepicker/{utils → common/utils}/generalCalculations.js +0 -0
  40. /package/dist/components/Datepicker/{utils → common/utils}/getWeeksOfMonth.js +0 -0
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = exports.datepickerRangeOverridesProps = exports.datepickerRangeControlsOverridesProps = exports.datepickerRangeContextProps = void 0;
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _sharedPropTypes = require("../../common/utils/sharedPropTypes");
13
+
14
+ var datepickerRangeControlsOverridesProps = _propTypes.default.shape({
15
+ /**
16
+ * Overrides for the Flex component that wraps the Start and End Date input fields,
17
+ * see https://chakra-ui.com/docs/components/flex/props for more
18
+ */
19
+ controlsContainer: _propTypes.default.object,
20
+
21
+ /** Overrides for the Start Date Input components */
22
+ startDateInputComponentOverrides: _sharedPropTypes.inputComponentOverridesProps,
23
+
24
+ /** Overrides for the End Date Input components */
25
+ endDateInputComponentOverrides: _sharedPropTypes.inputComponentOverridesProps
26
+ });
27
+
28
+ exports.datepickerRangeControlsOverridesProps = datepickerRangeControlsOverridesProps;
29
+
30
+ var datepickerRangeOverridesProps = _propTypes.default.shape({
31
+ /**
32
+ * Overrides for the parent Popover component,
33
+ * see https://chakra-ui.com/docs/components/popover/props for more
34
+ */
35
+ popover: _propTypes.default.object,
36
+
37
+ /**
38
+ * Overrides for the Portal component that wraps the DatepickerRange calendar Popover, see https://chakra-ui.com/docs/components/portal/props for more
39
+ */
40
+ portal: _propTypes.default.object,
41
+
42
+ /**
43
+ * Overrides for the PopoverContent component,
44
+ * see https://chakra-ui.com/docs/components/popover/props#other-props for more
45
+ */
46
+ popoverContent: _propTypes.default.object,
47
+
48
+ /** An optional Object containing style and prop overrides to be applied to the Form and Control components */
49
+ datepickerRangeControlsOverrides: datepickerRangeControlsOverridesProps,
50
+
51
+ /** An optional Object containing style and prop overrides to be applied to the Popover body, Calendar, and Header componets */
52
+ datepickerRangeBodyOverrides: _sharedPropTypes.datepickerBodyOverridesProps
53
+ });
54
+
55
+ exports.datepickerRangeOverridesProps = datepickerRangeOverridesProps;
56
+ var props = {
57
+ /** An optional (pre-selected) Start Date to populate the Datepicker Range with */
58
+ initialStartDate: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object, _propTypes.default.instanceOf(Date)]),
59
+
60
+ /** An optional (pre-selected) End Date to populate the Datepicker Range with */
61
+ initialEndDate: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object, _propTypes.default.instanceOf(Date)]),
62
+
63
+ /** A string in the format 'MM/DD/YYYY' representing the date where days before it should be disabled in the calendar */
64
+ disableBefore: _propTypes.default.string,
65
+
66
+ /** A string in the format 'MM/DD/YYYY' representing the date where days after it should be disabled in the calendar. */
67
+ disableAfter: _propTypes.default.string,
68
+
69
+ /**
70
+ * A callback function to execute on changes
71
+ *
72
+ * @param {string|object} startDate
73
+ * @param {string|object} endDate
74
+ * @param {boolean} startIsSelected
75
+ * @param {boolean} endIsSelected
76
+ */
77
+ onDateChange: _propTypes.default.func,
78
+
79
+ /** Whether to render the Popover within a Portal or not */
80
+ usePortal: _propTypes.default.bool,
81
+
82
+ /** Whether to display the Start Date Input as invalid or not */
83
+ isStartInvalid: _propTypes.default.bool,
84
+
85
+ /** Whether to display the End Date Input as invalid or not */
86
+ isEndInvalid: _propTypes.default.bool,
87
+
88
+ /** Whether to show the Calendar Icon in the Input field. */
89
+ useInputIcons: _propTypes.default.bool,
90
+
91
+ /** A string to use as the Start Input form label */
92
+ startDateInputLabelText: _propTypes.default.string,
93
+
94
+ /** A string to use as the Start Input placeholder text */
95
+ startDateInputPlaceholderText: _propTypes.default.string,
96
+
97
+ /** A string to use as the Start Input form Error text */
98
+ startDateInputErrorText: _propTypes.default.string,
99
+
100
+ /** A string to use as the End Input form label */
101
+ endDateInputLabelText: _propTypes.default.string,
102
+
103
+ /** A string to use as the End Input placeholder text */
104
+ endDateInputPlaceholderText: _propTypes.default.string,
105
+
106
+ /** A string to use as the End Input form Error text */
107
+ endDateInputErrorText: _propTypes.default.string,
108
+
109
+ /** An optional Object containing style and prop overrides to be applied to the component and child components */
110
+ datepickerRangeOverrides: datepickerRangeOverridesProps
111
+ };
112
+
113
+ var chakraUseDisclosureProps = _propTypes.default.shape({
114
+ isOpen: _propTypes.default.bool,
115
+ onOpen: _propTypes.default.func,
116
+ onClose: _propTypes.default.func
117
+ });
118
+
119
+ var datepickerRangeContextProps = {
120
+ today: _propTypes.default.shape({
121
+ today: _propTypes.default.instanceOf(Date),
122
+ setToday: _propTypes.default.func
123
+ }),
124
+ date: _propTypes.default.shape({
125
+ date: _propTypes.default.instanceOf(Date),
126
+ setDate: _propTypes.default.func
127
+ }),
128
+ selectedStartDate: _propTypes.default.shape({
129
+ selectedStartDate: _propTypes.default.instanceOf(Date),
130
+ setSelectedStartDate: _propTypes.default.func
131
+ }),
132
+ selectedEndDate: _propTypes.default.shape({
133
+ selectedEndDate: _propTypes.default.instanceOf(Date),
134
+ setSelectedEndDate: _propTypes.default.func
135
+ }),
136
+ startIsSelected: _propTypes.default.shape({
137
+ startIsSelected: _propTypes.default.bool,
138
+ setStartIsSelected: _propTypes.default.func
139
+ }),
140
+ endIsSelected: _propTypes.default.shape({
141
+ endIsSelected: _propTypes.default.bool,
142
+ setEndIsSelected: _propTypes.default.func
143
+ }),
144
+ disableBeforeDate: _propTypes.default.shape({
145
+ disableBeforeDate: _propTypes.default.instanceOf(Date),
146
+ setDisableBeforeDate: _propTypes.default.func
147
+ }),
148
+ disableAfterDate: _propTypes.default.shape({
149
+ disableAfterDate: _propTypes.default.instanceOf(Date),
150
+ setDisableAfterDate: _propTypes.default.func
151
+ }),
152
+ isStartInvalid: _propTypes.default.bool,
153
+ isEndInvalid: _propTypes.default.bool,
154
+ disclosure: _propTypes.default.instanceOf(chakraUseDisclosureProps)
155
+ };
156
+ exports.datepickerRangeContextProps = datepickerRangeContextProps;
157
+ var _default = props;
158
+ exports.default = _default;
@@ -40,7 +40,7 @@ var _default = {
40
40
  removeBaseHtmlClass: true
41
41
  },
42
42
  argTypes: {
43
- initialValue: {
43
+ initialSelectedDate: {
44
44
  description: 'An optional (pre-selected) Selected Date to populate the Datepicker with',
45
45
  control: {
46
46
  type: 'text'
@@ -52,6 +52,22 @@ var _default = {
52
52
  }
53
53
  }
54
54
  },
55
+ usePortal: {
56
+ description: 'Whether to render the Popover within a Portal or not',
57
+ control: {
58
+ type: 'boolean'
59
+ },
60
+ table: {
61
+ category: 'display',
62
+ type: {
63
+ summary: 'boolean'
64
+ },
65
+ defaultValue: {
66
+ summary: false
67
+ }
68
+ },
69
+ defaultValue: false
70
+ },
55
71
  useInputIcons: {
56
72
  description: 'Whether to show the Calendar Icon in the Input field',
57
73
  control: {
@@ -183,32 +199,32 @@ var Default = DatepickerTemplate.bind({});
183
199
  exports.Default = Default;
184
200
  var WithInitialValue = DatepickerTemplate.bind({});
185
201
  exports.WithInitialValue = WithInitialValue;
186
- WithInitialValue.argTypes = _objectSpread({}, (0, _disableArgs.default)(['onDateChange', 'disableBefore', 'disableAfter', 'isInvalid', 'useInputIcons', 'dateInputLabelText', 'dateInputPlaceholderText', 'dateInputErrorText']));
202
+ WithInitialValue.argTypes = _objectSpread({}, (0, _disableArgs.default)(['onDateChange', 'usePortal', 'disableBefore', 'disableAfter', 'isInvalid', 'useInputIcons', 'dateInputLabelText', 'dateInputPlaceholderText', 'dateInputErrorText']));
187
203
  WithInitialValue.args = {
188
- initialValue: new Intl.DateTimeFormat('en-US').format(new Date().setDate(new Date().getDate() + 1))
204
+ initialSelectedDate: new Intl.DateTimeFormat('en-US').format(new Date().setDate(new Date().getDate() + 1))
189
205
  };
190
206
  var DisableBeforeAfter = DatepickerTemplate.bind({});
191
207
  exports.DisableBeforeAfter = DisableBeforeAfter;
192
- DisableBeforeAfter.argTypes = _objectSpread({}, (0, _disableArgs.default)(['onDateChange', 'initialValue', 'isInvalid', 'useInputIcons', 'dateInputLabelText', 'dateInputPlaceholderText', 'dateInputErrorText']));
208
+ DisableBeforeAfter.argTypes = _objectSpread({}, (0, _disableArgs.default)(['onDateChange', 'usePortal', 'initialSelectedDate', 'isInvalid', 'useInputIcons', 'dateInputLabelText', 'dateInputPlaceholderText', 'dateInputErrorText']));
193
209
  DisableBeforeAfter.args = {
194
210
  disableBefore: new Intl.DateTimeFormat('en-US').format(new Date().setDate(new Date().getDate() - 5)),
195
211
  disableAfter: new Intl.DateTimeFormat('en-US').format(new Date().setDate(new Date().getDate() + 25))
196
212
  };
197
213
  var UseInputIcon = DatepickerTemplate.bind({});
198
214
  exports.UseInputIcon = UseInputIcon;
199
- UseInputIcon.argTypes = _objectSpread({}, (0, _disableArgs.default)(['onDateChange', 'initialValue', 'disableBefore', 'disableAfter', 'isInvalid', 'dateInputLabelText', 'dateInputPlaceholderText', 'dateInputErrorText']));
215
+ UseInputIcon.argTypes = _objectSpread({}, (0, _disableArgs.default)(['onDateChange', 'usePortal', 'initialSelectedDate', 'disableBefore', 'disableAfter', 'isInvalid', 'dateInputLabelText', 'dateInputPlaceholderText', 'dateInputErrorText']));
200
216
  UseInputIcon.args = {
201
217
  useInputIcons: true
202
218
  };
203
219
  var WithCustomPlaceholder = DatepickerTemplate.bind({});
204
220
  exports.WithCustomPlaceholder = WithCustomPlaceholder;
205
- WithCustomPlaceholder.argTypes = _objectSpread({}, (0, _disableArgs.default)(['onDateChange', 'initialValue', 'disableBefore', 'disableAfter', 'isInvalid', 'useInputIcons', 'dateInputLabelText', 'dateInputErrorText']));
221
+ WithCustomPlaceholder.argTypes = _objectSpread({}, (0, _disableArgs.default)(['onDateChange', 'usePortal', 'initialSelectedDate', 'disableBefore', 'disableAfter', 'isInvalid', 'useInputIcons', 'dateInputLabelText', 'dateInputErrorText']));
206
222
  WithCustomPlaceholder.args = {
207
223
  dateInputPlaceholderText: 'Oh, look a placeholder'
208
224
  };
209
225
  var WithFormControl = DatepickerTemplate.bind({});
210
226
  exports.WithFormControl = WithFormControl;
211
- WithFormControl.argTypes = _objectSpread({}, (0, _disableArgs.default)(['onDateChange', 'initialValue', 'disableBefore', 'disableAfter']));
227
+ WithFormControl.argTypes = _objectSpread({}, (0, _disableArgs.default)(['onDateChange', 'usePortal', 'initialSelectedDate', 'disableBefore', 'disableAfter']));
212
228
  WithFormControl.args = {
213
229
  isInvalid: false,
214
230
  useInputIcons: true,
@@ -217,36 +233,39 @@ WithFormControl.args = {
217
233
  };
218
234
  var WithOverrides = DatepickerTemplate.bind({});
219
235
  exports.WithOverrides = WithOverrides;
220
- WithOverrides.argTypes = _objectSpread(_objectSpread({}, (0, _disableArgs.default)(['initialValue', 'disableBefore', 'disableAfter', 'isInvalid', 'useInputIcons', 'dateInputLabelText', 'dateInputPlaceholderText', 'dateInputErrorText', 'onDateChange'])), {}, {
236
+ WithOverrides.argTypes = _objectSpread(_objectSpread({}, (0, _disableArgs.default)(['initialSelectedDate', 'usePortal', 'disableBefore', 'disableAfter', 'isInvalid', 'useInputIcons', 'dateInputLabelText', 'dateInputPlaceholderText', 'dateInputErrorText', 'onDateChange'])), {}, {
221
237
  datepickerOverrides: {
222
238
  control: 'object'
223
239
  }
224
240
  });
225
241
  WithOverrides.args = {
226
242
  datepickerOverrides: {
227
- inputComponentOverrides: {
228
- formControl: {
229
- backgroundColor: 'blue.100'
230
- },
231
- formLabel: {
232
- color: 'pink',
233
- fontWeight: 'bold',
234
- fontSize: '1.5rem'
235
- },
236
- inputGroup: {
237
- size: 'lg'
238
- },
239
- input: {
240
- borderColor: 'yellow.800',
241
- _hover: {
242
- borderColor: 'yellow.400'
243
+ datepickerControlOverrides: {
244
+ controlsContainer: {},
245
+ inputComponentOverrides: {
246
+ formControl: {
247
+ backgroundColor: 'blue.100'
248
+ },
249
+ formLabel: {
250
+ color: 'pink',
251
+ fontWeight: 'bold',
252
+ fontSize: '1.5rem'
253
+ },
254
+ inputGroup: {
255
+ size: 'lg'
256
+ },
257
+ input: {
258
+ borderColor: 'yellow.800',
259
+ _hover: {
260
+ borderColor: 'yellow.400'
261
+ }
262
+ },
263
+ inputRightElement: {
264
+ backgroundColor: 'red.200'
265
+ },
266
+ formErrorMessage: {
267
+ color: 'red.900'
243
268
  }
244
- },
245
- inputRightElement: {
246
- backgroundColor: 'red.200'
247
- },
248
- formErrorMessage: {
249
- color: 'red.900'
250
269
  }
251
270
  },
252
271
  popover: {
@@ -29,8 +29,8 @@ var useDatepicker = function useDatepicker() {
29
29
  exports.useDatepicker = useDatepicker;
30
30
 
31
31
  var DatepickerProvider = function DatepickerProvider(_ref) {
32
- var _ref$initialValue = _ref.initialValue,
33
- initialValue = _ref$initialValue === void 0 ? null : _ref$initialValue,
32
+ var _ref$initialSelectedD = _ref.initialSelectedDate,
33
+ initialSelectedDate = _ref$initialSelectedD === void 0 ? null : _ref$initialSelectedD,
34
34
  _ref$disableBefore = _ref.disableBefore,
35
35
  disableBefore = _ref$disableBefore === void 0 ? null : _ref$disableBefore,
36
36
  _ref$disableAfter = _ref.disableAfter,
@@ -40,9 +40,9 @@ var DatepickerProvider = function DatepickerProvider(_ref) {
40
40
  // Today
41
41
  var today = (0, _react.useState)(new Date()); // Date used to keep track of what Month is in view
42
42
 
43
- var date = (0, _react.useState)(initialValue ? new Date(initialValue) : new Date()); // Currently selected date
43
+ var date = (0, _react.useState)(initialSelectedDate ? new Date(initialSelectedDate) : new Date()); // Currently selected date
44
44
 
45
- var selectedDate = (0, _react.useState)(initialValue ? new Date(initialValue) : null); // The date where days in the past should be disabled
45
+ var selectedDate = (0, _react.useState)(initialSelectedDate ? new Date(initialSelectedDate) : null); // The date where days in the past should be disabled
46
46
 
47
47
  var disableBeforeDate = (0, _react.useState)(disableBefore ? new Date(disableBefore) : null); // The date where days in the future should be disabled
48
48
 
@@ -13,13 +13,14 @@ var _propTypes = _interopRequireDefault(require("./utils/propTypes"));
13
13
 
14
14
  var _DatepickerContext = require("./DatepickerContext");
15
15
 
16
- var _DatepickerContainer = _interopRequireDefault(require("./DatepickerContainer"));
16
+ var _components = require("./components");
17
17
 
18
18
  var DatepickerSingle = function DatepickerSingle(_ref) {
19
- var initialValue = _ref.initialValue,
19
+ var initialSelectedDate = _ref.initialSelectedDate,
20
20
  disableBefore = _ref.disableBefore,
21
21
  disableAfter = _ref.disableAfter,
22
22
  onDateChange = _ref.onDateChange,
23
+ usePortal = _ref.usePortal,
23
24
  isInvalid = _ref.isInvalid,
24
25
  useInputIcons = _ref.useInputIcons,
25
26
  dateInputLabelText = _ref.dateInputLabelText,
@@ -27,12 +28,13 @@ var DatepickerSingle = function DatepickerSingle(_ref) {
27
28
  dateInputErrorText = _ref.dateInputErrorText,
28
29
  datepickerOverrides = _ref.datepickerOverrides;
29
30
  return /*#__PURE__*/_react.default.createElement(_DatepickerContext.DatepickerProvider, {
30
- initialValue: initialValue,
31
+ initialSelectedDate: initialSelectedDate,
31
32
  disableBefore: disableBefore,
32
33
  disableAfter: disableAfter,
33
34
  isInvalid: isInvalid
34
- }, /*#__PURE__*/_react.default.createElement(_DatepickerContainer.default, {
35
+ }, /*#__PURE__*/_react.default.createElement(_components.DatepickerContainer, {
35
36
  onDateChange: onDateChange,
37
+ usePortal: usePortal,
36
38
  useInputIcons: useInputIcons,
37
39
  dateInputLabelText: dateInputLabelText,
38
40
  dateInputPlaceholderText: dateInputPlaceholderText,
@@ -42,6 +44,7 @@ var DatepickerSingle = function DatepickerSingle(_ref) {
42
44
  };
43
45
 
44
46
  DatepickerSingle.defaultProps = {
47
+ usePortal: false,
45
48
  useInputIcons: true,
46
49
  isInvalid: false,
47
50
  dateInputLabelText: 'Select a Date',
@@ -17,13 +17,13 @@ var _react = _interopRequireDefault(require("react"));
17
17
 
18
18
  var _react2 = require("@chakra-ui/react");
19
19
 
20
- var _DatepickerContext = require("../DatepickerContext");
20
+ var _dateRowCalculations = require("../../common/utils/dateRowCalculations");
21
21
 
22
- var _propTypes = require("../utils/propTypes");
22
+ var _generalCalculations = require("../../common/utils/generalCalculations");
23
23
 
24
- var _dateRowArithmentic = require("../utils/dateRowArithmentic");
24
+ var _sharedPropTypes = require("../../common/utils/sharedPropTypes");
25
25
 
26
- var _generalCalculations = require("../utils/generalCalculations");
26
+ var _DatepickerContext = require("../DatepickerContext");
27
27
 
28
28
  var calendarDateContainerStyleProps = {
29
29
  marginTop: 0,
@@ -65,15 +65,15 @@ var getCalendarDateStyleProps = function getCalendarDateStyleProps(today, date,
65
65
  borderColor: 'white',
66
66
  color: 'text.secondary.light'
67
67
  },
68
- borderColor: (0, _dateRowArithmentic.selected)(calendarDate, selectedDate) ? 'white' : 'transparent',
69
- fontWeight: (0, _dateRowArithmentic.selected)(calendarDate, selectedDate) ? 'semibold' : (0, _dateRowArithmentic.isToday)(calendarDate, today) ? 'bold' : 'base',
70
- zIndex: (0, _dateRowArithmentic.selected)(calendarDate, selectedDate) ? '1200' : '1100',
71
- backgroundColor: (0, _dateRowArithmentic.selected)(calendarDate, selectedDate) ? 'primary.default' : 'transparent',
72
- color: (0, _dateRowArithmentic.selected)(calendarDate, selectedDate) ? 'text.primary.dark' : (0, _dateRowArithmentic.outOfMonth)(calendarDate, date) || (0, _dateRowArithmentic.isBeforeDisabledDate)(calendarDate, disableBeforeDate) || (0, _dateRowArithmentic.isAfterDisabledDate)(calendarDate, disableAfterDate) ? 'text.secondary.light' : 'text.primary.light',
68
+ borderColor: (0, _dateRowCalculations.selectedSingle)(calendarDate, selectedDate) ? 'white' : 'transparent',
69
+ fontWeight: (0, _dateRowCalculations.selectedSingle)(calendarDate, selectedDate) ? 'semibold' : (0, _dateRowCalculations.isToday)(calendarDate, today) ? 'bold' : 'base',
70
+ zIndex: (0, _dateRowCalculations.selectedSingle)(calendarDate, selectedDate) ? '1200' : '1100',
71
+ backgroundColor: (0, _dateRowCalculations.selectedSingle)(calendarDate, selectedDate) ? 'primary.default' : 'transparent',
72
+ color: (0, _dateRowCalculations.selectedSingle)(calendarDate, selectedDate) ? 'text.primary.dark' : (0, _dateRowCalculations.outOfMonth)(calendarDate, date) || (0, _dateRowCalculations.isBeforeDisabledDate)(calendarDate, disableBeforeDate) || (0, _dateRowCalculations.isAfterDisabledDate)(calendarDate, disableAfterDate) ? 'text.secondary.light' : 'text.primary.light',
73
73
  _hover: {
74
74
  borderWidth: '1px',
75
- borderColor: (0, _dateRowArithmentic.selected)(calendarDate, selectedDate) ? 'white' : 'primary.default',
76
- backgroundColor: (0, _dateRowArithmentic.selected)(calendarDate, selectedDate) ? 'primary.600' : 'transparent'
75
+ borderColor: (0, _dateRowCalculations.selectedSingle)(calendarDate, selectedDate) ? 'white' : 'primary.default',
76
+ backgroundColor: (0, _dateRowCalculations.selectedSingle)(calendarDate, selectedDate) ? 'primary.600' : 'transparent'
77
77
  },
78
78
  _disabled: {
79
79
  cursor: 'not-allowed',
@@ -117,26 +117,27 @@ var DateRow = function DateRow(_ref) {
117
117
  };
118
118
 
119
119
  return /*#__PURE__*/_react.default.createElement(_react2.Tbody, (0, _extends2.default)({
120
- "data-testid": "calendarDatesContainer"
120
+ "data-testid": "Datepicker-calendarDatesContainer"
121
121
  }, dateRowOverrides === null || dateRowOverrides === void 0 ? void 0 : dateRowOverrides.tbody), (0, _map.default)(dates).call(dates, function (week, index) {
122
122
  return /*#__PURE__*/_react.default.createElement(_react2.Tr, (0, _extends2.default)({
123
123
  key: index,
124
124
  border: "none",
125
- "data-testid": "calendarRow"
125
+ "data-testid": "Datepicker-calendarRow"
126
126
  }, dateRowOverrides === null || dateRowOverrides === void 0 ? void 0 : dateRowOverrides.tr), (0, _map.default)(week).call(week, function (calendarDate, idx) {
127
127
  return /*#__PURE__*/_react.default.createElement(_react2.Td, (0, _extends2.default)({
128
128
  key: idx,
129
- "data-date": (0, _generalCalculations.formatForDataDate)(calendarDate)
129
+ "data-date": (0, _generalCalculations.formatForDataDate)(calendarDate),
130
+ "data-testid": "Datepicker-calendarDate-Td"
130
131
  }, calendarDateContainerStyleProps, {
131
- disabled: (0, _dateRowArithmentic.isBeforeDisabledDate)(calendarDate, disableBeforeDate) || (0, _dateRowArithmentic.isAfterDisabledDate)(calendarDate, disableAfterDate)
132
+ disabled: (0, _dateRowCalculations.isBeforeDisabledDate)(calendarDate, disableBeforeDate) || (0, _dateRowCalculations.isAfterDisabledDate)(calendarDate, disableAfterDate)
132
133
  }, dateRowOverrides === null || dateRowOverrides === void 0 ? void 0 : dateRowOverrides.td), /*#__PURE__*/_react.default.createElement(_react2.Button, (0, _extends2.default)({
133
134
  value: calendarDate,
134
135
  onClick: handleSelect(calendarDate),
135
136
  role: "gridcell",
136
- "data-testid": "dateColumn-calendarDate"
137
+ "data-testid": "Datepicker-calendarDate-Button"
137
138
  }, getCalendarDateStyleProps(today, date, calendarDate, selectedDate, disableBeforeDate, disableAfterDate), {
138
- disabled: (0, _dateRowArithmentic.isBeforeDisabledDate)(calendarDate, disableBeforeDate) || (0, _dateRowArithmentic.isAfterDisabledDate)(calendarDate, disableAfterDate)
139
- }, dateRowOverrides === null || dateRowOverrides === void 0 ? void 0 : dateRowOverrides.button), (0, _dateRowArithmentic.getButtonText)(calendarDate)));
139
+ disabled: (0, _dateRowCalculations.isBeforeDisabledDate)(calendarDate, disableBeforeDate) || (0, _dateRowCalculations.isAfterDisabledDate)(calendarDate, disableAfterDate)
140
+ }, dateRowOverrides === null || dateRowOverrides === void 0 ? void 0 : dateRowOverrides.button), (0, _dateRowCalculations.getButtonText)(calendarDate)));
140
141
  }));
141
142
  }));
142
143
  };
@@ -2,39 +2,53 @@
2
2
 
3
3
  var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
4
 
5
- var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
5
+ var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
6
+
7
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
8
+
9
+ var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
6
10
 
7
11
  var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
8
12
 
13
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
14
+
15
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
16
+
9
17
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
10
18
 
11
19
  Object.defineProperty(exports, "__esModule", {
12
20
  value: true
13
21
  });
14
- exports.default = void 0;
22
+ exports.getPopoverProps = exports.default = void 0;
15
23
 
16
24
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
17
25
 
18
26
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
19
27
 
28
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
29
+
20
30
  var _react = _interopRequireWildcard(require("react"));
21
31
 
22
32
  var _react2 = require("@chakra-ui/react");
23
33
 
24
- var _propTypes = require("./utils/propTypes");
34
+ var _components = require("../../common/components");
25
35
 
26
- var _DatepickerContext = require("./DatepickerContext");
36
+ var _propTypes = require("../utils/propTypes");
27
37
 
28
- var _DatepickerDays = _interopRequireDefault(require("./components/DatepickerDays"));
38
+ var _DatepickerContext = require("../DatepickerContext");
29
39
 
30
- var _DatepickerHeader = _interopRequireDefault(require("./components/DatepickerHeader"));
40
+ var _DateRow = _interopRequireDefault(require("./DateRow"));
31
41
 
32
- var _DatepickerControl = _interopRequireDefault(require("./components/DatepickerControl"));
42
+ var _DatepickerControl = _interopRequireDefault(require("./DatepickerControl"));
33
43
 
34
44
  function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
35
45
 
36
46
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
37
47
 
48
+ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
49
+
50
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? Object.defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
51
+
38
52
  var popoverContentStyleProps = {
39
53
  width: {
40
54
  base: 304,
@@ -58,55 +72,94 @@ var popoverBodyStyleProps = {
58
72
  alignItems: 'center'
59
73
  };
60
74
 
61
- var DatepickerContainer = function DatepickerContainer(_ref) {
75
+ var getPopoverProps = function getPopoverProps(_ref) {
76
+ var isOpen = _ref.isOpen,
77
+ onCloseCallback = _ref.onCloseCallback,
78
+ isMobile = _ref.isMobile;
79
+ return {
80
+ isOpen: isOpen,
81
+ onClose: onCloseCallback,
82
+ closeOnBlur: true,
83
+ returnFocusOnClose: false,
84
+ isLazy: true,
85
+ lazyBehavior: 'keepMounted',
86
+ openDelay: 250,
87
+ closeDelay: 250,
88
+ placement: !isMobile ? 'bottom-start' : 'bottom',
89
+ modifiers: [{
90
+ name: 'customStyles',
91
+ enabled: true,
92
+ phase: 'write',
93
+ fn: function fn(_ref2) {
94
+ var state = _ref2.state;
95
+ return _objectSpread(_objectSpread({}, state), {}, {
96
+ styles: _objectSpread(_objectSpread({}, state.styles), {}, {
97
+ popper: _objectSpread(_objectSpread({}, state.styles.popper), {}, {
98
+ zIndex: 'var(--chakra-zIndices-layer10)'
99
+ })
100
+ })
101
+ });
102
+ }
103
+ }]
104
+ };
105
+ };
106
+
107
+ exports.getPopoverProps = getPopoverProps;
108
+
109
+ var DatepickerContainer = function DatepickerContainer(_ref3) {
62
110
  var _datepickerOverrides$, _datepickerOverrides$2, _datepickerOverrides$3;
63
111
 
64
- var onDateChange = _ref.onDateChange,
65
- useInputIcons = _ref.useInputIcons,
66
- dateInputLabelText = _ref.dateInputLabelText,
67
- dateInputPlaceholderText = _ref.dateInputPlaceholderText,
68
- dateInputErrorText = _ref.dateInputErrorText,
69
- datepickerOverrides = _ref.datepickerOverrides;
112
+ var onDateChange = _ref3.onDateChange,
113
+ usePortal = _ref3.usePortal,
114
+ useInputIcons = _ref3.useInputIcons,
115
+ dateInputLabelText = _ref3.dateInputLabelText,
116
+ dateInputPlaceholderText = _ref3.dateInputPlaceholderText,
117
+ dateInputErrorText = _ref3.dateInputErrorText,
118
+ datepickerOverrides = _ref3.datepickerOverrides;
70
119
 
71
120
  var _useDatepicker = (0, _DatepickerContext.useDatepicker)(),
72
121
  _useDatepicker$select = (0, _slicedToArray2.default)(_useDatepicker.selectedDate, 1),
73
122
  selectedDate = _useDatepicker$select[0],
74
- isInvalid = _useDatepicker.isInvalid,
75
123
  _useDatepicker$disclo = _useDatepicker.disclosure,
76
124
  isOpen = _useDatepicker$disclo.isOpen,
77
125
  onClose = _useDatepicker$disclo.onClose;
78
126
 
127
+ var isMobile = (0, _react2.useBreakpointValue)({
128
+ base: true,
129
+ mobileXL: false
130
+ });
79
131
  (0, _react.useEffect)(function () {
80
132
  onDateChange === null || onDateChange === void 0 ? void 0 : onDateChange({
81
133
  selectedDate: selectedDate
82
134
  }); // eslint-disable-next-line react-hooks/exhaustive-deps
83
135
  }, [selectedDate]);
84
- return /*#__PURE__*/_react.default.createElement(_react2.Popover, (0, _extends2.default)({
136
+ return /*#__PURE__*/_react.default.createElement(_react2.Popover, (0, _extends2.default)({}, getPopoverProps({
85
137
  isOpen: isOpen,
86
- onClose: onClose,
87
- closeOnBlur: true,
88
- returnFocusOnClose: false,
89
- isLazy: true,
90
- placement: "bottom-start"
91
- }, datepickerOverrides === null || datepickerOverrides === void 0 ? void 0 : datepickerOverrides.popover), /*#__PURE__*/_react.default.createElement(_DatepickerControl.default, {
138
+ onCloseCallback: onClose,
139
+ isMobile: isMobile
140
+ }), datepickerOverrides === null || datepickerOverrides === void 0 ? void 0 : datepickerOverrides.popover), /*#__PURE__*/_react.default.createElement(_DatepickerControl.default, {
92
141
  value: selectedDate,
93
142
  useInputIcons: useInputIcons,
94
- isInputInvalid: isInvalid,
95
143
  inputLabelText: dateInputLabelText,
96
144
  inputPlaceholderText: dateInputPlaceholderText,
97
145
  errorText: dateInputErrorText,
98
- inputComponentOverrides: datepickerOverrides === null || datepickerOverrides === void 0 ? void 0 : datepickerOverrides.inputComponentOverrides
99
- }), /*#__PURE__*/_react.default.createElement(_react2.Portal, datepickerOverrides === null || datepickerOverrides === void 0 ? void 0 : datepickerOverrides.portal, /*#__PURE__*/_react.default.createElement(_react2.PopoverContent, (0, _extends2.default)({
146
+ datepickerControlOverrides: datepickerOverrides === null || datepickerOverrides === void 0 ? void 0 : datepickerOverrides.datepickerControlOverrides
147
+ }), /*#__PURE__*/_react.default.createElement(_components.WithPortal, (0, _extends2.default)({
148
+ usePortal: usePortal
149
+ }, datepickerOverrides === null || datepickerOverrides === void 0 ? void 0 : datepickerOverrides.portal), /*#__PURE__*/_react.default.createElement(_react2.PopoverContent, (0, _extends2.default)({
100
150
  role: "dialog",
101
151
  "aria-modal": "true",
102
152
  "aria-label": "Choose Date",
103
- "data-testid": "PopoverContent"
153
+ "data-testid": "Datepicker-PopoverContent"
104
154
  }, popoverContentStyleProps, datepickerOverrides === null || datepickerOverrides === void 0 ? void 0 : datepickerOverrides.popoverContent), /*#__PURE__*/_react.default.createElement(_react2.PopoverBody, (0, _extends2.default)({
105
- "data-testid": "PopoverBody"
106
- }, popoverBodyStyleProps, datepickerOverrides === null || datepickerOverrides === void 0 ? void 0 : (_datepickerOverrides$ = datepickerOverrides.datepickerBodyOverrides) === null || _datepickerOverrides$ === void 0 ? void 0 : _datepickerOverrides$.popoverBody), /*#__PURE__*/_react.default.createElement(_DatepickerHeader.default, {
107
- datepickerHeaderOverrides: datepickerOverrides === null || datepickerOverrides === void 0 ? void 0 : (_datepickerOverrides$2 = datepickerOverrides.datepickerBodyOverrides) === null || _datepickerOverrides$2 === void 0 ? void 0 : _datepickerOverrides$2.datepickerHeaderOverrides
108
- }), /*#__PURE__*/_react.default.createElement(_DatepickerDays.default, {
109
- datepickerDaysOverrides: datepickerOverrides === null || datepickerOverrides === void 0 ? void 0 : (_datepickerOverrides$3 = datepickerOverrides.datepickerBodyOverrides) === null || _datepickerOverrides$3 === void 0 ? void 0 : _datepickerOverrides$3.datepickerDaysOverrides
155
+ "data-testid": "Datepicker-PopoverBody"
156
+ }, popoverBodyStyleProps, datepickerOverrides === null || datepickerOverrides === void 0 ? void 0 : (_datepickerOverrides$ = datepickerOverrides.datepickerBodyOverrides) === null || _datepickerOverrides$ === void 0 ? void 0 : _datepickerOverrides$.popoverBody), /*#__PURE__*/_react.default.createElement(_components.DatepickerHeader, {
157
+ datepickerHeaderOverrides: datepickerOverrides === null || datepickerOverrides === void 0 ? void 0 : (_datepickerOverrides$2 = datepickerOverrides.datepickerBodyOverrides) === null || _datepickerOverrides$2 === void 0 ? void 0 : _datepickerOverrides$2.datepickerHeaderOverrides,
158
+ context: _DatepickerContext.DatepickerContext
159
+ }), /*#__PURE__*/_react.default.createElement(_components.DatepickerDays, {
160
+ datepickerDaysOverrides: datepickerOverrides === null || datepickerOverrides === void 0 ? void 0 : (_datepickerOverrides$3 = datepickerOverrides.datepickerBodyOverrides) === null || _datepickerOverrides$3 === void 0 ? void 0 : _datepickerOverrides$3.datepickerDaysOverrides,
161
+ context: _DatepickerContext.DatepickerContext,
162
+ DateRow: _DateRow.default
110
163
  })))));
111
164
  };
112
165