@zendeskgarden/react-datepickers 8.47.0 → 8.48.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/index.cjs.js CHANGED
@@ -27,14 +27,12 @@ function _interopNamespace(e) {
27
27
  var d = Object.getOwnPropertyDescriptor(e, k);
28
28
  Object.defineProperty(n, k, d.get ? d : {
29
29
  enumerable: true,
30
- get: function () {
31
- return e[k];
32
- }
30
+ get: function () { return e[k]; }
33
31
  });
34
32
  }
35
33
  });
36
34
  }
37
- n['default'] = e;
35
+ n["default"] = e;
38
36
  return Object.freeze(n);
39
37
  }
40
38
 
@@ -48,14 +46,9 @@ function ownKeys(object, enumerableOnly) {
48
46
 
49
47
  if (Object.getOwnPropertySymbols) {
50
48
  var symbols = Object.getOwnPropertySymbols(object);
51
-
52
- if (enumerableOnly) {
53
- symbols = symbols.filter(function (sym) {
54
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
55
- });
56
- }
57
-
58
- keys.push.apply(keys, symbols);
49
+ enumerableOnly && (symbols = symbols.filter(function (sym) {
50
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
51
+ })), keys.push.apply(keys, symbols);
59
52
  }
60
53
 
61
54
  return keys;
@@ -63,19 +56,12 @@ function ownKeys(object, enumerableOnly) {
63
56
 
64
57
  function _objectSpread2(target) {
65
58
  for (var i = 1; i < arguments.length; i++) {
66
- var source = arguments[i] != null ? arguments[i] : {};
67
-
68
- if (i % 2) {
69
- ownKeys(Object(source), true).forEach(function (key) {
70
- _defineProperty(target, key, source[key]);
71
- });
72
- } else if (Object.getOwnPropertyDescriptors) {
73
- Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
74
- } else {
75
- ownKeys(Object(source)).forEach(function (key) {
76
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
77
- });
78
- }
59
+ var source = null != arguments[i] ? arguments[i] : {};
60
+ i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
61
+ _defineProperty(target, key, source[key]);
62
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
63
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
64
+ });
79
65
  }
80
66
 
81
67
  return target;
@@ -114,6 +100,42 @@ function _extends$2() {
114
100
  return _extends$2.apply(this, arguments);
115
101
  }
116
102
 
103
+ function _objectWithoutPropertiesLoose(source, excluded) {
104
+ if (source == null) return {};
105
+ var target = {};
106
+ var sourceKeys = Object.keys(source);
107
+ var key, i;
108
+
109
+ for (i = 0; i < sourceKeys.length; i++) {
110
+ key = sourceKeys[i];
111
+ if (excluded.indexOf(key) >= 0) continue;
112
+ target[key] = source[key];
113
+ }
114
+
115
+ return target;
116
+ }
117
+
118
+ function _objectWithoutProperties(source, excluded) {
119
+ if (source == null) return {};
120
+
121
+ var target = _objectWithoutPropertiesLoose(source, excluded);
122
+
123
+ var key, i;
124
+
125
+ if (Object.getOwnPropertySymbols) {
126
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
127
+
128
+ for (i = 0; i < sourceSymbolKeys.length; i++) {
129
+ key = sourceSymbolKeys[i];
130
+ if (excluded.indexOf(key) >= 0) continue;
131
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
132
+ target[key] = source[key];
133
+ }
134
+ }
135
+
136
+ return target;
137
+ }
138
+
117
139
  function _slicedToArray(arr, i) {
118
140
  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
119
141
  }
@@ -392,9 +414,9 @@ function getDate(dirtyDate) {
392
414
  }
393
415
 
394
416
  var COMPONENT_ID$b = 'datepickers.menu';
395
- var StyledMenu = styled__default['default'].div.attrs({
417
+ var StyledMenu = styled__default["default"].div.attrs({
396
418
  'data-garden-id': COMPONENT_ID$b,
397
- 'data-garden-version': '8.47.0'
419
+ 'data-garden-version': '8.48.1'
398
420
  }).withConfig({
399
421
  displayName: "StyledMenu",
400
422
  componentId: "sc-1npbkk0-0"
@@ -406,7 +428,7 @@ StyledMenu.defaultProps = {
406
428
  };
407
429
 
408
430
  var COMPONENT_ID$a = 'datepickers.menu_wrapper';
409
- var StyledMenuWrapper = styled__default['default'].div.attrs(function (props) {
431
+ var StyledMenuWrapper = styled__default["default"].div.attrs(function (props) {
410
432
  return {
411
433
  className: props.isAnimated && 'is-animated'
412
434
  };
@@ -438,7 +460,7 @@ var retrievePadding = function retrievePadding(_ref) {
438
460
  }
439
461
  return "margin: ".concat(value, "px;");
440
462
  };
441
- var StyledDatepicker = styled__default['default'].div.attrs({
463
+ var StyledDatepicker = styled__default["default"].div.attrs({
442
464
  'data-garden-id': COMPONENT_ID$9
443
465
  }).withConfig({
444
466
  displayName: "StyledDatepicker",
@@ -457,7 +479,7 @@ StyledDatepicker.defaultProps = {
457
479
  };
458
480
 
459
481
  var COMPONENT_ID$8 = 'datepickers.range_calendar';
460
- var StyledRangeCalendar = styled__default['default'].div.attrs({
482
+ var StyledRangeCalendar = styled__default["default"].div.attrs({
461
483
  'data-garden-id': COMPONENT_ID$8
462
484
  }).withConfig({
463
485
  displayName: "StyledRangeCalendar",
@@ -472,7 +494,7 @@ StyledRangeCalendar.defaultProps = {
472
494
  };
473
495
 
474
496
  var COMPONENT_ID$7 = 'datepickers.header';
475
- var StyledHeader = styled__default['default'].div.attrs({
497
+ var StyledHeader = styled__default["default"].div.attrs({
476
498
  'data-garden-id': COMPONENT_ID$7
477
499
  }).withConfig({
478
500
  displayName: "StyledHeader",
@@ -500,7 +522,7 @@ var retrieveColor$1 = function retrieveColor(_ref2) {
500
522
  return styled.css([":hover{background-color:", ";color:", ";}:active{background-color:", ";color:", ";}color:", ";"], reactTheming.getColor('primaryHue', 600, theme, 0.08), theme.colors.foreground, reactTheming.getColor('primaryHue', 600, theme, 0.2), theme.colors.foreground, reactTheming.getColor('neutralHue', 600, theme));
501
523
  };
502
524
  var COMPONENT_ID$6 = 'datepickers.header_paddle';
503
- var StyledHeaderPaddle = styled__default['default'].div.attrs({
525
+ var StyledHeaderPaddle = styled__default["default"].div.attrs({
504
526
  'data-garden-id': COMPONENT_ID$6
505
527
  }).withConfig({
506
528
  displayName: "StyledHeaderPaddle",
@@ -522,7 +544,7 @@ StyledHeaderPaddle.defaultProps = {
522
544
  };
523
545
 
524
546
  var COMPONENT_ID$5 = 'datepickers.header_label';
525
- var StyledHeaderLabel = styled__default['default'].div.attrs({
547
+ var StyledHeaderLabel = styled__default["default"].div.attrs({
526
548
  'data-garden-id': COMPONENT_ID$5
527
549
  }).withConfig({
528
550
  displayName: "StyledHeaderLabel",
@@ -539,7 +561,7 @@ StyledHeaderLabel.defaultProps = {
539
561
  };
540
562
 
541
563
  var COMPONENT_ID$4 = 'datepickers.calendar';
542
- var StyledCalendar = styled__default['default'].div.attrs({
564
+ var StyledCalendar = styled__default["default"].div.attrs({
543
565
  'data-garden-id': COMPONENT_ID$4
544
566
  }).withConfig({
545
567
  displayName: "StyledCalendar",
@@ -565,7 +587,7 @@ var retrieveSize = function retrieveSize(_ref) {
565
587
  }
566
588
  return styled.css(["width:", ";height:", ";"], size, size);
567
589
  };
568
- var StyledCalendarItem = styled__default['default'].div.attrs({
590
+ var StyledCalendarItem = styled__default["default"].div.attrs({
569
591
  'data-garden-id': COMPONENT_ID$3
570
592
  }).withConfig({
571
593
  displayName: "StyledCalendarItem",
@@ -578,7 +600,7 @@ StyledCalendarItem.defaultProps = {
578
600
  };
579
601
 
580
602
  var COMPONENT_ID$2 = 'datepickers.day_label';
581
- var StyledDayLabel = styled__default['default'].div.attrs({
603
+ var StyledDayLabel = styled__default["default"].div.attrs({
582
604
  'data-garden-id': COMPONENT_ID$2
583
605
  }).withConfig({
584
606
  displayName: "StyledDayLabel",
@@ -623,7 +645,7 @@ var retrieveColor = function retrieveColor(_ref2) {
623
645
  }
624
646
  return styled.css([""]);
625
647
  };
626
- var StyledHighlight = styled__default['default'].div.attrs({
648
+ var StyledHighlight = styled__default["default"].div.attrs({
627
649
  'data-garden-id': COMPONENT_ID$1
628
650
  }).withConfig({
629
651
  displayName: "StyledHighlight",
@@ -656,7 +678,7 @@ var retrieveStyledDayColors = function retrieveStyledDayColors(_ref) {
656
678
  return styled.css(["background-color:", ";color:", ";", ""], backgroundColor, color, !isSelected && !isDisabled && "\n :hover {\n background-color: ".concat(reactTheming.getColor('primaryHue', 600, theme, 0.08), ";\n color: ").concat(reactTheming.getColor('primaryHue', 800, theme), ";\n }\n\n :active {\n background-color: ").concat(reactTheming.getColor('primaryHue', 600, theme, 0.2), ";\n color: ").concat(reactTheming.getColor('primaryHue', 800, theme), ";\n }\n "));
657
679
  };
658
680
  var COMPONENT_ID = 'datepickers.day';
659
- var StyledDay = styled__default['default'].div.attrs(function (props) {
681
+ var StyledDay = styled__default["default"].div.attrs(function (props) {
660
682
  return {
661
683
  'data-garden-id': COMPONENT_ID,
662
684
  'aria-disabled': props.isDisabled ? 'true' : 'false'
@@ -763,41 +785,41 @@ function getStartOfWeek(locale) {
763
785
  return 0;
764
786
  }
765
787
 
766
- function _extends$1() { _extends$1 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1.apply(this, arguments); }
788
+ var _path$1;
767
789
 
768
- var _ref$1 = /*#__PURE__*/React__namespace.createElement("path", {
769
- fill: "currentColor",
770
- d: "M10.39 12.688a.5.5 0 01-.718.69l-.062-.066-4-5a.5.5 0 01-.054-.542l.054-.082 4-5a.5.5 0 01.83.55l-.05.074L6.641 8l3.75 4.688z"
771
- });
790
+ function _extends$1() { _extends$1 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1.apply(this, arguments); }
772
791
 
773
- function SvgChevronLeftStroke(props) {
792
+ var SvgChevronLeftStroke = function SvgChevronLeftStroke(props) {
774
793
  return /*#__PURE__*/React__namespace.createElement("svg", _extends$1({
775
794
  xmlns: "http://www.w3.org/2000/svg",
776
795
  width: 16,
777
796
  height: 16,
778
- viewBox: "0 0 16 16",
779
797
  focusable: "false",
780
- role: "presentation"
781
- }, props), _ref$1);
782
- }
798
+ viewBox: "0 0 16 16",
799
+ "aria-hidden": "true"
800
+ }, props), _path$1 || (_path$1 = /*#__PURE__*/React__namespace.createElement("path", {
801
+ fill: "currentColor",
802
+ d: "M10.39 12.688a.5.5 0 01-.718.69l-.062-.066-4-5a.5.5 0 01-.054-.542l.054-.082 4-5a.5.5 0 01.83.55l-.05.074L6.641 8l3.75 4.688z"
803
+ })));
804
+ };
783
805
 
784
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
806
+ var _path;
785
807
 
786
- var _ref = /*#__PURE__*/React__namespace.createElement("path", {
787
- fill: "currentColor",
788
- d: "M5.61 3.312a.5.5 0 01.718-.69l.062.066 4 5a.5.5 0 01.054.542l-.054.082-4 5a.5.5 0 01-.83-.55l.05-.074L9.359 8l-3.75-4.688z"
789
- });
808
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
790
809
 
791
- function SvgChevronRightStroke(props) {
810
+ var SvgChevronRightStroke = function SvgChevronRightStroke(props) {
792
811
  return /*#__PURE__*/React__namespace.createElement("svg", _extends({
793
812
  xmlns: "http://www.w3.org/2000/svg",
794
813
  width: 16,
795
814
  height: 16,
796
- viewBox: "0 0 16 16",
797
815
  focusable: "false",
798
- role: "presentation"
799
- }, props), _ref);
800
- }
816
+ viewBox: "0 0 16 16",
817
+ "aria-hidden": "true"
818
+ }, props), _path || (_path = /*#__PURE__*/React__namespace.createElement("path", {
819
+ fill: "currentColor",
820
+ d: "M5.61 3.312a.5.5 0 01.718-.69l.062.066 4 5a.5.5 0 01.054.542l-.054.082-4 5a.5.5 0 01-.83-.55l.05-.074L9.359 8l-3.75-4.688z"
821
+ })));
822
+ };
801
823
 
802
824
  var MonthSelector = function MonthSelector(_ref) {
803
825
  var locale = _ref.locale,
@@ -812,28 +834,28 @@ var MonthSelector = function MonthSelector(_ref) {
812
834
  });
813
835
  return formatter.format(date);
814
836
  }, [locale]);
815
- return React__default['default'].createElement(StyledHeader, {
837
+ return React__default["default"].createElement(StyledHeader, {
816
838
  isCompact: isCompact
817
- }, React__default['default'].createElement(StyledHeaderPaddle, {
839
+ }, React__default["default"].createElement(StyledHeaderPaddle, {
818
840
  isCompact: isCompact,
819
841
  onClick: function onClick() {
820
842
  dispatch({
821
843
  type: 'PREVIEW_PREVIOUS_MONTH'
822
844
  });
823
845
  }
824
- }, React__default['default'].createElement(SvgChevronLeftStroke, null)), React__default['default'].createElement(StyledHeaderLabel, {
846
+ }, React__default["default"].createElement(SvgChevronLeftStroke, null)), React__default["default"].createElement(StyledHeaderLabel, {
825
847
  isCompact: isCompact
826
- }, headerLabelFormatter(state.previewDate)), React__default['default'].createElement(StyledHeaderPaddle, {
848
+ }, headerLabelFormatter(state.previewDate)), React__default["default"].createElement(StyledHeaderPaddle, {
827
849
  isCompact: isCompact,
828
850
  onClick: function onClick() {
829
851
  dispatch({
830
852
  type: 'PREVIEW_NEXT_MONTH'
831
853
  });
832
854
  }
833
- }, React__default['default'].createElement(SvgChevronRightStroke, null)));
855
+ }, React__default["default"].createElement(SvgChevronRightStroke, null)));
834
856
  };
835
857
 
836
- var Calendar$1 = function Calendar(_ref) {
858
+ var Calendar$1 = React.forwardRef(function (_ref, ref) {
837
859
  var value = _ref.value,
838
860
  minValue = _ref.minValue,
839
861
  maxValue = _ref.maxValue,
@@ -862,10 +884,10 @@ var Calendar$1 = function Calendar(_ref) {
862
884
  end: addDays(startDate, 6)
863
885
  }).map(function (date) {
864
886
  var formattedDayLabel = dayLabelFormatter(date);
865
- return React__default['default'].createElement(StyledCalendarItem, {
887
+ return React__default["default"].createElement(StyledCalendarItem, {
866
888
  key: "day-label-".concat(formattedDayLabel),
867
889
  isCompact: isCompact
868
- }, React__default['default'].createElement(StyledDayLabel, {
890
+ }, React__default["default"].createElement(StyledDayLabel, {
869
891
  isCompact: isCompact
870
892
  }, formattedDayLabel));
871
893
  });
@@ -884,10 +906,10 @@ var Calendar$1 = function Calendar(_ref) {
884
906
  if (maxValue !== undefined) {
885
907
  isDisabled = isDisabled || isAfter(date, maxValue) && !isSameDay(date, maxValue);
886
908
  }
887
- return React__default['default'].createElement(StyledCalendarItem, {
909
+ return React__default["default"].createElement(StyledCalendarItem, {
888
910
  key: "day-".concat(itemsIndex),
889
911
  isCompact: isCompact
890
- }, React__default['default'].createElement(StyledDay, {
912
+ }, React__default["default"].createElement(StyledDay, {
891
913
  isToday: isCurrentDate,
892
914
  isPreviousMonth: isPreviousMonth,
893
915
  isSelected: isSelected,
@@ -903,18 +925,20 @@ var Calendar$1 = function Calendar(_ref) {
903
925
  }
904
926
  }, formattedDayLabel));
905
927
  });
906
- return React__default['default'].createElement(StyledDatepicker, {
928
+ return React__default["default"].createElement(StyledDatepicker, {
929
+ ref: ref,
907
930
  isCompact: isCompact,
908
931
  onMouseDown: function onMouseDown(e) {
909
932
  e.preventDefault();
910
933
  }
911
- }, React__default['default'].createElement(MonthSelector, {
934
+ }, React__default["default"].createElement(MonthSelector, {
912
935
  locale: locale,
913
936
  isCompact: isCompact
914
- }), React__default['default'].createElement(StyledCalendar, {
937
+ }), React__default["default"].createElement(StyledCalendar, {
915
938
  isCompact: isCompact
916
939
  }, dayLabels, items));
917
- };
940
+ });
941
+ Calendar$1.displayName = 'Calendar';
918
942
 
919
943
  function addMonths(dirtyDate, dirtyAmount) {
920
944
  requiredArgs(2, arguments);
@@ -3256,7 +3280,8 @@ function retrieveInitialState$1(initialProps) {
3256
3280
  };
3257
3281
  }
3258
3282
 
3259
- var Datepicker = function Datepicker(props) {
3283
+ var _excluded = ["children", "placement", "popperModifiers", "eventsEnabled", "zIndex", "isAnimated", "refKey", "value", "isCompact", "onChange", "formatDate", "minValue", "maxValue", "locale", "customParseDate"];
3284
+ var Datepicker = React.forwardRef(function (props, calendarRef) {
3260
3285
  var children = props.children,
3261
3286
  placement = props.placement,
3262
3287
  popperModifiers = props.popperModifiers,
@@ -3271,7 +3296,8 @@ var Datepicker = function Datepicker(props) {
3271
3296
  minValue = props.minValue,
3272
3297
  maxValue = props.maxValue,
3273
3298
  locale = props.locale,
3274
- customParseDate = props.customParseDate;
3299
+ customParseDate = props.customParseDate,
3300
+ menuProps = _objectWithoutProperties(props, _excluded);
3275
3301
  var theme = React.useContext(styled.ThemeContext);
3276
3302
  var memoizedReducer = React.useCallback(datepickerReducer({
3277
3303
  value: value,
@@ -3329,13 +3355,13 @@ var Datepicker = function Datepicker(props) {
3329
3355
  dispatch: dispatch
3330
3356
  };
3331
3357
  }, [state, dispatch]);
3332
- return React__default['default'].createElement(DatepickerContext.Provider, {
3358
+ return React__default["default"].createElement(DatepickerContext.Provider, {
3333
3359
  value: contextValue
3334
- }, React__default['default'].createElement(reactPopper.Manager, null, React__default['default'].createElement(reactPopper.Reference, null, function (_ref) {
3360
+ }, React__default["default"].createElement(reactPopper.Manager, null, React__default["default"].createElement(reactPopper.Reference, null, function (_ref) {
3335
3361
  var _React$cloneElement;
3336
3362
  var ref = _ref.ref;
3337
- var childElement = React__default['default'].Children.only(children);
3338
- return React__default['default'].cloneElement(childElement, (_React$cloneElement = {}, _defineProperty(_React$cloneElement, refKey, function (refValue) {
3363
+ var childElement = React__default["default"].Children.only(children);
3364
+ return React__default["default"].cloneElement(childElement, (_React$cloneElement = {}, _defineProperty(_React$cloneElement, refKey, function (refValue) {
3339
3365
  ref(refValue);
3340
3366
  inputRef.current = refValue;
3341
3367
  }), _defineProperty(_React$cloneElement, "onMouseDown", containerUtilities.composeEventHandlers(childElement.props.onMouseDown, function () {
@@ -3376,7 +3402,7 @@ var Datepicker = function Datepicker(props) {
3376
3402
  break;
3377
3403
  }
3378
3404
  })), _defineProperty(_React$cloneElement, "autoComplete", 'off'), _defineProperty(_React$cloneElement, "value", state.inputValue), _React$cloneElement));
3379
- }), React__default['default'].createElement(reactPopper.Popper, {
3405
+ }), React__default["default"].createElement(reactPopper.Popper, {
3380
3406
  placement: popperPlacement,
3381
3407
  modifiers: popperModifiers
3382
3408
  ,
@@ -3387,14 +3413,15 @@ var Datepicker = function Datepicker(props) {
3387
3413
  scheduleUpdate = _ref2.scheduleUpdate,
3388
3414
  currentPlacement = _ref2.placement;
3389
3415
  scheduleUpdateRef.current = scheduleUpdate;
3390
- return React__default['default'].createElement(StyledMenuWrapper, {
3416
+ return React__default["default"].createElement(StyledMenuWrapper, {
3391
3417
  ref: ref,
3392
3418
  style: style,
3393
3419
  isHidden: !state.isOpen,
3394
3420
  isAnimated: isAnimated && (state.isOpen || isVisible),
3395
3421
  placement: currentPlacement,
3396
3422
  zIndex: zIndex
3397
- }, React__default['default'].createElement(StyledMenu, null, React__default['default'].createElement(Calendar$1, {
3423
+ }, (state.isOpen || isVisible) && React__default["default"].createElement(StyledMenu, menuProps, React__default["default"].createElement(Calendar$1, {
3424
+ ref: calendarRef,
3398
3425
  isCompact: isCompact,
3399
3426
  value: value,
3400
3427
  minValue: minValue,
@@ -3402,22 +3429,23 @@ var Datepicker = function Datepicker(props) {
3402
3429
  locale: locale
3403
3430
  })));
3404
3431
  })));
3405
- };
3432
+ });
3433
+ Datepicker.displayName = 'Datepicker';
3406
3434
  Datepicker.propTypes = {
3407
- value: PropTypes__default['default'].any,
3408
- onChange: PropTypes__default['default'].any,
3409
- formatDate: PropTypes__default['default'].func,
3410
- locale: PropTypes__default['default'].any,
3411
- minValue: PropTypes__default['default'].any,
3412
- maxValue: PropTypes__default['default'].any,
3413
- isCompact: PropTypes__default['default'].bool,
3414
- customParseDate: PropTypes__default['default'].any,
3415
- refKey: PropTypes__default['default'].string,
3416
- placement: PropTypes__default['default'].oneOf(['auto', 'top', 'top-start', 'top-end', 'end', 'end-top', 'end-bottom', 'bottom', 'bottom-start', 'bottom-end', 'start', 'start-top', 'start-bottom']),
3417
- popperModifiers: PropTypes__default['default'].any,
3418
- isAnimated: PropTypes__default['default'].bool,
3419
- eventsEnabled: PropTypes__default['default'].bool,
3420
- zIndex: PropTypes__default['default'].number
3435
+ value: PropTypes__default["default"].any,
3436
+ onChange: PropTypes__default["default"].any,
3437
+ formatDate: PropTypes__default["default"].func,
3438
+ locale: PropTypes__default["default"].any,
3439
+ minValue: PropTypes__default["default"].any,
3440
+ maxValue: PropTypes__default["default"].any,
3441
+ isCompact: PropTypes__default["default"].bool,
3442
+ customParseDate: PropTypes__default["default"].any,
3443
+ refKey: PropTypes__default["default"].string,
3444
+ placement: PropTypes__default["default"].oneOf(['auto', 'top', 'top-start', 'top-end', 'end', 'end-top', 'end-bottom', 'bottom', 'bottom-start', 'bottom-end', 'start', 'start-top', 'start-bottom']),
3445
+ popperModifiers: PropTypes__default["default"].any,
3446
+ isAnimated: PropTypes__default["default"].bool,
3447
+ eventsEnabled: PropTypes__default["default"].bool,
3448
+ zIndex: PropTypes__default["default"].number
3421
3449
  };
3422
3450
  Datepicker.defaultProps = {
3423
3451
  placement: 'bottom-start',
@@ -3770,8 +3798,8 @@ var Start = function Start(props) {
3770
3798
  });
3771
3799
  props.children.props.onBlur && props.children.props.onBlur(e);
3772
3800
  }, [dispatch, props.children]);
3773
- var childElement = React__default['default'].Children.only(props.children);
3774
- return React__default['default'].cloneElement(childElement, {
3801
+ var childElement = React__default["default"].Children.only(props.children);
3802
+ return React__default["default"].cloneElement(childElement, {
3775
3803
  value: state.startInputValue,
3776
3804
  ref: startInputRef,
3777
3805
  onChange: containerUtilities.composeEventHandlers(childElement.props.onChange, onChangeCallback),
@@ -3780,6 +3808,7 @@ var Start = function Start(props) {
3780
3808
  onBlur: containerUtilities.composeEventHandlers(childElement.props.onBlur, onBlurCallback)
3781
3809
  });
3782
3810
  };
3811
+ Start.displayName = 'DatepickerRange.Start';
3783
3812
 
3784
3813
  var End = function End(props) {
3785
3814
  var _useDatepickerRangeCo = useDatepickerContext(),
@@ -3814,8 +3843,8 @@ var End = function End(props) {
3814
3843
  });
3815
3844
  props.children.props.onBlur && props.children.props.onBlur(e);
3816
3845
  }, [dispatch, props.children]);
3817
- var childElement = React__default['default'].Children.only(props.children);
3818
- return React__default['default'].cloneElement(childElement, {
3846
+ var childElement = React__default["default"].Children.only(props.children);
3847
+ return React__default["default"].cloneElement(childElement, {
3819
3848
  value: state.endInputValue,
3820
3849
  ref: endInputRef,
3821
3850
  onChange: containerUtilities.composeEventHandlers(childElement.props.onChange, onChangeCallback),
@@ -3824,6 +3853,7 @@ var End = function End(props) {
3824
3853
  onBlur: containerUtilities.composeEventHandlers(childElement.props.onBlur, onBlurCallback)
3825
3854
  });
3826
3855
  };
3856
+ End.displayName = 'DatepickerRange.End';
3827
3857
 
3828
3858
  function subDays(dirtyDate, dirtyAmount) {
3829
3859
  requiredArgs(2, arguments);
@@ -3831,7 +3861,7 @@ function subDays(dirtyDate, dirtyAmount) {
3831
3861
  return addDays(dirtyDate, -amount);
3832
3862
  }
3833
3863
 
3834
- var Month = function Month(_ref) {
3864
+ var Month = React.forwardRef(function (_ref, ref) {
3835
3865
  var locale = _ref.locale,
3836
3866
  displayDate = _ref.displayDate,
3837
3867
  isCompact = _ref.isCompact,
@@ -3876,10 +3906,10 @@ var Month = function Month(_ref) {
3876
3906
  end: addDays(startDate, 6)
3877
3907
  }).map(function (date) {
3878
3908
  var formattedDayLabel = dayLabelFormatter(date);
3879
- return React__default['default'].createElement(StyledCalendarItem, {
3909
+ return React__default["default"].createElement(StyledCalendarItem, {
3880
3910
  key: "day-label-".concat(formattedDayLabel),
3881
3911
  isCompact: isCompact
3882
- }, React__default['default'].createElement(StyledDayLabel, {
3912
+ }, React__default["default"].createElement(StyledDayLabel, {
3883
3913
  isCompact: isCompact
3884
3914
  }, formattedDayLabel));
3885
3915
  });
@@ -3891,10 +3921,10 @@ var Month = function Month(_ref) {
3891
3921
  var isCurrentDate = isToday(date);
3892
3922
  var isPreviousMonth = !isSameMonth(date, displayDate);
3893
3923
  if (isPreviousMonth) {
3894
- return React__default['default'].createElement(StyledCalendarItem, {
3924
+ return React__default["default"].createElement(StyledCalendarItem, {
3895
3925
  key: "day-".concat(itemsIndex),
3896
3926
  isCompact: isCompact
3897
- }, React__default['default'].createElement(StyledDay, {
3927
+ }, React__default["default"].createElement(StyledDay, {
3898
3928
  isCompact: isCompact,
3899
3929
  isPreviousMonth: true,
3900
3930
  isDisabled: true
@@ -3939,14 +3969,14 @@ var Month = function Month(_ref) {
3939
3969
  isInvalidDateRange = isInvalidDateRange || compareAsc(endValue, maxValue) === 1;
3940
3970
  }
3941
3971
  }
3942
- return React__default['default'].createElement(StyledCalendarItem, {
3972
+ return React__default["default"].createElement(StyledCalendarItem, {
3943
3973
  key: "day-".concat(itemsIndex),
3944
3974
  isCompact: isCompact
3945
- }, React__default['default'].createElement(StyledHighlight, {
3975
+ }, React__default["default"].createElement(StyledHighlight, {
3946
3976
  isHighlighted: !isInvalidDateRange && isHighlighted && !isDisabled,
3947
3977
  isStart: !isInvalidDateRange && isHighlightStart,
3948
3978
  isEnd: !isInvalidDateRange && isHighlightEnd
3949
- }), React__default['default'].createElement(StyledDay, {
3979
+ }), React__default["default"].createElement(StyledDay, {
3950
3980
  isToday: isCurrentDate,
3951
3981
  isPreviousMonth: isPreviousMonth,
3952
3982
  isSelected: !isInvalidDateRange && isSelected,
@@ -3970,14 +4000,15 @@ var Month = function Month(_ref) {
3970
4000
  }
3971
4001
  }, formattedDayLabel));
3972
4002
  });
3973
- return React__default['default'].createElement(StyledDatepicker, {
4003
+ return React__default["default"].createElement(StyledDatepicker, {
4004
+ ref: ref,
3974
4005
  isCompact: isCompact,
3975
4006
  onMouseDown: function onMouseDown(e) {
3976
4007
  e.preventDefault();
3977
4008
  }
3978
- }, React__default['default'].createElement(StyledHeader, {
4009
+ }, React__default["default"].createElement(StyledHeader, {
3979
4010
  isCompact: isCompact
3980
- }, React__default['default'].createElement(StyledHeaderPaddle, {
4011
+ }, React__default["default"].createElement(StyledHeaderPaddle, {
3981
4012
  isCompact: isCompact,
3982
4013
  onClick: function onClick() {
3983
4014
  dispatch({
@@ -3985,9 +4016,9 @@ var Month = function Month(_ref) {
3985
4016
  });
3986
4017
  },
3987
4018
  isHidden: isPreviousHidden
3988
- }, React__default['default'].createElement(SvgChevronLeftStroke, null)), React__default['default'].createElement(StyledHeaderLabel, {
4019
+ }, React__default["default"].createElement(SvgChevronLeftStroke, null)), React__default["default"].createElement(StyledHeaderLabel, {
3989
4020
  isCompact: isCompact
3990
- }, headerLabelFormatter(displayDate)), React__default['default'].createElement(StyledHeaderPaddle, {
4021
+ }, headerLabelFormatter(displayDate)), React__default["default"].createElement(StyledHeaderPaddle, {
3991
4022
  isCompact: isCompact,
3992
4023
  isHidden: isNextHidden,
3993
4024
  onClick: function onClick() {
@@ -3995,7 +4026,7 @@ var Month = function Month(_ref) {
3995
4026
  type: 'PREVIEW_NEXT_MONTH'
3996
4027
  });
3997
4028
  }
3998
- }, React__default['default'].createElement(SvgChevronRightStroke, null))), React__default['default'].createElement(StyledCalendar, {
4029
+ }, React__default["default"].createElement(SvgChevronRightStroke, null))), React__default["default"].createElement(StyledCalendar, {
3999
4030
  isCompact: isCompact,
4000
4031
  onMouseLeave: function onMouseLeave() {
4001
4032
  dispatch({
@@ -4004,9 +4035,10 @@ var Month = function Month(_ref) {
4004
4035
  });
4005
4036
  }
4006
4037
  }, dayLabels, items));
4007
- };
4038
+ });
4039
+ Month.displayName = 'Month';
4008
4040
 
4009
- var Calendar = function Calendar(props) {
4041
+ var Calendar = React.forwardRef(function (props, ref) {
4010
4042
  var _useDatepickerRangeCo = useDatepickerContext(),
4011
4043
  state = _useDatepickerRangeCo.state,
4012
4044
  dispatch = _useDatepickerRangeCo.dispatch,
@@ -4017,10 +4049,11 @@ var Calendar = function Calendar(props) {
4017
4049
  startValue = _useDatepickerRangeCo.startValue,
4018
4050
  endValue = _useDatepickerRangeCo.endValue,
4019
4051
  onChange = _useDatepickerRangeCo.onChange;
4020
- return React__default['default'].createElement(StyledRangeCalendar, _extends$2({
4052
+ return React__default["default"].createElement(StyledRangeCalendar, _extends$2({
4053
+ ref: ref,
4021
4054
  "data-garden-id": "datepickers.range",
4022
- "data-garden-version": '8.47.0'
4023
- }, props), React__default['default'].createElement(Month, {
4055
+ "data-garden-version": '8.48.1'
4056
+ }, props), React__default["default"].createElement(Month, {
4024
4057
  locale: locale,
4025
4058
  displayDate: state.previewDate,
4026
4059
  isCompact: isCompact,
@@ -4032,7 +4065,7 @@ var Calendar = function Calendar(props) {
4032
4065
  endValue: endValue,
4033
4066
  onChange: onChange,
4034
4067
  hoverDate: state.hoverDate
4035
- }), React__default['default'].createElement(Month, {
4068
+ }), React__default["default"].createElement(Month, {
4036
4069
  locale: locale,
4037
4070
  displayDate: addMonths(state.previewDate, 1),
4038
4071
  isCompact: isCompact,
@@ -4045,9 +4078,10 @@ var Calendar = function Calendar(props) {
4045
4078
  onChange: onChange,
4046
4079
  hoverDate: state.hoverDate
4047
4080
  }));
4048
- };
4081
+ });
4082
+ Calendar.displayName = 'DatepickerRange.Calendar';
4049
4083
 
4050
- var DatepickerRange = function DatepickerRange(props) {
4084
+ var DatepickerRangeComponent = function DatepickerRangeComponent(props) {
4051
4085
  var startValue = props.startValue,
4052
4086
  locale = props.locale,
4053
4087
  formatDate = props.formatDate,
@@ -4109,28 +4143,29 @@ var DatepickerRange = function DatepickerRange(props) {
4109
4143
  endInputRef: endInputRef
4110
4144
  };
4111
4145
  }, [state, dispatch, isCompact, locale, minValue, maxValue, startValue, endValue, onChange, startInputRef, endInputRef]);
4112
- return React__default['default'].createElement(DatepickerRangeContext.Provider, {
4146
+ return React__default["default"].createElement(DatepickerRangeContext.Provider, {
4113
4147
  value: value
4114
4148
  }, children);
4115
4149
  };
4116
- DatepickerRange.Start = Start;
4117
- DatepickerRange.End = End;
4118
- DatepickerRange.Calendar = Calendar;
4119
- DatepickerRange.propTypes = {
4120
- locale: PropTypes__default['default'].string,
4121
- startValue: PropTypes__default['default'].instanceOf(Date),
4122
- endValue: PropTypes__default['default'].instanceOf(Date),
4123
- minValue: PropTypes__default['default'].instanceOf(Date),
4124
- maxValue: PropTypes__default['default'].instanceOf(Date),
4125
- onChange: PropTypes__default['default'].func,
4126
- formatDate: PropTypes__default['default'].func,
4127
- customParseDate: PropTypes__default['default'].func,
4128
- isCompact: PropTypes__default['default'].bool
4150
+ DatepickerRangeComponent.propTypes = {
4151
+ locale: PropTypes__default["default"].string,
4152
+ startValue: PropTypes__default["default"].instanceOf(Date),
4153
+ endValue: PropTypes__default["default"].instanceOf(Date),
4154
+ minValue: PropTypes__default["default"].instanceOf(Date),
4155
+ maxValue: PropTypes__default["default"].instanceOf(Date),
4156
+ onChange: PropTypes__default["default"].func,
4157
+ formatDate: PropTypes__default["default"].func,
4158
+ customParseDate: PropTypes__default["default"].func,
4159
+ isCompact: PropTypes__default["default"].bool
4129
4160
  };
4130
- DatepickerRange.defaultProps = {
4161
+ DatepickerRangeComponent.defaultProps = {
4131
4162
  locale: 'en-US',
4132
4163
  isCompact: false
4133
4164
  };
4165
+ var DatepickerRange = DatepickerRangeComponent;
4166
+ DatepickerRange.Calendar = Calendar;
4167
+ DatepickerRange.End = End;
4168
+ DatepickerRange.Start = Start;
4134
4169
 
4135
4170
  exports.Datepicker = Datepicker;
4136
4171
  exports.DatepickerRange = DatepickerRange;
package/dist/index.esm.js CHANGED
@@ -6,7 +6,7 @@
6
6
  */
7
7
 
8
8
  import * as React from 'react';
9
- import React__default, { createContext, useContext, useCallback, useReducer, useRef, useEffect, useState, useMemo } from 'react';
9
+ import React__default, { createContext, useContext, useCallback, forwardRef, useReducer, useRef, useEffect, useState, useMemo } from 'react';
10
10
  import PropTypes from 'prop-types';
11
11
  import styled, { css, ThemeContext } from 'styled-components';
12
12
  import { Manager, Reference, Popper } from 'react-popper';
@@ -18,14 +18,9 @@ function ownKeys(object, enumerableOnly) {
18
18
 
19
19
  if (Object.getOwnPropertySymbols) {
20
20
  var symbols = Object.getOwnPropertySymbols(object);
21
-
22
- if (enumerableOnly) {
23
- symbols = symbols.filter(function (sym) {
24
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
25
- });
26
- }
27
-
28
- keys.push.apply(keys, symbols);
21
+ enumerableOnly && (symbols = symbols.filter(function (sym) {
22
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
23
+ })), keys.push.apply(keys, symbols);
29
24
  }
30
25
 
31
26
  return keys;
@@ -33,19 +28,12 @@ function ownKeys(object, enumerableOnly) {
33
28
 
34
29
  function _objectSpread2(target) {
35
30
  for (var i = 1; i < arguments.length; i++) {
36
- var source = arguments[i] != null ? arguments[i] : {};
37
-
38
- if (i % 2) {
39
- ownKeys(Object(source), true).forEach(function (key) {
40
- _defineProperty(target, key, source[key]);
41
- });
42
- } else if (Object.getOwnPropertyDescriptors) {
43
- Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
44
- } else {
45
- ownKeys(Object(source)).forEach(function (key) {
46
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
47
- });
48
- }
31
+ var source = null != arguments[i] ? arguments[i] : {};
32
+ i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
33
+ _defineProperty(target, key, source[key]);
34
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
35
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
36
+ });
49
37
  }
50
38
 
51
39
  return target;
@@ -84,6 +72,42 @@ function _extends$2() {
84
72
  return _extends$2.apply(this, arguments);
85
73
  }
86
74
 
75
+ function _objectWithoutPropertiesLoose(source, excluded) {
76
+ if (source == null) return {};
77
+ var target = {};
78
+ var sourceKeys = Object.keys(source);
79
+ var key, i;
80
+
81
+ for (i = 0; i < sourceKeys.length; i++) {
82
+ key = sourceKeys[i];
83
+ if (excluded.indexOf(key) >= 0) continue;
84
+ target[key] = source[key];
85
+ }
86
+
87
+ return target;
88
+ }
89
+
90
+ function _objectWithoutProperties(source, excluded) {
91
+ if (source == null) return {};
92
+
93
+ var target = _objectWithoutPropertiesLoose(source, excluded);
94
+
95
+ var key, i;
96
+
97
+ if (Object.getOwnPropertySymbols) {
98
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
99
+
100
+ for (i = 0; i < sourceSymbolKeys.length; i++) {
101
+ key = sourceSymbolKeys[i];
102
+ if (excluded.indexOf(key) >= 0) continue;
103
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
104
+ target[key] = source[key];
105
+ }
106
+ }
107
+
108
+ return target;
109
+ }
110
+
87
111
  function _slicedToArray(arr, i) {
88
112
  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
89
113
  }
@@ -364,7 +388,7 @@ function getDate(dirtyDate) {
364
388
  var COMPONENT_ID$b = 'datepickers.menu';
365
389
  var StyledMenu = styled.div.attrs({
366
390
  'data-garden-id': COMPONENT_ID$b,
367
- 'data-garden-version': '8.47.0'
391
+ 'data-garden-version': '8.48.1'
368
392
  }).withConfig({
369
393
  displayName: "StyledMenu",
370
394
  componentId: "sc-1npbkk0-0"
@@ -733,41 +757,41 @@ function getStartOfWeek(locale) {
733
757
  return 0;
734
758
  }
735
759
 
736
- function _extends$1() { _extends$1 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1.apply(this, arguments); }
760
+ var _path$1;
737
761
 
738
- var _ref$1 = /*#__PURE__*/React.createElement("path", {
739
- fill: "currentColor",
740
- d: "M10.39 12.688a.5.5 0 01-.718.69l-.062-.066-4-5a.5.5 0 01-.054-.542l.054-.082 4-5a.5.5 0 01.83.55l-.05.074L6.641 8l3.75 4.688z"
741
- });
762
+ function _extends$1() { _extends$1 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1.apply(this, arguments); }
742
763
 
743
- function SvgChevronLeftStroke(props) {
764
+ var SvgChevronLeftStroke = function SvgChevronLeftStroke(props) {
744
765
  return /*#__PURE__*/React.createElement("svg", _extends$1({
745
766
  xmlns: "http://www.w3.org/2000/svg",
746
767
  width: 16,
747
768
  height: 16,
748
- viewBox: "0 0 16 16",
749
769
  focusable: "false",
750
- role: "presentation"
751
- }, props), _ref$1);
752
- }
770
+ viewBox: "0 0 16 16",
771
+ "aria-hidden": "true"
772
+ }, props), _path$1 || (_path$1 = /*#__PURE__*/React.createElement("path", {
773
+ fill: "currentColor",
774
+ d: "M10.39 12.688a.5.5 0 01-.718.69l-.062-.066-4-5a.5.5 0 01-.054-.542l.054-.082 4-5a.5.5 0 01.83.55l-.05.074L6.641 8l3.75 4.688z"
775
+ })));
776
+ };
753
777
 
754
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
778
+ var _path;
755
779
 
756
- var _ref = /*#__PURE__*/React.createElement("path", {
757
- fill: "currentColor",
758
- d: "M5.61 3.312a.5.5 0 01.718-.69l.062.066 4 5a.5.5 0 01.054.542l-.054.082-4 5a.5.5 0 01-.83-.55l.05-.074L9.359 8l-3.75-4.688z"
759
- });
780
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
760
781
 
761
- function SvgChevronRightStroke(props) {
782
+ var SvgChevronRightStroke = function SvgChevronRightStroke(props) {
762
783
  return /*#__PURE__*/React.createElement("svg", _extends({
763
784
  xmlns: "http://www.w3.org/2000/svg",
764
785
  width: 16,
765
786
  height: 16,
766
- viewBox: "0 0 16 16",
767
787
  focusable: "false",
768
- role: "presentation"
769
- }, props), _ref);
770
- }
788
+ viewBox: "0 0 16 16",
789
+ "aria-hidden": "true"
790
+ }, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
791
+ fill: "currentColor",
792
+ d: "M5.61 3.312a.5.5 0 01.718-.69l.062.066 4 5a.5.5 0 01.054.542l-.054.082-4 5a.5.5 0 01-.83-.55l.05-.074L9.359 8l-3.75-4.688z"
793
+ })));
794
+ };
771
795
 
772
796
  var MonthSelector = function MonthSelector(_ref) {
773
797
  var locale = _ref.locale,
@@ -803,7 +827,7 @@ var MonthSelector = function MonthSelector(_ref) {
803
827
  }, React__default.createElement(SvgChevronRightStroke, null)));
804
828
  };
805
829
 
806
- var Calendar$1 = function Calendar(_ref) {
830
+ var Calendar$1 = forwardRef(function (_ref, ref) {
807
831
  var value = _ref.value,
808
832
  minValue = _ref.minValue,
809
833
  maxValue = _ref.maxValue,
@@ -874,6 +898,7 @@ var Calendar$1 = function Calendar(_ref) {
874
898
  }, formattedDayLabel));
875
899
  });
876
900
  return React__default.createElement(StyledDatepicker, {
901
+ ref: ref,
877
902
  isCompact: isCompact,
878
903
  onMouseDown: function onMouseDown(e) {
879
904
  e.preventDefault();
@@ -884,7 +909,8 @@ var Calendar$1 = function Calendar(_ref) {
884
909
  }), React__default.createElement(StyledCalendar, {
885
910
  isCompact: isCompact
886
911
  }, dayLabels, items));
887
- };
912
+ });
913
+ Calendar$1.displayName = 'Calendar';
888
914
 
889
915
  function addMonths(dirtyDate, dirtyAmount) {
890
916
  requiredArgs(2, arguments);
@@ -3226,7 +3252,8 @@ function retrieveInitialState$1(initialProps) {
3226
3252
  };
3227
3253
  }
3228
3254
 
3229
- var Datepicker = function Datepicker(props) {
3255
+ var _excluded = ["children", "placement", "popperModifiers", "eventsEnabled", "zIndex", "isAnimated", "refKey", "value", "isCompact", "onChange", "formatDate", "minValue", "maxValue", "locale", "customParseDate"];
3256
+ var Datepicker = forwardRef(function (props, calendarRef) {
3230
3257
  var children = props.children,
3231
3258
  placement = props.placement,
3232
3259
  popperModifiers = props.popperModifiers,
@@ -3241,7 +3268,8 @@ var Datepicker = function Datepicker(props) {
3241
3268
  minValue = props.minValue,
3242
3269
  maxValue = props.maxValue,
3243
3270
  locale = props.locale,
3244
- customParseDate = props.customParseDate;
3271
+ customParseDate = props.customParseDate,
3272
+ menuProps = _objectWithoutProperties(props, _excluded);
3245
3273
  var theme = useContext(ThemeContext);
3246
3274
  var memoizedReducer = useCallback(datepickerReducer({
3247
3275
  value: value,
@@ -3364,7 +3392,8 @@ var Datepicker = function Datepicker(props) {
3364
3392
  isAnimated: isAnimated && (state.isOpen || isVisible),
3365
3393
  placement: currentPlacement,
3366
3394
  zIndex: zIndex
3367
- }, React__default.createElement(StyledMenu, null, React__default.createElement(Calendar$1, {
3395
+ }, (state.isOpen || isVisible) && React__default.createElement(StyledMenu, menuProps, React__default.createElement(Calendar$1, {
3396
+ ref: calendarRef,
3368
3397
  isCompact: isCompact,
3369
3398
  value: value,
3370
3399
  minValue: minValue,
@@ -3372,7 +3401,8 @@ var Datepicker = function Datepicker(props) {
3372
3401
  locale: locale
3373
3402
  })));
3374
3403
  })));
3375
- };
3404
+ });
3405
+ Datepicker.displayName = 'Datepicker';
3376
3406
  Datepicker.propTypes = {
3377
3407
  value: PropTypes.any,
3378
3408
  onChange: PropTypes.any,
@@ -3750,6 +3780,7 @@ var Start = function Start(props) {
3750
3780
  onBlur: composeEventHandlers(childElement.props.onBlur, onBlurCallback)
3751
3781
  });
3752
3782
  };
3783
+ Start.displayName = 'DatepickerRange.Start';
3753
3784
 
3754
3785
  var End = function End(props) {
3755
3786
  var _useDatepickerRangeCo = useDatepickerContext(),
@@ -3794,6 +3825,7 @@ var End = function End(props) {
3794
3825
  onBlur: composeEventHandlers(childElement.props.onBlur, onBlurCallback)
3795
3826
  });
3796
3827
  };
3828
+ End.displayName = 'DatepickerRange.End';
3797
3829
 
3798
3830
  function subDays(dirtyDate, dirtyAmount) {
3799
3831
  requiredArgs(2, arguments);
@@ -3801,7 +3833,7 @@ function subDays(dirtyDate, dirtyAmount) {
3801
3833
  return addDays(dirtyDate, -amount);
3802
3834
  }
3803
3835
 
3804
- var Month = function Month(_ref) {
3836
+ var Month = forwardRef(function (_ref, ref) {
3805
3837
  var locale = _ref.locale,
3806
3838
  displayDate = _ref.displayDate,
3807
3839
  isCompact = _ref.isCompact,
@@ -3941,6 +3973,7 @@ var Month = function Month(_ref) {
3941
3973
  }, formattedDayLabel));
3942
3974
  });
3943
3975
  return React__default.createElement(StyledDatepicker, {
3976
+ ref: ref,
3944
3977
  isCompact: isCompact,
3945
3978
  onMouseDown: function onMouseDown(e) {
3946
3979
  e.preventDefault();
@@ -3974,9 +4007,10 @@ var Month = function Month(_ref) {
3974
4007
  });
3975
4008
  }
3976
4009
  }, dayLabels, items));
3977
- };
4010
+ });
4011
+ Month.displayName = 'Month';
3978
4012
 
3979
- var Calendar = function Calendar(props) {
4013
+ var Calendar = forwardRef(function (props, ref) {
3980
4014
  var _useDatepickerRangeCo = useDatepickerContext(),
3981
4015
  state = _useDatepickerRangeCo.state,
3982
4016
  dispatch = _useDatepickerRangeCo.dispatch,
@@ -3988,8 +4022,9 @@ var Calendar = function Calendar(props) {
3988
4022
  endValue = _useDatepickerRangeCo.endValue,
3989
4023
  onChange = _useDatepickerRangeCo.onChange;
3990
4024
  return React__default.createElement(StyledRangeCalendar, _extends$2({
4025
+ ref: ref,
3991
4026
  "data-garden-id": "datepickers.range",
3992
- "data-garden-version": '8.47.0'
4027
+ "data-garden-version": '8.48.1'
3993
4028
  }, props), React__default.createElement(Month, {
3994
4029
  locale: locale,
3995
4030
  displayDate: state.previewDate,
@@ -4015,9 +4050,10 @@ var Calendar = function Calendar(props) {
4015
4050
  onChange: onChange,
4016
4051
  hoverDate: state.hoverDate
4017
4052
  }));
4018
- };
4053
+ });
4054
+ Calendar.displayName = 'DatepickerRange.Calendar';
4019
4055
 
4020
- var DatepickerRange = function DatepickerRange(props) {
4056
+ var DatepickerRangeComponent = function DatepickerRangeComponent(props) {
4021
4057
  var startValue = props.startValue,
4022
4058
  locale = props.locale,
4023
4059
  formatDate = props.formatDate,
@@ -4083,10 +4119,7 @@ var DatepickerRange = function DatepickerRange(props) {
4083
4119
  value: value
4084
4120
  }, children);
4085
4121
  };
4086
- DatepickerRange.Start = Start;
4087
- DatepickerRange.End = End;
4088
- DatepickerRange.Calendar = Calendar;
4089
- DatepickerRange.propTypes = {
4122
+ DatepickerRangeComponent.propTypes = {
4090
4123
  locale: PropTypes.string,
4091
4124
  startValue: PropTypes.instanceOf(Date),
4092
4125
  endValue: PropTypes.instanceOf(Date),
@@ -4097,9 +4130,13 @@ DatepickerRange.propTypes = {
4097
4130
  customParseDate: PropTypes.func,
4098
4131
  isCompact: PropTypes.bool
4099
4132
  };
4100
- DatepickerRange.defaultProps = {
4133
+ DatepickerRangeComponent.defaultProps = {
4101
4134
  locale: 'en-US',
4102
4135
  isCompact: false
4103
4136
  };
4137
+ var DatepickerRange = DatepickerRangeComponent;
4138
+ DatepickerRange.Calendar = Calendar;
4139
+ DatepickerRange.End = End;
4140
+ DatepickerRange.Start = Start;
4104
4141
 
4105
4142
  export { Datepicker, DatepickerRange };
@@ -4,10 +4,13 @@
4
4
  * Use of this source code is governed under the Apache License, Version 2.0
5
5
  * found at http://www.apache.org/licenses/LICENSE-2.0.
6
6
  */
7
- import React from 'react';
7
+ import React, { HTMLAttributes } from 'react';
8
8
  import { Modifiers } from 'popper.js';
9
9
  import { GARDEN_PLACEMENT } from './utils/garden-placements';
10
- export interface IDatepickerProps {
10
+ /**
11
+ * @extends HTMLAttributes<HTMLDivElement>
12
+ */
13
+ export interface IDatepickerProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
11
14
  /**
12
15
  * Sets the selected date
13
16
  */
@@ -74,4 +77,4 @@ export interface IDatepickerProps {
74
77
  */
75
78
  zIndex?: number;
76
79
  }
77
- export declare const Datepicker: React.FunctionComponent<IDatepickerProps>;
80
+ export declare const Datepicker: React.ForwardRefExoticComponent<IDatepickerProps & React.RefAttributes<HTMLDivElement>>;
@@ -4,13 +4,13 @@
4
4
  * Use of this source code is governed under the Apache License, Version 2.0
5
5
  * found at http://www.apache.org/licenses/LICENSE-2.0.
6
6
  */
7
- import React from 'react';
8
- interface ICalendarProps {
7
+ import React, { HTMLAttributes } from 'react';
8
+ interface ICalendarProps extends HTMLAttributes<HTMLDivElement> {
9
9
  value?: Date;
10
10
  minValue?: Date;
11
11
  maxValue?: Date;
12
12
  isCompact?: boolean;
13
13
  locale?: string;
14
14
  }
15
- declare const Calendar: React.FunctionComponent<ICalendarProps>;
16
- export default Calendar;
15
+ export declare const Calendar: React.ForwardRefExoticComponent<ICalendarProps & React.RefAttributes<HTMLDivElement>>;
16
+ export {};
@@ -9,5 +9,5 @@ interface IMonthSelectorProps {
9
9
  locale?: string;
10
10
  isCompact: boolean;
11
11
  }
12
- declare const MonthSelector: React.FunctionComponent<IMonthSelectorProps>;
13
- export default MonthSelector;
12
+ export declare const MonthSelector: React.FunctionComponent<IMonthSelectorProps>;
13
+ export {};
@@ -4,8 +4,11 @@
4
4
  * Use of this source code is governed under the Apache License, Version 2.0
5
5
  * found at http://www.apache.org/licenses/LICENSE-2.0.
6
6
  */
7
- import React, { PropsWithChildren } from 'react';
7
+ import { PropsWithChildren } from 'react';
8
8
  import PropTypes from 'prop-types';
9
+ import { Start } from './components/Start';
10
+ import { End } from './components/End';
11
+ import { Calendar } from './components/Calendar';
9
12
  export interface IDatepickerRangeProps {
10
13
  /**
11
14
  * Applies locale-based formatting.
@@ -60,9 +63,6 @@ export interface IDatepickerRangeProps {
60
63
  }
61
64
  export declare const DatepickerRange: {
62
65
  (props: PropsWithChildren<IDatepickerRangeProps>): JSX.Element;
63
- Start: (props: React.PropsWithChildren<React.HTMLAttributes<HTMLInputElement>>) => React.ReactElement<any, string | ((props: any) => React.ReactElement<any, any> | null) | (new (props: any) => React.Component<any, any, any>)>;
64
- End: (props: React.PropsWithChildren<React.HTMLAttributes<HTMLInputElement>>) => React.ReactElement<any, string | ((props: any) => React.ReactElement<any, any> | null) | (new (props: any) => React.Component<any, any, any>)>;
65
- Calendar: React.FunctionComponent<React.HTMLAttributes<HTMLDivElement>>;
66
66
  propTypes: {
67
67
  locale: PropTypes.Requireable<string>;
68
68
  startValue: PropTypes.Requireable<Date>;
@@ -78,4 +78,8 @@ export declare const DatepickerRange: {
78
78
  locale: string;
79
79
  isCompact: boolean;
80
80
  };
81
+ } & {
82
+ Calendar: typeof Calendar;
83
+ End: typeof End;
84
+ Start: typeof Start;
81
85
  };
@@ -4,6 +4,8 @@
4
4
  * Use of this source code is governed under the Apache License, Version 2.0
5
5
  * found at http://www.apache.org/licenses/LICENSE-2.0.
6
6
  */
7
- import React, { HTMLAttributes } from 'react';
8
- declare const Calendar: React.FunctionComponent<HTMLAttributes<HTMLDivElement>>;
9
- export default Calendar;
7
+ import React from 'react';
8
+ /**
9
+ * @extends HTMLAttributes<HTMLDivElement>
10
+ */
11
+ export declare const Calendar: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
@@ -5,5 +5,7 @@
5
5
  * found at http://www.apache.org/licenses/LICENSE-2.0.
6
6
  */
7
7
  import React, { PropsWithChildren, HTMLAttributes } from 'react';
8
- declare const End: (props: PropsWithChildren<HTMLAttributes<HTMLInputElement>>) => React.ReactElement<any, string | ((props: any) => React.ReactElement<any, any> | null) | (new (props: any) => React.Component<any, any, any>)>;
9
- export default End;
8
+ export declare const End: {
9
+ (props: PropsWithChildren<HTMLAttributes<HTMLInputElement>>): React.ReactElement<any, string | React.JSXElementConstructor<any>>;
10
+ displayName: string;
11
+ };
@@ -4,9 +4,9 @@
4
4
  * Use of this source code is governed under the Apache License, Version 2.0
5
5
  * found at http://www.apache.org/licenses/LICENSE-2.0.
6
6
  */
7
- import React from 'react';
7
+ import React, { HTMLAttributes } from 'react';
8
8
  import { DatepickerRangeAction } from '../utils/datepicker-range-reducer';
9
- declare const Month: React.FunctionComponent<{
9
+ interface IMonthProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
10
10
  locale?: string;
11
11
  displayDate: Date;
12
12
  isCompact?: boolean;
@@ -22,5 +22,6 @@ declare const Month: React.FunctionComponent<{
22
22
  endValue?: Date;
23
23
  }) => void;
24
24
  hoverDate?: Date;
25
- }>;
26
- export default Month;
25
+ }
26
+ export declare const Month: React.ForwardRefExoticComponent<IMonthProps & React.RefAttributes<HTMLDivElement>>;
27
+ export {};
@@ -5,5 +5,7 @@
5
5
  * found at http://www.apache.org/licenses/LICENSE-2.0.
6
6
  */
7
7
  import React, { PropsWithChildren, HTMLAttributes } from 'react';
8
- declare const Start: (props: PropsWithChildren<HTMLAttributes<HTMLInputElement>>) => React.ReactElement<any, string | ((props: any) => React.ReactElement<any, any> | null) | (new (props: any) => React.Component<any, any, any>)>;
9
- export default Start;
8
+ export declare const Start: {
9
+ (props: PropsWithChildren<HTMLAttributes<HTMLInputElement>>): React.ReactElement<any, string | React.JSXElementConstructor<any>>;
10
+ displayName: string;
11
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zendeskgarden/react-datepickers",
3
- "version": "8.47.0",
3
+ "version": "8.48.1",
4
4
  "description": "Components relating to datepickers in the Garden Design System",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Zendesk Garden <garden@zendesk.com>",
@@ -21,7 +21,7 @@
21
21
  "sideEffects": false,
22
22
  "types": "dist/typings/index.d.ts",
23
23
  "dependencies": {
24
- "@zendeskgarden/container-utilities": "^0.6.0",
24
+ "@zendeskgarden/container-utilities": "^0.7.0",
25
25
  "date-fns": "^2.0.0-beta.2",
26
26
  "prop-types": "^15.5.7",
27
27
  "react-popper": "^1.3.4"
@@ -33,7 +33,7 @@
33
33
  "styled-components": "^4.2.0 || ^5.0.0"
34
34
  },
35
35
  "devDependencies": {
36
- "@zendeskgarden/react-theming": "^8.47.0",
36
+ "@zendeskgarden/react-theming": "^8.48.1",
37
37
  "@zendeskgarden/svg-icons": "6.30.2"
38
38
  },
39
39
  "keywords": [
@@ -46,5 +46,5 @@
46
46
  "access": "public"
47
47
  },
48
48
  "zendeskgarden:src": "src/index.ts",
49
- "gitHead": "aba4138c9eb030ab3f204ba783b340ca55be6988"
49
+ "gitHead": "82c621bfbc943904baa6647a2f5e89d3271d7edf"
50
50
  }