@zendeskgarden/react-datepickers 8.39.0 → 8.41.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs.js CHANGED
@@ -43,47 +43,18 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
43
43
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
44
44
  var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
45
45
 
46
- function _defineProperty(obj, key, value) {
47
- if (key in obj) {
48
- Object.defineProperty(obj, key, {
49
- value: value,
50
- enumerable: true,
51
- configurable: true,
52
- writable: true
53
- });
54
- } else {
55
- obj[key] = value;
56
- }
57
-
58
- return obj;
59
- }
60
-
61
- function _extends$2() {
62
- _extends$2 = Object.assign || function (target) {
63
- for (var i = 1; i < arguments.length; i++) {
64
- var source = arguments[i];
65
-
66
- for (var key in source) {
67
- if (Object.prototype.hasOwnProperty.call(source, key)) {
68
- target[key] = source[key];
69
- }
70
- }
71
- }
72
-
73
- return target;
74
- };
75
-
76
- return _extends$2.apply(this, arguments);
77
- }
78
-
79
46
  function ownKeys(object, enumerableOnly) {
80
47
  var keys = Object.keys(object);
81
48
 
82
49
  if (Object.getOwnPropertySymbols) {
83
50
  var symbols = Object.getOwnPropertySymbols(object);
84
- if (enumerableOnly) symbols = symbols.filter(function (sym) {
85
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
86
- });
51
+
52
+ if (enumerableOnly) {
53
+ symbols = symbols.filter(function (sym) {
54
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
55
+ });
56
+ }
57
+
87
58
  keys.push.apply(keys, symbols);
88
59
  }
89
60
 
@@ -110,16 +81,37 @@ function _objectSpread2(target) {
110
81
  return target;
111
82
  }
112
83
 
113
- function _taggedTemplateLiteral(strings, raw) {
114
- if (!raw) {
115
- raw = strings.slice(0);
84
+ function _defineProperty(obj, key, value) {
85
+ if (key in obj) {
86
+ Object.defineProperty(obj, key, {
87
+ value: value,
88
+ enumerable: true,
89
+ configurable: true,
90
+ writable: true
91
+ });
92
+ } else {
93
+ obj[key] = value;
116
94
  }
117
95
 
118
- return Object.freeze(Object.defineProperties(strings, {
119
- raw: {
120
- value: Object.freeze(raw)
96
+ return obj;
97
+ }
98
+
99
+ function _extends$2() {
100
+ _extends$2 = Object.assign || function (target) {
101
+ for (var i = 1; i < arguments.length; i++) {
102
+ var source = arguments[i];
103
+
104
+ for (var key in source) {
105
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
106
+ target[key] = source[key];
107
+ }
108
+ }
121
109
  }
122
- }));
110
+
111
+ return target;
112
+ };
113
+
114
+ return _extends$2.apply(this, arguments);
123
115
  }
124
116
 
125
117
  function _slicedToArray(arr, i) {
@@ -131,14 +123,17 @@ function _arrayWithHoles(arr) {
131
123
  }
132
124
 
133
125
  function _iterableToArrayLimit(arr, i) {
134
- if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;
126
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
127
+
128
+ if (_i == null) return;
135
129
  var _arr = [];
136
130
  var _n = true;
137
131
  var _d = false;
138
- var _e = undefined;
132
+
133
+ var _s, _e;
139
134
 
140
135
  try {
141
- for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
136
+ for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
142
137
  _arr.push(_s.value);
143
138
 
144
139
  if (i && _arr.length === i) break;
@@ -229,7 +224,7 @@ function getMenuPosition(popperPlacement) {
229
224
 
230
225
  function requiredArgs(required, args) {
231
226
  if (args.length < required) {
232
- throw new TypeError(required + ' argument' + required > 1 ? 's' : '' + ' required, but only ' + args.length + ' present');
227
+ throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');
233
228
  }
234
229
  }
235
230
 
@@ -242,7 +237,7 @@ function toDate(argument) {
242
237
  return new Date(argument);
243
238
  } else {
244
239
  if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {
245
- console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule");
240
+ console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule");
246
241
  console.warn(new Error().stack);
247
242
  }
248
243
  return new Date(NaN);
@@ -339,6 +334,12 @@ function addDays(dirtyDate, dirtyAmount) {
339
334
  requiredArgs(2, arguments);
340
335
  var date = toDate(dirtyDate);
341
336
  var amount = toInteger(dirtyAmount);
337
+ if (isNaN(amount)) {
338
+ return new Date(NaN);
339
+ }
340
+ if (!amount) {
341
+ return date;
342
+ }
342
343
  date.setDate(date.getDate() + amount);
343
344
  return date;
344
345
  }
@@ -390,25 +391,29 @@ function getDate(dirtyDate) {
390
391
  return dayOfMonth;
391
392
  }
392
393
 
393
- var _templateObject$b;
394
394
  var COMPONENT_ID$b = 'datepickers.menu';
395
395
  var StyledMenu = styled__default['default'].div.attrs({
396
396
  'data-garden-id': COMPONENT_ID$b,
397
- 'data-garden-version': '8.39.0'
398
- })(_templateObject$b || (_templateObject$b = _taggedTemplateLiteral(["\n ", ";\n"])), function (props) {
397
+ 'data-garden-version': '8.41.0'
398
+ }).withConfig({
399
+ displayName: "StyledMenu",
400
+ componentId: "sc-1npbkk0-0"
401
+ })(["", ";"], function (props) {
399
402
  return reactTheming.retrieveComponentStyles(COMPONENT_ID$b, props);
400
403
  });
401
404
  StyledMenu.defaultProps = {
402
405
  theme: reactTheming.DEFAULT_THEME
403
406
  };
404
407
 
405
- var _templateObject$a;
406
408
  var COMPONENT_ID$a = 'datepickers.menu_wrapper';
407
409
  var StyledMenuWrapper = styled__default['default'].div.attrs(function (props) {
408
410
  return {
409
411
  className: props.isAnimated && 'is-animated'
410
412
  };
411
- })(_templateObject$a || (_templateObject$a = _taggedTemplateLiteral(["\n ", ";\n\n ", ";\n"])), function (props) {
413
+ }).withConfig({
414
+ displayName: "StyledMenuWrapper",
415
+ componentId: "sc-6fowoz-0"
416
+ })(["", ";", ";"], function (props) {
412
417
  return reactTheming.menuStyles(getMenuPosition(props.placement), {
413
418
  theme: props.theme,
414
419
  hidden: props.isHidden,
@@ -423,7 +428,6 @@ StyledMenuWrapper.defaultProps = {
423
428
  theme: reactTheming.DEFAULT_THEME
424
429
  };
425
430
 
426
- var _templateObject$9;
427
431
  var COMPONENT_ID$9 = 'datepickers.datepicker';
428
432
  var retrievePadding = function retrievePadding(_ref) {
429
433
  var isCompact = _ref.isCompact,
@@ -436,7 +440,10 @@ var retrievePadding = function retrievePadding(_ref) {
436
440
  };
437
441
  var StyledDatepicker = styled__default['default'].div.attrs({
438
442
  'data-garden-id': COMPONENT_ID$9
439
- })(_templateObject$9 || (_templateObject$9 = _taggedTemplateLiteral(["\n direction: ", ";\n\n ", "\n\n background-color: ", ";\n color: ", ";\n\n ", ";\n"])), function (props) {
443
+ }).withConfig({
444
+ displayName: "StyledDatepicker",
445
+ componentId: "sc-w3zqsp-0"
446
+ })(["direction:", ";", " background-color:", ";color:", ";", ";"], function (props) {
440
447
  return props.theme.rtl && 'rtl';
441
448
  }, retrievePadding, function (props) {
442
449
  return props.theme.colors.background;
@@ -449,11 +456,13 @@ StyledDatepicker.defaultProps = {
449
456
  theme: reactTheming.DEFAULT_THEME
450
457
  };
451
458
 
452
- var _templateObject$8;
453
459
  var COMPONENT_ID$8 = 'datepickers.range_calendar';
454
460
  var StyledRangeCalendar = styled__default['default'].div.attrs({
455
461
  'data-garden-id': COMPONENT_ID$8
456
- })(_templateObject$8 || (_templateObject$8 = _taggedTemplateLiteral(["\n display: flex;\n overflow: auto;\n\n ", " {\n margin: 0;\n\n ", "\n }\n\n ", ";\n"])), StyledDatepicker, function (props) {
462
+ }).withConfig({
463
+ displayName: "StyledRangeCalendar",
464
+ componentId: "sc-1og46sy-0"
465
+ })(["display:flex;overflow:auto;", "{margin:0;", "}", ";"], StyledDatepicker, function (props) {
457
466
  return props.theme.rtl ? "&:last-of-type {margin-right: ".concat(props.theme.space.base * 5, "px}") : "&:first-of-type {margin-right: ".concat(props.theme.space.base * 5, "px}");
458
467
  }, function (props) {
459
468
  return reactTheming.retrieveComponentStyles(COMPONENT_ID$8, props);
@@ -462,11 +471,13 @@ StyledRangeCalendar.defaultProps = {
462
471
  theme: reactTheming.DEFAULT_THEME
463
472
  };
464
473
 
465
- var _templateObject$7;
466
474
  var COMPONENT_ID$7 = 'datepickers.header';
467
475
  var StyledHeader = styled__default['default'].div.attrs({
468
476
  'data-garden-id': COMPONENT_ID$7
469
- })(_templateObject$7 || (_templateObject$7 = _taggedTemplateLiteral(["\n display: flex;\n width: ", "px;\n\n ", ";\n"])), function (props) {
477
+ }).withConfig({
478
+ displayName: "StyledHeader",
479
+ componentId: "sc-upq318-0"
480
+ })(["display:flex;width:", "px;", ";"], function (props) {
470
481
  return props.isCompact ? props.theme.space.base * 56 : props.theme.space.base * 70;
471
482
  }, function (props) {
472
483
  return reactTheming.retrieveComponentStyles(COMPONENT_ID$7, props);
@@ -475,7 +486,6 @@ StyledHeader.defaultProps = {
475
486
  theme: reactTheming.DEFAULT_THEME
476
487
  };
477
488
 
478
- var _templateObject$6;
479
489
  var retrieveSizing = function retrieveSizing(_ref) {
480
490
  var isCompact = _ref.isCompact,
481
491
  theme = _ref.theme;
@@ -492,7 +502,10 @@ var retrieveColor$1 = function retrieveColor(_ref2) {
492
502
  var COMPONENT_ID$6 = 'datepickers.header_paddle';
493
503
  var StyledHeaderPaddle = styled__default['default'].div.attrs({
494
504
  'data-garden-id': COMPONENT_ID$6
495
- })(_templateObject$6 || (_templateObject$6 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n justify-content: center;\n transform: ", ";\n visibility: ", ";\n border-radius: 50%;\n cursor: pointer;\n\n ", "\n\n ", "\n\n svg {\n width: ", ";\n height: ", ";\n }\n\n ", ";\n"])), function (props) {
505
+ }).withConfig({
506
+ displayName: "StyledHeaderPaddle",
507
+ componentId: "sc-2oqh0g-0"
508
+ })(["display:flex;align-items:center;justify-content:center;transform:", ";visibility:", ";border-radius:50%;cursor:pointer;", " ", " svg{width:", ";height:", ";}", ";"], function (props) {
496
509
  return props.theme.rtl && 'rotate(180deg)';
497
510
  }, function (props) {
498
511
  return props.isHidden && 'hidden';
@@ -508,11 +521,13 @@ StyledHeaderPaddle.defaultProps = {
508
521
  theme: reactTheming.DEFAULT_THEME
509
522
  };
510
523
 
511
- var _templateObject$5;
512
524
  var COMPONENT_ID$5 = 'datepickers.header_label';
513
525
  var StyledHeaderLabel = styled__default['default'].div.attrs({
514
526
  'data-garden-id': COMPONENT_ID$5
515
- })(_templateObject$5 || (_templateObject$5 = _taggedTemplateLiteral(["\n display: flex;\n flex-grow: 1;\n align-items: center;\n justify-content: center;\n font-size: ", ";\n font-weight: ", ";\n\n ", ";\n"])), function (props) {
527
+ }).withConfig({
528
+ displayName: "StyledHeaderLabel",
529
+ componentId: "sc-1ryf5ub-0"
530
+ })(["display:flex;flex-grow:1;align-items:center;justify-content:center;font-size:", ";font-weight:", ";", ";"], function (props) {
516
531
  return props.isCompact ? props.theme.fontSizes.sm : props.theme.fontSizes.md;
517
532
  }, function (props) {
518
533
  return props.theme.fontWeights.semibold;
@@ -523,11 +538,13 @@ StyledHeaderLabel.defaultProps = {
523
538
  theme: reactTheming.DEFAULT_THEME
524
539
  };
525
540
 
526
- var _templateObject$4;
527
541
  var COMPONENT_ID$4 = 'datepickers.calendar';
528
542
  var StyledCalendar = styled__default['default'].div.attrs({
529
543
  'data-garden-id': COMPONENT_ID$4
530
- })(_templateObject$4 || (_templateObject$4 = _taggedTemplateLiteral(["\n width: ", "px;\n\n ", ";\n"])), function (props) {
544
+ }).withConfig({
545
+ displayName: "StyledCalendar",
546
+ componentId: "sc-g5hoe8-0"
547
+ })(["width:", "px;", ";"], function (props) {
531
548
  return props.isCompact ? props.theme.space.base * 56 : props.theme.space.base * 70;
532
549
  }, function (props) {
533
550
  return reactTheming.retrieveComponentStyles(COMPONENT_ID$4, props);
@@ -536,7 +553,6 @@ StyledCalendar.defaultProps = {
536
553
  theme: reactTheming.DEFAULT_THEME
537
554
  };
538
555
 
539
- var _templateObject$3;
540
556
  var COMPONENT_ID$3 = 'datepickers.calendar_item';
541
557
  var retrieveSize = function retrieveSize(_ref) {
542
558
  var isCompact = _ref.isCompact,
@@ -551,18 +567,23 @@ var retrieveSize = function retrieveSize(_ref) {
551
567
  };
552
568
  var StyledCalendarItem = styled__default['default'].div.attrs({
553
569
  'data-garden-id': COMPONENT_ID$3
554
- })(_templateObject$3 || (_templateObject$3 = _taggedTemplateLiteral(["\n display: inline-block;\n position: relative;\n vertical-align: top;\n\n ", "\n\n ", ";\n"])), retrieveSize, function (props) {
570
+ }).withConfig({
571
+ displayName: "StyledCalendarItem",
572
+ componentId: "sc-143w8wb-0"
573
+ })(["display:inline-block;position:relative;vertical-align:top;", " ", ";"], retrieveSize, function (props) {
555
574
  return reactTheming.retrieveComponentStyles(COMPONENT_ID$3, props);
556
575
  });
557
576
  StyledCalendarItem.defaultProps = {
558
577
  theme: reactTheming.DEFAULT_THEME
559
578
  };
560
579
 
561
- var _templateObject$2;
562
580
  var COMPONENT_ID$2 = 'datepickers.day_label';
563
581
  var StyledDayLabel = styled__default['default'].div.attrs({
564
582
  'data-garden-id': COMPONENT_ID$2
565
- })(_templateObject$2 || (_templateObject$2 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n font-size: ", ";\n font-weight: ", ";\n\n ", ";\n"])), function (props) {
583
+ }).withConfig({
584
+ displayName: "StyledDayLabel",
585
+ componentId: "sc-9bh1p7-0"
586
+ })(["display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:", ";font-weight:", ";", ";"], function (props) {
566
587
  return props.isCompact ? props.theme.fontSizes.sm : props.theme.fontSizes.md;
567
588
  }, function (props) {
568
589
  return props.theme.fontWeights.semibold;
@@ -573,7 +594,6 @@ StyledDayLabel.defaultProps = {
573
594
  theme: reactTheming.DEFAULT_THEME
574
595
  };
575
596
 
576
- var _templateObject$1;
577
597
  var COMPONENT_ID$1 = 'datepickers.highlight';
578
598
  var retrieveBorderRadius = function retrieveBorderRadius(_ref) {
579
599
  var theme = _ref.theme,
@@ -605,14 +625,16 @@ var retrieveColor = function retrieveColor(_ref2) {
605
625
  };
606
626
  var StyledHighlight = styled__default['default'].div.attrs({
607
627
  'data-garden-id': COMPONENT_ID$1
608
- })(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteral(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n\n ", "\n\n ", "\n\n ", ";\n"])), retrieveBorderRadius, retrieveColor, function (props) {
628
+ }).withConfig({
629
+ displayName: "StyledHighlight",
630
+ componentId: "sc-16vr32x-0"
631
+ })(["position:absolute;top:0;left:0;width:100%;height:100%;", " ", " ", ";"], retrieveBorderRadius, retrieveColor, function (props) {
609
632
  return reactTheming.retrieveComponentStyles(COMPONENT_ID$1, props);
610
633
  });
611
634
  StyledHighlight.defaultProps = {
612
635
  theme: reactTheming.DEFAULT_THEME
613
636
  };
614
637
 
615
- var _templateObject;
616
638
  var retrieveStyledDayColors = function retrieveStyledDayColors(_ref) {
617
639
  var isSelected = _ref.isSelected,
618
640
  isDisabled = _ref.isDisabled,
@@ -639,7 +661,10 @@ var StyledDay = styled__default['default'].div.attrs(function (props) {
639
661
  'data-garden-id': COMPONENT_ID,
640
662
  'aria-disabled': props.isDisabled ? 'true' : 'false'
641
663
  };
642
- })(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n position: absolute;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n cursor: ", ";\n width: 100%;\n height: 100%;\n font-size: ", ";\n font-weight: ", ";\n\n ", "\n\n ", ";\n"])), function (props) {
664
+ }).withConfig({
665
+ displayName: "StyledDay",
666
+ componentId: "sc-v42uk5-0"
667
+ })(["display:flex;position:absolute;align-items:center;justify-content:center;border-radius:50%;cursor:", ";width:100%;height:100%;font-size:", ";font-weight:", ";", " ", ";"], function (props) {
643
668
  return props.isDisabled ? 'inherit' : 'pointer';
644
669
  }, function (props) {
645
670
  return props.isCompact ? props.theme.fontSizes.sm : props.theme.fontSizes.md;
@@ -891,28 +916,26 @@ var Calendar$1 = function Calendar(_ref) {
891
916
  }, dayLabels, items));
892
917
  };
893
918
 
894
- function getDaysInMonth(dirtyDate) {
895
- requiredArgs(1, arguments);
896
- var date = toDate(dirtyDate);
897
- var year = date.getFullYear();
898
- var monthIndex = date.getMonth();
899
- var lastDayOfMonth = new Date(0);
900
- lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);
901
- lastDayOfMonth.setHours(0, 0, 0, 0);
902
- return lastDayOfMonth.getDate();
903
- }
904
-
905
919
  function addMonths(dirtyDate, dirtyAmount) {
906
920
  requiredArgs(2, arguments);
907
921
  var date = toDate(dirtyDate);
908
922
  var amount = toInteger(dirtyAmount);
909
- var desiredMonth = date.getMonth() + amount;
910
- var dateWithDesiredMonth = new Date(0);
911
- dateWithDesiredMonth.setFullYear(date.getFullYear(), desiredMonth, 1);
912
- dateWithDesiredMonth.setHours(0, 0, 0, 0);
913
- var daysInMonth = getDaysInMonth(dateWithDesiredMonth);
914
- date.setMonth(desiredMonth, Math.min(daysInMonth, date.getDate()));
915
- return date;
923
+ if (isNaN(amount)) {
924
+ return new Date(NaN);
925
+ }
926
+ if (!amount) {
927
+ return date;
928
+ }
929
+ var dayOfMonth = date.getDate();
930
+ var endOfDesiredMonth = new Date(date.getTime());
931
+ endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0);
932
+ var daysInMonth = endOfDesiredMonth.getDate();
933
+ if (dayOfMonth >= daysInMonth) {
934
+ return endOfDesiredMonth;
935
+ } else {
936
+ date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);
937
+ return date;
938
+ }
916
939
  }
917
940
 
918
941
  function subMonths(dirtyDate, dirtyAmount) {
@@ -957,6 +980,14 @@ var formatDistanceLocale = {
957
980
  one: '1 day',
958
981
  other: '{{count}} days'
959
982
  },
983
+ aboutXWeeks: {
984
+ one: 'about 1 week',
985
+ other: 'about {{count}} weeks'
986
+ },
987
+ xWeeks: {
988
+ one: '1 week',
989
+ other: '{{count}} weeks'
990
+ },
960
991
  aboutXMonths: {
961
992
  one: 'about 1 month',
962
993
  other: 'about {{count}} months'
@@ -1003,8 +1034,8 @@ function formatDistance(token, count, options) {
1003
1034
  }
1004
1035
 
1005
1036
  function buildFormatLongFn(args) {
1006
- return function (dirtyOptions) {
1007
- var options = dirtyOptions || {};
1037
+ return function () {
1038
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1008
1039
  var width = options.width ? String(options.width) : args.defaultWidth;
1009
1040
  var format = args.formats[width] || args.formats[args.defaultWidth];
1010
1041
  return format;
@@ -1043,6 +1074,7 @@ var formatLong = {
1043
1074
  defaultWidth: 'full'
1044
1075
  })
1045
1076
  };
1077
+ var formatLong$1 = formatLong;
1046
1078
 
1047
1079
  var formatRelativeLocale = {
1048
1080
  lastWeek: "'last' eeee 'at' p",
@@ -1203,33 +1235,29 @@ var localize = {
1203
1235
  defaultFormattingWidth: 'wide'
1204
1236
  })
1205
1237
  };
1238
+ var localize$1 = localize;
1206
1239
 
1207
1240
  function buildMatchPatternFn(args) {
1208
- return function (dirtyString, dirtyOptions) {
1209
- var string = String(dirtyString);
1210
- var options = dirtyOptions || {};
1241
+ return function (string) {
1242
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1211
1243
  var matchResult = string.match(args.matchPattern);
1212
- if (!matchResult) {
1213
- return null;
1214
- }
1244
+ if (!matchResult) return null;
1215
1245
  var matchedString = matchResult[0];
1216
1246
  var parseResult = string.match(args.parsePattern);
1217
- if (!parseResult) {
1218
- return null;
1219
- }
1247
+ if (!parseResult) return null;
1220
1248
  var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];
1221
1249
  value = options.valueCallback ? options.valueCallback(value) : value;
1250
+ var rest = string.slice(matchedString.length);
1222
1251
  return {
1223
1252
  value: value,
1224
- rest: string.slice(matchedString.length)
1253
+ rest: rest
1225
1254
  };
1226
1255
  };
1227
1256
  }
1228
1257
 
1229
1258
  function buildMatchFn(args) {
1230
- return function (dirtyString, dirtyOptions) {
1231
- var string = String(dirtyString);
1232
- var options = dirtyOptions || {};
1259
+ return function (string) {
1260
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1233
1261
  var width = options.width;
1234
1262
  var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];
1235
1263
  var matchResult = string.match(matchPattern);
@@ -1238,21 +1266,18 @@ function buildMatchFn(args) {
1238
1266
  }
1239
1267
  var matchedString = matchResult[0];
1240
1268
  var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];
1269
+ var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {
1270
+ return pattern.test(matchedString);
1271
+ }) : findKey(parsePatterns, function (pattern) {
1272
+ return pattern.test(matchedString);
1273
+ });
1241
1274
  var value;
1242
- if (Object.prototype.toString.call(parsePatterns) === '[object Array]') {
1243
- value = findIndex(parsePatterns, function (pattern) {
1244
- return pattern.test(string);
1245
- });
1246
- } else {
1247
- value = findKey(parsePatterns, function (pattern) {
1248
- return pattern.test(string);
1249
- });
1250
- }
1251
- value = args.valueCallback ? args.valueCallback(value) : value;
1275
+ value = args.valueCallback ? args.valueCallback(key) : key;
1252
1276
  value = options.valueCallback ? options.valueCallback(value) : value;
1277
+ var rest = string.slice(matchedString.length);
1253
1278
  return {
1254
1279
  value: value,
1255
- rest: string.slice(matchedString.length)
1280
+ rest: rest
1256
1281
  };
1257
1282
  };
1258
1283
  }
@@ -1262,6 +1287,7 @@ function findKey(object, predicate) {
1262
1287
  return key;
1263
1288
  }
1264
1289
  }
1290
+ return undefined;
1265
1291
  }
1266
1292
  function findIndex(array, predicate) {
1267
1293
  for (var key = 0; key < array.length; key++) {
@@ -1269,6 +1295,7 @@ function findIndex(array, predicate) {
1269
1295
  return key;
1270
1296
  }
1271
1297
  }
1298
+ return undefined;
1272
1299
  }
1273
1300
 
1274
1301
  var matchOrdinalNumberPattern = /^(\d+)(th|st|nd|rd)?/i;
@@ -1366,20 +1393,22 @@ var match = {
1366
1393
  defaultParseWidth: 'any'
1367
1394
  })
1368
1395
  };
1396
+ var match$1 = match;
1369
1397
 
1370
1398
  var locale = {
1371
1399
  code: 'en-US',
1372
1400
  formatDistance: formatDistance,
1373
- formatLong: formatLong,
1401
+ formatLong: formatLong$1,
1374
1402
  formatRelative: formatRelative,
1375
- localize: localize,
1376
- match: match,
1403
+ localize: localize$1,
1404
+ match: match$1,
1377
1405
  options: {
1378
1406
  weekStartsOn: 0
1379
1407
  ,
1380
1408
  firstWeekContainsDate: 1
1381
1409
  }
1382
1410
  };
1411
+ var defaultLocale = locale;
1383
1412
 
1384
1413
  function addMilliseconds(dirtyDate, dirtyAmount) {
1385
1414
  requiredArgs(2, arguments);
@@ -1400,7 +1429,7 @@ function assign(target, dirtyObject) {
1400
1429
  }
1401
1430
  dirtyObject = dirtyObject || {};
1402
1431
  for (var property in dirtyObject) {
1403
- if (dirtyObject.hasOwnProperty(property)) {
1432
+ if (Object.prototype.hasOwnProperty.call(dirtyObject, property)) {
1404
1433
  target[property] = dirtyObject[property];
1405
1434
  }
1406
1435
  }
@@ -1486,14 +1515,12 @@ var longFormatters = {
1486
1515
  p: timeLongFormatter,
1487
1516
  P: dateTimeLongFormatter
1488
1517
  };
1518
+ var longFormatters$1 = longFormatters;
1489
1519
 
1490
- var MILLISECONDS_IN_MINUTE$1 = 60000;
1491
- function getTimezoneOffsetInMilliseconds(dirtyDate) {
1492
- var date = new Date(dirtyDate.getTime());
1493
- var baseTimezoneOffset = Math.ceil(date.getTimezoneOffset());
1494
- date.setSeconds(0, 0);
1495
- var millisecondsPartOfTimezoneOffset = date.getTime() % MILLISECONDS_IN_MINUTE$1;
1496
- return baseTimezoneOffset * MILLISECONDS_IN_MINUTE$1 + millisecondsPartOfTimezoneOffset;
1520
+ function getTimezoneOffsetInMilliseconds(date) {
1521
+ var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));
1522
+ utcDate.setUTCFullYear(date.getFullYear());
1523
+ return date.getTime() - utcDate.getTime();
1497
1524
  }
1498
1525
 
1499
1526
  var protectedDayOfYearTokens = ['D', 'DD'];
@@ -1504,15 +1531,15 @@ function isProtectedDayOfYearToken(token) {
1504
1531
  function isProtectedWeekYearToken(token) {
1505
1532
  return protectedWeekYearTokens.indexOf(token) !== -1;
1506
1533
  }
1507
- function throwProtectedError(token) {
1534
+ function throwProtectedError(token, format, input) {
1508
1535
  if (token === 'YYYY') {
1509
- throw new RangeError('Use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr');
1536
+ throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(format, "`) for formatting years to the input `").concat(input, "`; see: https://git.io/fxCyr"));
1510
1537
  } else if (token === 'YY') {
1511
- throw new RangeError('Use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr');
1538
+ throw new RangeError("Use `yy` instead of `YY` (in `".concat(format, "`) for formatting years to the input `").concat(input, "`; see: https://git.io/fxCyr"));
1512
1539
  } else if (token === 'D') {
1513
- throw new RangeError('Use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr');
1540
+ throw new RangeError("Use `d` instead of `D` (in `".concat(format, "`) for formatting days of the month to the input `").concat(input, "`; see: https://git.io/fxCyr"));
1514
1541
  } else if (token === 'DD') {
1515
- throw new RangeError('Use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr');
1542
+ throw new RangeError("Use `dd` instead of `DD` (in `".concat(format, "`) for formatting days of the month to the input `").concat(input, "`; see: https://git.io/fxCyr"));
1516
1543
  }
1517
1544
  }
1518
1545
 
@@ -2212,6 +2239,7 @@ var parsers = {
2212
2239
  },
2213
2240
  d: {
2214
2241
  priority: 90,
2242
+ subPriority: 1,
2215
2243
  parse: function (string, token, match, _options) {
2216
2244
  switch (token) {
2217
2245
  case 'd':
@@ -2243,6 +2271,7 @@ var parsers = {
2243
2271
  },
2244
2272
  D: {
2245
2273
  priority: 90,
2274
+ subPriority: 1,
2246
2275
  parse: function (string, token, match, _options) {
2247
2276
  switch (token) {
2248
2277
  case 'D':
@@ -2898,6 +2927,7 @@ var parsers = {
2898
2927
  incompatibleTokens: '*'
2899
2928
  }
2900
2929
  };
2930
+ var parsers$1 = parsers;
2901
2931
 
2902
2932
  var TIMEZONE_UNIT_PRIORITY = 10;
2903
2933
  var formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g;
@@ -2906,22 +2936,22 @@ var escapedStringRegExp = /^'([^]*?)'?$/;
2906
2936
  var doubleQuoteRegExp = /''/g;
2907
2937
  var notWhitespaceRegExp = /\S/;
2908
2938
  var unescapedLatinCharacterRegExp = /[a-zA-Z]/;
2909
- function parse(dirtyDateString, dirtyFormatString, dirtyBackupDate, dirtyOptions) {
2939
+ function parse(dirtyDateString, dirtyFormatString, dirtyReferenceDate, dirtyOptions) {
2910
2940
  requiredArgs(3, arguments);
2911
2941
  var dateString = String(dirtyDateString);
2912
2942
  var formatString = String(dirtyFormatString);
2913
2943
  var options = dirtyOptions || {};
2914
- var locale$1 = options.locale || locale;
2915
- if (!locale$1.match) {
2944
+ var locale = options.locale || defaultLocale;
2945
+ if (!locale.match) {
2916
2946
  throw new RangeError('locale must contain match property');
2917
2947
  }
2918
- var localeFirstWeekContainsDate = locale$1.options && locale$1.options.firstWeekContainsDate;
2948
+ var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;
2919
2949
  var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);
2920
2950
  var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);
2921
2951
  if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {
2922
2952
  throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');
2923
2953
  }
2924
- var localeWeekStartsOn = locale$1.options && locale$1.options.weekStartsOn;
2954
+ var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;
2925
2955
  var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);
2926
2956
  var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn);
2927
2957
  if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {
@@ -2929,7 +2959,7 @@ function parse(dirtyDateString, dirtyFormatString, dirtyBackupDate, dirtyOptions
2929
2959
  }
2930
2960
  if (formatString === '') {
2931
2961
  if (dateString === '') {
2932
- return toDate(dirtyBackupDate);
2962
+ return toDate(dirtyReferenceDate);
2933
2963
  } else {
2934
2964
  return new Date(NaN);
2935
2965
  }
@@ -2937,10 +2967,11 @@ function parse(dirtyDateString, dirtyFormatString, dirtyBackupDate, dirtyOptions
2937
2967
  var subFnOptions = {
2938
2968
  firstWeekContainsDate: firstWeekContainsDate,
2939
2969
  weekStartsOn: weekStartsOn,
2940
- locale: locale$1
2970
+ locale: locale
2941
2971
  };
2942
2972
  var setters = [{
2943
2973
  priority: TIMEZONE_UNIT_PRIORITY,
2974
+ subPriority: -1,
2944
2975
  set: dateToSystemTimezone,
2945
2976
  index: 0
2946
2977
  }];
@@ -2948,8 +2979,8 @@ function parse(dirtyDateString, dirtyFormatString, dirtyBackupDate, dirtyOptions
2948
2979
  var tokens = formatString.match(longFormattingTokensRegExp).map(function (substring) {
2949
2980
  var firstCharacter = substring[0];
2950
2981
  if (firstCharacter === 'p' || firstCharacter === 'P') {
2951
- var longFormatter = longFormatters[firstCharacter];
2952
- return longFormatter(substring, locale$1.formatLong, subFnOptions);
2982
+ var longFormatter = longFormatters$1[firstCharacter];
2983
+ return longFormatter(substring, locale.formatLong, subFnOptions);
2953
2984
  }
2954
2985
  return substring;
2955
2986
  }).join('').match(formattingTokensRegExp);
@@ -2957,13 +2988,13 @@ function parse(dirtyDateString, dirtyFormatString, dirtyBackupDate, dirtyOptions
2957
2988
  for (i = 0; i < tokens.length; i++) {
2958
2989
  var token = tokens[i];
2959
2990
  if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(token)) {
2960
- throwProtectedError(token);
2991
+ throwProtectedError(token, formatString, dirtyDateString);
2961
2992
  }
2962
2993
  if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(token)) {
2963
- throwProtectedError(token);
2994
+ throwProtectedError(token, formatString, dirtyDateString);
2964
2995
  }
2965
2996
  var firstCharacter = token[0];
2966
- var parser = parsers[firstCharacter];
2997
+ var parser = parsers$1[firstCharacter];
2967
2998
  if (parser) {
2968
2999
  var incompatibleTokens = parser.incompatibleTokens;
2969
3000
  if (Array.isArray(incompatibleTokens)) {
@@ -2985,12 +3016,13 @@ function parse(dirtyDateString, dirtyFormatString, dirtyBackupDate, dirtyOptions
2985
3016
  token: firstCharacter,
2986
3017
  fullToken: token
2987
3018
  });
2988
- var parseResult = parser.parse(dateString, token, locale$1.match, subFnOptions);
3019
+ var parseResult = parser.parse(dateString, token, locale.match, subFnOptions);
2989
3020
  if (!parseResult) {
2990
3021
  return new Date(NaN);
2991
3022
  }
2992
3023
  setters.push({
2993
3024
  priority: parser.priority,
3025
+ subPriority: parser.subPriority || 0,
2994
3026
  set: parser.set,
2995
3027
  validate: parser.validate,
2996
3028
  value: parseResult.value,
@@ -3025,11 +3057,13 @@ function parse(dirtyDateString, dirtyFormatString, dirtyBackupDate, dirtyOptions
3025
3057
  }).map(function (priority) {
3026
3058
  return setters.filter(function (setter) {
3027
3059
  return setter.priority === priority;
3028
- }).reverse();
3060
+ }).sort(function (a, b) {
3061
+ return b.subPriority - a.subPriority;
3062
+ });
3029
3063
  }).map(function (setterArray) {
3030
3064
  return setterArray[0];
3031
3065
  });
3032
- var date = toDate(dirtyBackupDate);
3066
+ var date = toDate(dirtyReferenceDate);
3033
3067
  if (isNaN(date)) {
3034
3068
  return new Date(NaN);
3035
3069
  }
@@ -3985,7 +4019,7 @@ var Calendar = function Calendar(props) {
3985
4019
  onChange = _useDatepickerRangeCo.onChange;
3986
4020
  return React__default['default'].createElement(StyledRangeCalendar, _extends$2({
3987
4021
  "data-garden-id": "datepickers.range",
3988
- "data-garden-version": '8.39.0'
4022
+ "data-garden-version": '8.41.0'
3989
4023
  }, props), React__default['default'].createElement(Month, {
3990
4024
  locale: locale,
3991
4025
  displayDate: state.previewDate,