@spothero/ui 17.0.3-beta.0 → 17.1.0-beta.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.
Files changed (163) hide show
  1. package/dist/components/Accordion/Accordion.js +2 -1
  2. package/dist/components/Accordion/Accordion.stories.js +22 -13
  3. package/dist/components/Accordion/index.js +8 -5
  4. package/dist/components/Accordion/styles/button.js +3 -1
  5. package/dist/components/Accordion/styles/container.js +1 -1
  6. package/dist/components/Accordion/styles/index.js +13 -4
  7. package/dist/components/Accordion/styles/panel.js +1 -1
  8. package/dist/components/Alert/Alert.js +44 -23
  9. package/dist/components/Alert/Alert.stories.js +12 -8
  10. package/dist/components/Alert/index.js +3 -1
  11. package/dist/components/Alert/styles/index.js +35 -12
  12. package/dist/components/AutoSuggestSelect/AutoSuggestSelect.js +119 -84
  13. package/dist/components/AutoSuggestSelect/AutoSuggestSelect.stories.js +12 -4
  14. package/dist/components/AutoSuggestSelect/index.js +3 -1
  15. package/dist/components/Badge/Badge.js +2 -1
  16. package/dist/components/Badge/Badge.stories.js +20 -12
  17. package/dist/components/Badge/styles/index.js +12 -6
  18. package/dist/components/Button/Button.js +47 -17
  19. package/dist/components/Button/Button.spec.js +10 -4
  20. package/dist/components/Button/Button.styles.js +49 -36
  21. package/dist/components/Button/button-props.js +20 -2
  22. package/dist/components/Button/index.js +5 -2
  23. package/dist/components/Button/stories/button.js +17 -5
  24. package/dist/components/Button/stories/index.stories.js +48 -24
  25. package/dist/components/Button/stories/overview.js +62 -34
  26. package/dist/components/Card/Card.js +26 -11
  27. package/dist/components/Card/Card.stories.js +15 -5
  28. package/dist/components/Checkbox/Checkbox.js +2 -1
  29. package/dist/components/Checkbox/Checkbox.stories.js +10 -2
  30. package/dist/components/Checkbox/index.js +3 -1
  31. package/dist/components/Checkbox/styles/index.js +11 -3
  32. package/dist/components/Container/Container.js +21 -5
  33. package/dist/components/Container/Container.stories.js +43 -14
  34. package/dist/components/Container/Container.styles.js +1 -1
  35. package/dist/components/Datepicker/Datepicker.stories.js +295 -0
  36. package/dist/components/Datepicker/DatepickerContainer.js +114 -0
  37. package/dist/components/Datepicker/DatepickerContext.js +65 -0
  38. package/dist/components/Datepicker/DatepickerSingle.js +51 -0
  39. package/dist/components/Datepicker/components/DateRow.js +145 -0
  40. package/dist/components/Datepicker/components/DatepickerControl.js +83 -0
  41. package/dist/components/Datepicker/components/DatepickerDays.js +108 -0
  42. package/dist/components/Datepicker/components/DatepickerHeader.js +113 -0
  43. package/dist/components/Datepicker/constants.js +31 -0
  44. package/dist/components/Datepicker/utils/dateRowArithmentic.js +58 -0
  45. package/dist/components/Datepicker/utils/generalCalculations.js +71 -0
  46. package/dist/components/Datepicker/utils/getWeeksOfMonth.js +51 -0
  47. package/dist/components/Datepicker/utils/propTypes.js +201 -0
  48. package/dist/components/DatepickerRange/DatepickerRange.js +64 -0
  49. package/dist/components/DatepickerRange/DatepickerRange.stories.js +411 -0
  50. package/dist/components/DatepickerRange/DatepickerRangeContainer.js +158 -0
  51. package/dist/components/DatepickerRange/DatepickerRangeContext.js +80 -0
  52. package/dist/components/DatepickerRange/components/DateRow.js +260 -0
  53. package/dist/components/DatepickerRange/components/DatepickerDays.js +108 -0
  54. package/dist/components/DatepickerRange/components/DatepickerHeader.js +116 -0
  55. package/dist/components/DatepickerRange/components/DatepickerRangeControls.js +77 -0
  56. package/dist/components/DatepickerRange/components/DatepickerRangeInput.js +90 -0
  57. package/dist/components/DatepickerRange/components/WithPopoverAnchor.js +21 -0
  58. package/dist/components/DatepickerRange/constants.js +31 -0
  59. package/dist/components/DatepickerRange/utils/dateRowArithmentic.js +93 -0
  60. package/dist/components/DatepickerRange/utils/generalCalculations.js +71 -0
  61. package/dist/components/DatepickerRange/utils/getWeeksOfMonth.js +51 -0
  62. package/dist/components/DatepickerRange/utils/propTypes.js +245 -0
  63. package/dist/components/Divider/Divider.js +24 -8
  64. package/dist/components/Divider/Divider.stories.js +15 -3
  65. package/dist/components/Divider/Divider.styles.js +8 -2
  66. package/dist/components/FormControl/FormControl.js +29 -14
  67. package/dist/components/Grid/Grid.js +24 -7
  68. package/dist/components/Grid/Grid.stories.js +60 -36
  69. package/dist/components/Grid/Grid.styles.js +2 -2
  70. package/dist/components/Grid/GridItem.js +21 -5
  71. package/dist/components/Grid/GridItem.styles.js +1 -2
  72. package/dist/components/Grid/index.js +5 -2
  73. package/dist/components/Heading/Heading.js +29 -8
  74. package/dist/components/Heading/Heading.stories.js +15 -4
  75. package/dist/components/Heading/Heading.styles.js +38 -24
  76. package/dist/components/Icon/Icon.js +2 -1
  77. package/dist/components/Icon/Icon.stories.js +28 -19
  78. package/dist/components/Image/Image.js +69 -39
  79. package/dist/components/Image/Image.spec.js +22 -16
  80. package/dist/components/Image/Image.stories.js +19 -8
  81. package/dist/components/Input/Input.js +31 -14
  82. package/dist/components/Input/Input.stories.js +15 -5
  83. package/dist/components/Input/index.js +3 -1
  84. package/dist/components/Input/styles/index.js +10 -4
  85. package/dist/components/Link/Link.js +2 -1
  86. package/dist/components/Link/Link.stories.js +12 -5
  87. package/dist/components/Link/Link.styles.js +8 -8
  88. package/dist/components/List/List.js +37 -14
  89. package/dist/components/List/List.stories.js +55 -19
  90. package/dist/components/List/index.js +5 -2
  91. package/dist/components/List/styles/index.js +9 -2
  92. package/dist/components/List/styles/item.styles.js +1 -1
  93. package/dist/components/Loader/Loader.js +33 -17
  94. package/dist/components/Loader/Loader.stories.js +44 -24
  95. package/dist/components/Modal/Modal.js +23 -17
  96. package/dist/components/Modal/Modal.stories.js +100 -30
  97. package/dist/components/Modal/index.js +3 -1
  98. package/dist/components/Modal/styles/body.js +28 -11
  99. package/dist/components/Modal/styles/closeButton.js +4 -4
  100. package/dist/components/Modal/styles/dialog.js +4 -4
  101. package/dist/components/Modal/styles/dialogContainer.js +11 -5
  102. package/dist/components/Modal/styles/header.js +5 -5
  103. package/dist/components/Modal/styles/index.js +28 -12
  104. package/dist/components/Popover/Popover.js +33 -12
  105. package/dist/components/Popover/Popover.stories.js +62 -36
  106. package/dist/components/Popover/PopoverArrow.js +17 -3
  107. package/dist/components/Popover/PopoverCloseButton.js +17 -3
  108. package/dist/components/Popover/PopoverContent.js +27 -10
  109. package/dist/components/Popover/index.js +8 -4
  110. package/dist/components/Popover/styles/index.js +22 -9
  111. package/dist/components/Popover/styles/popover-arrow.js +4 -4
  112. package/dist/components/Popover/styles/popover-body.js +7 -3
  113. package/dist/components/Popover/styles/popover-close-button.js +10 -7
  114. package/dist/components/Popover/styles/popover-content.js +7 -5
  115. package/dist/components/Popover/styles/popover-header.js +1 -1
  116. package/dist/components/Popover/styles/popper.js +1 -1
  117. package/dist/components/Radio/Radio.js +27 -12
  118. package/dist/components/Radio/Radio.stories.js +12 -2
  119. package/dist/components/Radio/RadioGroup.js +33 -17
  120. package/dist/components/Radio/index.js +5 -2
  121. package/dist/components/Radio/styles/index.js +13 -5
  122. package/dist/components/Select/Select.js +33 -14
  123. package/dist/components/Select/Select.stories.js +22 -13
  124. package/dist/components/Select/index.js +3 -1
  125. package/dist/components/Select/styles/index.js +14 -4
  126. package/dist/components/Skeleton/Skeleton.stories.js +20 -6
  127. package/dist/components/Skeleton/Skeleton.styles.js +3 -0
  128. package/dist/components/Skeleton/index.js +4 -3
  129. package/dist/components/Spinner/Spinner.js +25 -9
  130. package/dist/components/Spinner/Spinner.stories.js +70 -42
  131. package/dist/components/Spinner/Spinner.styles.js +43 -56
  132. package/dist/components/Switch/Switch.js +30 -13
  133. package/dist/components/Switch/Switch.stories.js +10 -2
  134. package/dist/components/Switch/index.js +3 -1
  135. package/dist/components/Switch/styles/index.js +31 -10
  136. package/dist/components/Table/Table.js +2 -1
  137. package/dist/components/Table/Table.stories.js +37 -17
  138. package/dist/components/Table/Table.styles.js +32 -13
  139. package/dist/components/Table/index.js +11 -8
  140. package/dist/components/Tabs/Tabs.js +22 -14
  141. package/dist/components/Tabs/Tabs.stories.js +20 -4
  142. package/dist/components/Tabs/combineSizeWithVariant.js +17 -11
  143. package/dist/components/Tabs/index.js +8 -5
  144. package/dist/components/Tabs/styles/index.js +8 -2
  145. package/dist/components/Text/Text.js +17 -8
  146. package/dist/components/Text/Text.stories.js +15 -3
  147. package/dist/components/Text/Text.styles.js +35 -15
  148. package/dist/components/Text/combineAsWithVariant.js +57 -36
  149. package/dist/components/Text/options.js +1 -1
  150. package/dist/components/ThemeProvider/ThemeProvider.js +33 -10
  151. package/dist/components/ThemeProvider/ThemeProvider.stories.js +16 -7
  152. package/dist/components/index.js +135 -74
  153. package/dist/components/styles.js +43 -21
  154. package/dist/theme/base/breakpoints.js +4 -1
  155. package/dist/theme/base/colors.js +45 -32
  156. package/dist/theme/base/index.js +13 -7
  157. package/dist/theme/base/sizes.js +4 -4
  158. package/dist/theme/base/typography.js +6 -5
  159. package/dist/theme/base/zindices.js +2 -1
  160. package/dist/theme/global.js +20 -87
  161. package/dist/theme/index.js +41 -15
  162. package/dist/utils/Spaces.js +12 -5
  163. package/package.json +2 -2
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
+
5
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
6
+
7
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
8
+
9
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
10
+
11
+ Object.defineProperty(exports, "__esModule", {
12
+ value: true
13
+ });
14
+ exports.default = void 0;
15
+
16
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
17
+
18
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
19
+
20
+ var _react = _interopRequireWildcard(require("react"));
21
+
22
+ var _react2 = require("@chakra-ui/react");
23
+
24
+ var _propTypes = require("./utils/propTypes");
25
+
26
+ var _DatepickerContext = require("./DatepickerContext");
27
+
28
+ var _DatepickerDays = _interopRequireDefault(require("./components/DatepickerDays"));
29
+
30
+ var _DatepickerHeader = _interopRequireDefault(require("./components/DatepickerHeader"));
31
+
32
+ var _DatepickerControl = _interopRequireDefault(require("./components/DatepickerControl"));
33
+
34
+ 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
+
36
+ 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
+
38
+ var popoverContentStyleProps = {
39
+ width: {
40
+ base: 304,
41
+ tablet: 384
42
+ },
43
+ padding: {
44
+ base: 3,
45
+ tablet: 4
46
+ },
47
+ maxWidth: 'none',
48
+ borderRadius: 'lg',
49
+ boxShadow: 'lg'
50
+ };
51
+ var popoverBodyStyleProps = {
52
+ width: {
53
+ base: 280,
54
+ tablet: 352
55
+ },
56
+ display: 'flex',
57
+ flexDirection: 'column',
58
+ alignItems: 'center'
59
+ };
60
+
61
+ var DatepickerContainer = function DatepickerContainer(_ref) {
62
+ var _datepickerOverrides$, _datepickerOverrides$2, _datepickerOverrides$3;
63
+
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;
70
+
71
+ var _useDatepicker = (0, _DatepickerContext.useDatepicker)(),
72
+ _useDatepicker$select = (0, _slicedToArray2.default)(_useDatepicker.selectedDate, 1),
73
+ selectedDate = _useDatepicker$select[0],
74
+ isInvalid = _useDatepicker.isInvalid,
75
+ _useDatepicker$disclo = _useDatepicker.disclosure,
76
+ isOpen = _useDatepicker$disclo.isOpen,
77
+ onClose = _useDatepicker$disclo.onClose;
78
+
79
+ (0, _react.useEffect)(function () {
80
+ onDateChange === null || onDateChange === void 0 ? void 0 : onDateChange({
81
+ selectedDate: selectedDate
82
+ }); // eslint-disable-next-line react-hooks/exhaustive-deps
83
+ }, [selectedDate]);
84
+ return /*#__PURE__*/_react.default.createElement(_react2.Popover, (0, _extends2.default)({
85
+ 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, {
92
+ value: selectedDate,
93
+ useInputIcons: useInputIcons,
94
+ isInputInvalid: isInvalid,
95
+ inputLabelText: dateInputLabelText,
96
+ inputPlaceholderText: dateInputPlaceholderText,
97
+ 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)({
100
+ role: "dialog",
101
+ "aria-modal": "true",
102
+ "aria-label": "Choose Date",
103
+ "data-testid": "PopoverContent"
104
+ }, 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
110
+ })))));
111
+ };
112
+
113
+ var _default = DatepickerContainer;
114
+ exports.default = _default;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
+
5
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
6
+
7
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
8
+
9
+ Object.defineProperty(exports, "__esModule", {
10
+ value: true
11
+ });
12
+ exports.useDatepicker = exports.DatepickerProvider = exports.DatepickerContext = void 0;
13
+
14
+ var _react = _interopRequireWildcard(require("react"));
15
+
16
+ var _react2 = require("@chakra-ui/react");
17
+
18
+ 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); }
19
+
20
+ 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; }
21
+
22
+ var DatepickerContext = /*#__PURE__*/(0, _react.createContext)({});
23
+ exports.DatepickerContext = DatepickerContext;
24
+
25
+ var useDatepicker = function useDatepicker() {
26
+ return (0, _react.useContext)(DatepickerContext);
27
+ };
28
+
29
+ exports.useDatepicker = useDatepicker;
30
+
31
+ var DatepickerProvider = function DatepickerProvider(_ref) {
32
+ var _ref$initialValue = _ref.initialValue,
33
+ initialValue = _ref$initialValue === void 0 ? null : _ref$initialValue,
34
+ _ref$disableBefore = _ref.disableBefore,
35
+ disableBefore = _ref$disableBefore === void 0 ? null : _ref$disableBefore,
36
+ _ref$disableAfter = _ref.disableAfter,
37
+ disableAfter = _ref$disableAfter === void 0 ? null : _ref$disableAfter,
38
+ isInvalid = _ref.isInvalid,
39
+ children = _ref.children;
40
+ // Today
41
+ var today = (0, _react.useState)(new Date()); // Date used to keep track of what Month is in view
42
+
43
+ var date = (0, _react.useState)(initialValue ? new Date(initialValue) : new Date()); // Currently selected date
44
+
45
+ var selectedDate = (0, _react.useState)(initialValue ? new Date(initialValue) : null); // The date where days in the past should be disabled
46
+
47
+ var disableBeforeDate = (0, _react.useState)(disableBefore ? new Date(disableBefore) : null); // The date where days in the future should be disabled
48
+
49
+ var disableAfterDate = (0, _react.useState)(disableAfter ? new Date(disableAfter) : null); // Chakra's Disclosure values
50
+
51
+ var disclosure = (0, _react2.useDisclosure)();
52
+ return /*#__PURE__*/_react.default.createElement(DatepickerContext.Provider, {
53
+ value: {
54
+ today: today,
55
+ date: date,
56
+ selectedDate: selectedDate,
57
+ disableBeforeDate: disableBeforeDate,
58
+ disableAfterDate: disableAfterDate,
59
+ isInvalid: isInvalid,
60
+ disclosure: disclosure
61
+ }
62
+ }, children);
63
+ };
64
+
65
+ exports.DatepickerProvider = DatepickerProvider;
@@ -0,0 +1,51 @@
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 = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _propTypes = _interopRequireDefault(require("./utils/propTypes"));
13
+
14
+ var _DatepickerContext = require("./DatepickerContext");
15
+
16
+ var _DatepickerContainer = _interopRequireDefault(require("./DatepickerContainer"));
17
+
18
+ var DatepickerSingle = function DatepickerSingle(_ref) {
19
+ var initialValue = _ref.initialValue,
20
+ disableBefore = _ref.disableBefore,
21
+ disableAfter = _ref.disableAfter,
22
+ onDateChange = _ref.onDateChange,
23
+ isInvalid = _ref.isInvalid,
24
+ useInputIcons = _ref.useInputIcons,
25
+ dateInputLabelText = _ref.dateInputLabelText,
26
+ dateInputPlaceholderText = _ref.dateInputPlaceholderText,
27
+ dateInputErrorText = _ref.dateInputErrorText,
28
+ datepickerOverrides = _ref.datepickerOverrides;
29
+ return /*#__PURE__*/_react.default.createElement(_DatepickerContext.DatepickerProvider, {
30
+ initialValue: initialValue,
31
+ disableBefore: disableBefore,
32
+ disableAfter: disableAfter,
33
+ isInvalid: isInvalid
34
+ }, /*#__PURE__*/_react.default.createElement(_DatepickerContainer.default, {
35
+ onDateChange: onDateChange,
36
+ useInputIcons: useInputIcons,
37
+ dateInputLabelText: dateInputLabelText,
38
+ dateInputPlaceholderText: dateInputPlaceholderText,
39
+ dateInputErrorText: dateInputErrorText,
40
+ datepickerOverrides: datepickerOverrides
41
+ }));
42
+ };
43
+
44
+ DatepickerSingle.defaultProps = {
45
+ useInputIcons: true,
46
+ isInvalid: false,
47
+ dateInputLabelText: 'Select a Date',
48
+ dateInputPlaceholderText: 'Today'
49
+ };
50
+ var _default = DatepickerSingle;
51
+ exports.default = _default;
@@ -0,0 +1,145 @@
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 = void 0;
9
+
10
+ var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
13
+
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
15
+
16
+ var _react = _interopRequireDefault(require("react"));
17
+
18
+ var _react2 = require("@chakra-ui/react");
19
+
20
+ var _DatepickerContext = require("../DatepickerContext");
21
+
22
+ var _propTypes = require("../utils/propTypes");
23
+
24
+ var _dateRowArithmentic = require("../utils/dateRowArithmentic");
25
+
26
+ var _generalCalculations = require("../utils/generalCalculations");
27
+
28
+ var calendarDateContainerStyleProps = {
29
+ marginTop: 0,
30
+ padding: 0,
31
+ width: {
32
+ base: 10,
33
+ tablet: 12
34
+ },
35
+ height: {
36
+ base: 10,
37
+ tablet: 12
38
+ },
39
+ _disabled: {
40
+ cursor: 'not-allowed',
41
+ backgroundColor: 'transparent',
42
+ border: 'none',
43
+ _hover: {
44
+ backgroundColor: 'transparent',
45
+ border: 'none'
46
+ }
47
+ }
48
+ };
49
+
50
+ var getCalendarDateStyleProps = function getCalendarDateStyleProps(today, date, calendarDate, selectedDate, disableBeforeDate, disableAfterDate) {
51
+ return {
52
+ padding: 0,
53
+ width: {
54
+ base: 10,
55
+ tablet: 12
56
+ },
57
+ height: {
58
+ base: 10,
59
+ tablet: 12
60
+ },
61
+ borderRadius: 'full',
62
+ animation: 'ease-in-out',
63
+ _active: {
64
+ backgroundColor: 'gray.light',
65
+ borderColor: 'white',
66
+ color: 'text.secondary.light'
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',
73
+ _hover: {
74
+ borderWidth: '1px',
75
+ borderColor: (0, _dateRowArithmentic.selected)(calendarDate, selectedDate) ? 'white' : 'primary.default',
76
+ backgroundColor: (0, _dateRowArithmentic.selected)(calendarDate, selectedDate) ? 'primary.600' : 'transparent'
77
+ },
78
+ _disabled: {
79
+ cursor: 'not-allowed',
80
+ backgroundColor: 'transparent',
81
+ border: 'none',
82
+ borderColor: 'white',
83
+ _hover: {
84
+ backgroundColor: 'transparent',
85
+ border: 'none',
86
+ borderColor: 'white'
87
+ }
88
+ }
89
+ };
90
+ };
91
+
92
+ var DateRow = function DateRow(_ref) {
93
+ var dates = _ref.dates,
94
+ dateRowOverrides = _ref.dateRowOverrides;
95
+
96
+ var _useDatepicker = (0, _DatepickerContext.useDatepicker)(),
97
+ _useDatepicker$today = (0, _slicedToArray2.default)(_useDatepicker.today, 1),
98
+ today = _useDatepicker$today[0],
99
+ _useDatepicker$date = (0, _slicedToArray2.default)(_useDatepicker.date, 2),
100
+ date = _useDatepicker$date[0],
101
+ setDate = _useDatepicker$date[1],
102
+ _useDatepicker$select = (0, _slicedToArray2.default)(_useDatepicker.selectedDate, 2),
103
+ selectedDate = _useDatepicker$select[0],
104
+ setSelectedDate = _useDatepicker$select[1],
105
+ _useDatepicker$disabl = (0, _slicedToArray2.default)(_useDatepicker.disableBeforeDate, 1),
106
+ disableBeforeDate = _useDatepicker$disabl[0],
107
+ _useDatepicker$disabl2 = (0, _slicedToArray2.default)(_useDatepicker.disableAfterDate, 1),
108
+ disableAfterDate = _useDatepicker$disabl2[0],
109
+ onClose = _useDatepicker.disclosure.onClose;
110
+
111
+ var handleSelect = function handleSelect(providedDate) {
112
+ return function () {
113
+ setSelectedDate(new Date(providedDate));
114
+ setDate(new Date(providedDate));
115
+ onClose();
116
+ };
117
+ };
118
+
119
+ return /*#__PURE__*/_react.default.createElement(_react2.Tbody, (0, _extends2.default)({
120
+ "data-testid": "calendarDatesContainer"
121
+ }, dateRowOverrides === null || dateRowOverrides === void 0 ? void 0 : dateRowOverrides.tbody), (0, _map.default)(dates).call(dates, function (week, index) {
122
+ return /*#__PURE__*/_react.default.createElement(_react2.Tr, (0, _extends2.default)({
123
+ key: index,
124
+ border: "none",
125
+ "data-testid": "calendarRow"
126
+ }, dateRowOverrides === null || dateRowOverrides === void 0 ? void 0 : dateRowOverrides.tr), (0, _map.default)(week).call(week, function (calendarDate, idx) {
127
+ return /*#__PURE__*/_react.default.createElement(_react2.Td, (0, _extends2.default)({
128
+ key: idx,
129
+ "data-date": (0, _generalCalculations.formatForDataDate)(calendarDate)
130
+ }, calendarDateContainerStyleProps, {
131
+ disabled: (0, _dateRowArithmentic.isBeforeDisabledDate)(calendarDate, disableBeforeDate) || (0, _dateRowArithmentic.isAfterDisabledDate)(calendarDate, disableAfterDate)
132
+ }, dateRowOverrides === null || dateRowOverrides === void 0 ? void 0 : dateRowOverrides.td), /*#__PURE__*/_react.default.createElement(_react2.Button, (0, _extends2.default)({
133
+ value: calendarDate,
134
+ onClick: handleSelect(calendarDate),
135
+ role: "gridcell",
136
+ "data-testid": "dateColumn-calendarDate"
137
+ }, 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)));
140
+ }));
141
+ }));
142
+ };
143
+
144
+ var _default = DateRow;
145
+ exports.default = _default;
@@ -0,0 +1,83 @@
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 = void 0;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ var _react2 = require("@chakra-ui/react");
15
+
16
+ var _calendar = _interopRequireDefault(require("@spothero/icons/calendar"));
17
+
18
+ var _DatepickerContext = require("../DatepickerContext");
19
+
20
+ var _propTypes = require("../utils/propTypes");
21
+
22
+ var _generalCalculations = require("../utils/generalCalculations");
23
+
24
+ var formLabelStyleProps = {
25
+ as: 'label',
26
+ fontSize: 'sm',
27
+ fontWeight: 'semibold',
28
+ color: 'text.secondary.light',
29
+ marginBottom: 1
30
+ };
31
+ var formErrorMessageStyleProps = {
32
+ color: 'error',
33
+ fontSize: 'xs',
34
+ marginTop: 1
35
+ };
36
+
37
+ var DatepickerControl = function DatepickerControl(_ref) {
38
+ var value = _ref.value,
39
+ useInputIcons = _ref.useInputIcons,
40
+ isInputInvalid = _ref.isInputInvalid,
41
+ inputLabelText = _ref.inputLabelText,
42
+ inputPlaceholderText = _ref.inputPlaceholderText,
43
+ errorText = _ref.errorText,
44
+ inputComponentOverrides = _ref.inputComponentOverrides;
45
+
46
+ var _useDatepicker = (0, _DatepickerContext.useDatepicker)(),
47
+ _useDatepicker$disclo = _useDatepicker.disclosure,
48
+ onOpen = _useDatepicker$disclo.onOpen,
49
+ onClose = _useDatepicker$disclo.onClose;
50
+
51
+ var handleKeyboardControls = function handleKeyboardControls(evt) {
52
+ var keyCode = evt.code;
53
+
54
+ if (keyCode === 'Enter' || keyCode === 'Space') {
55
+ onOpen();
56
+ } else if (keyCode === 'Escape') {
57
+ onClose();
58
+ }
59
+ };
60
+
61
+ return /*#__PURE__*/_react.default.createElement(_react2.FormControl, (0, _extends2.default)({
62
+ isInvalid: isInputInvalid
63
+ }, inputComponentOverrides === null || inputComponentOverrides === void 0 ? void 0 : inputComponentOverrides.formControl), inputLabelText && /*#__PURE__*/_react.default.createElement(_react2.FormLabel, (0, _extends2.default)({}, formLabelStyleProps, inputComponentOverrides === null || inputComponentOverrides === void 0 ? void 0 : inputComponentOverrides.formLabel), inputLabelText), /*#__PURE__*/_react.default.createElement(_react2.PopoverTrigger, {
64
+ "data-testid": "PopoverTrigger"
65
+ }, /*#__PURE__*/_react.default.createElement(_react2.InputGroup, inputComponentOverrides === null || inputComponentOverrides === void 0 ? void 0 : inputComponentOverrides.inputGroup, /*#__PURE__*/_react.default.createElement(_react2.Input, (0, _extends2.default)({
66
+ name: "DatepickerInput",
67
+ value: (0, _generalCalculations.formatValueForInputDisplay)(value),
68
+ placeholder: inputPlaceholderText,
69
+ onClick: onOpen,
70
+ onKeyDown: handleKeyboardControls,
71
+ isReadOnly: true
72
+ }, inputComponentOverrides === null || inputComponentOverrides === void 0 ? void 0 : inputComponentOverrides.input)), useInputIcons && /*#__PURE__*/_react.default.createElement(_react2.InputRightElement, (0, _extends2.default)({
73
+ color: isInputInvalid ? 'error' : 'gray.dark'
74
+ }, inputComponentOverrides === null || inputComponentOverrides === void 0 ? void 0 : inputComponentOverrides.inputRightElement), /*#__PURE__*/_react.default.createElement(_react2.Icon, {
75
+ as: _calendar.default,
76
+ color: "inherit",
77
+ height: 5,
78
+ width: 5
79
+ })))), /*#__PURE__*/_react.default.createElement(_react2.FormErrorMessage, (0, _extends2.default)({}, formErrorMessageStyleProps, inputComponentOverrides === null || inputComponentOverrides === void 0 ? void 0 : inputComponentOverrides.formErrorMessage), errorText));
80
+ };
81
+
82
+ var _default = DatepickerControl;
83
+ exports.default = _default;
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
+
5
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
6
+
7
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
8
+
9
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
10
+
11
+ Object.defineProperty(exports, "__esModule", {
12
+ value: true
13
+ });
14
+ exports.default = void 0;
15
+
16
+ var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
17
+
18
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
19
+
20
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
21
+
22
+ var _react = _interopRequireWildcard(require("react"));
23
+
24
+ var _react2 = require("@chakra-ui/react");
25
+
26
+ var _DatepickerContext = require("../DatepickerContext");
27
+
28
+ var _constants = require("../constants");
29
+
30
+ var _getWeeksOfMonth = require("../utils/getWeeksOfMonth");
31
+
32
+ var _propTypes = require("../utils/propTypes");
33
+
34
+ var _generalCalculations = require("../utils/generalCalculations");
35
+
36
+ var _DateRow = _interopRequireDefault(require("./DateRow"));
37
+
38
+ 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); }
39
+
40
+ 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; }
41
+
42
+ var datepickerCalendarTableStyleProps = {
43
+ border: 'none',
44
+ boxShadow: 'none',
45
+ padding: 0,
46
+ margin: 0,
47
+ width: {
48
+ base: '17.5rem',
49
+ tablet: '21rem'
50
+ }
51
+ };
52
+ var datepickerTheadStyleProps = {
53
+ height: {
54
+ base: 10,
55
+ tablet: 12
56
+ },
57
+ border: 'none'
58
+ };
59
+
60
+ var getDatepickerCalendarThStyleProps = function getDatepickerCalendarThStyleProps(today, weeks, index) {
61
+ return {
62
+ width: {
63
+ base: 10,
64
+ tablet: 12
65
+ },
66
+ padding: 0,
67
+ fontSize: 'base',
68
+ textAlign: 'center',
69
+ color: 'text.secondary.light',
70
+ fontWeight: (0, _generalCalculations.isCurrentMonthAndYearInView)(today, weeks) && today.getDay() === index ? 'bold' : 'normal'
71
+ };
72
+ };
73
+
74
+ var DatepickerDays = function DatepickerDays(_ref) {
75
+ var datepickerDaysOverrides = _ref.datepickerDaysOverrides;
76
+
77
+ var _useDatepicker = (0, _DatepickerContext.useDatepicker)(),
78
+ _useDatepicker$today = (0, _slicedToArray2.default)(_useDatepicker.today, 1),
79
+ today = _useDatepicker$today[0],
80
+ _useDatepicker$date = (0, _slicedToArray2.default)(_useDatepicker.date, 1),
81
+ date = _useDatepicker$date[0];
82
+
83
+ var _useState = (0, _react.useState)(),
84
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
85
+ weeks = _useState2[0],
86
+ setWeeks = _useState2[1];
87
+
88
+ (0, _react.useEffect)(function () {
89
+ setWeeks((0, _getWeeksOfMonth.getWeeksOfMonth)(date || new Date()));
90
+ }, [date]);
91
+ return /*#__PURE__*/_react.default.createElement(_react2.Table, (0, _extends2.default)({
92
+ role: "grid",
93
+ "aria-labelledby": "id-grid-label"
94
+ }, datepickerCalendarTableStyleProps, datepickerDaysOverrides === null || datepickerDaysOverrides === void 0 ? void 0 : datepickerDaysOverrides.table), /*#__PURE__*/_react.default.createElement(_react2.Thead, (0, _extends2.default)({}, datepickerTheadStyleProps, datepickerDaysOverrides === null || datepickerDaysOverrides === void 0 ? void 0 : datepickerDaysOverrides.thead), /*#__PURE__*/_react.default.createElement(_react2.Tr, null, (0, _map.default)(_constants.DAY_NAMES).call(_constants.DAY_NAMES, function (day, index) {
95
+ return /*#__PURE__*/_react.default.createElement(_react2.Th, (0, _extends2.default)({
96
+ key: index,
97
+ scope: "col",
98
+ abbr: day.full,
99
+ "data-testid": "daysOfWeek-title"
100
+ }, getDatepickerCalendarThStyleProps(today, weeks, index), datepickerDaysOverrides === null || datepickerDaysOverrides === void 0 ? void 0 : datepickerDaysOverrides.th), day.abbv);
101
+ }))), /*#__PURE__*/_react.default.createElement(_DateRow.default, {
102
+ dates: weeks !== null && weeks !== void 0 ? weeks : [],
103
+ dateRowOverrides: datepickerDaysOverrides === null || datepickerDaysOverrides === void 0 ? void 0 : datepickerDaysOverrides.dateRow
104
+ }));
105
+ };
106
+
107
+ var _default = DatepickerDays;
108
+ exports.default = _default;